-
-
Notifications
You must be signed in to change notification settings - Fork 14
/
oregon-trail-1975.bas
749 lines (724 loc) · 19.7 KB
/
oregon-trail-1975.bas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
8 REM MINNESOTA EDUCATIONAL COMPUTING CONSORTIUM STAFF
9 REM PROGRAMMING REVISIONS BY DON RAWITSCH - 1975
11 REM CURRENT VERSION - 3/27/75
15 REM **FOR THE MEANING OF THE VARIABLES USED, LIST LINES 4900-4960**
25 PRINT "DO YOU NEED INSTRUCTIONS (y/n)";
30 DIM C$(5)
35 INPUT C$
40 IF C$ = "n" THEN 400
REM ***INSTRUCTIONS***
PRINT "THIS PROGRAM SIMULATES A TRIP OVER THE OREGON TRAIL FROM"
PRINT "INDEPENDENCE, MISSOURI TO OREGON CITY, OREGON IN 1847."
PRINT "YOUR FAMILY OF FIVE WILL COVER THE 2000 MILE OREGON TRAIL"
PRINT "IN 5-6 MONTHS --- IF YOU MAKE IT ALIVE."
PRINT ""
85 PRINT "YOU HAD SAVED $900 TO SPEND FOR THE TRIP, AND YOU'VE JUST"
90 PRINT " PAID $200 FOR A WAGON."
95 PRINT "YOU WILL NEED TO SPEND THE REST OF YOUR MONEY ON THE"
100 PRINT " FOLLOWING ITEMS:"
105 PRINT
110 PRINT " OXEN - YOU CAN SPEND $200-$300 ON YOUR TEAM"
115 PRINT " THE MORE YOU SPEND, THE FASTER YOU'LL GO"
120 PRINT " BECAUSE YOU'LL HAVE BETTER ANIMALS"
125 PRINT
130 PRINT " FOOD - THE MORE YOU HAVE, THE LESS CHANCE THERE"
135 PRINT " IS OF GETTING SICK"
140 PRINT
145 PRINT " AMMUNITION - $1 BUYS A BELT OF 50 BULLETS"
150 PRINT " YOU WILL NEED BULLETS FOR ATTACKS BY ANIMALS"
155 PRINT " AND BANDITS, AND FOR HUNTING FOOD"
156 PRINT
165 PRINT " CLOTHING - THIS IS ESPECIALLY IMPORTANT FOR THE COLD"
170 PRINT " WEATHER YOU WILL ENCOUNTER WHEN CROSSING"
175 PRINT " THE MOUNTAINS"
180 PRINT
185 PRINT " MISCELLANEOUS SUPPLIES - THIS INCLUDES MEDICINE AND"
190 PRINT " OTHER THINGS YOU WILL NEED FOR SICKNESS"
195 PRINT " AND EMERGENCY REPAIRS"
200 PRINT
210 PRINT "YOU CAN SPEND ALL YOUR MONEY BEFORE YOU START YOUR TRIP -"
215 PRINT "OR YOU CAN SAVE SOME OF YOUR CASH TO SPEND AT FORTS ALONG"
220 PRINT "THE WAY WHEN YOU RUN LOW. HOWEVER, ITEMS COST MORE AT"
225 PRINT "THE FORTS. YOU CAN ALSO GO HUNTING ALONG THE WAY TO GET"
230 PRINT "MORE FOOD."
rem PRINT "WHENEVER YOU HAVE TO USE YOUR TRUSTY RIFLE ALONG THE WAY,"
rem PRINT "YOU WILL SEE THE WORDS: TYPE BANG. THE FASTER YOU TYPE"
rem PRINT "IN THE WORD 'BANG' AND HIT THE 'RETURN' KEY, THE BETTER"
rem PRINT "LUCK YOU'LL HAVE WITH YOUR GUN."
260 PRINT
262 PRINT "WHEN ASKED TO ENTER MONEY AMOUNTS, DON'T USE A '$'."
263 PRINT
265 PRINT "GOOD LUCK!!!"
300 PRINT
REM ***INITIAL PURCHASES***
400 X1 = -1
405 K8 = S4 = F1 = F2 = M = M9 = D3 = 0
410 print : print: print
415 PRINT "HOW MUCH DO YOU WANT TO SPEND ON YOUR OXEN TEAM";
420 INPUT A
425 IF A >= 200 THEN 440
430 PRINT "NOT ENOUGH"
435 GOTO 415
440 IF A <= 300 THEN 455
445 PRINT "TOO MUCH"
450 GOTO 415
455 PRINT "HOW MUCH DO YOU WANT TO SPEND ON FOOD";
460 INPUT F
470 IF F >= 0 THEN 485
475 PRINT "IMPOSSIBLE"
480 GOTO 455
485 PRINT "HOW MUCH DO YOU WANT TO SPEND ON AMMUNITION";
490 INPUT B
495 IF B >= 0 THEN 510
500 PRINT "IMPOSSIBLE"
505 GOTO 485
510 PRINT "HOW MUCH DO YOU WANT TO SPEND ON CLOTHING";
515 INPUT C
520 IF C >= 0 THEN 535
525 PRINT "IMPOSSIBLE"
530 GOTO 510
535 PRINT "HOW MUCH DO YOU WANT TO SPEND ON MISCELANEOUS SUPPLIES";
540 INPUT M1
545 IF M1 >= 0 THEN 560
550 PRINT "IMPOSSIBLE"
555 GOTO 535
560 T = 700 - A - F - B - C - M1
565 IF T >= 0 THEN 580
570 PRINT "YOU OVERSPENT--YOU ONLY HAD $700 TO SPEND. BUY AGAIN"
575 GOTO 410
580 B = 50 * B
585 PRINT "AFTER ALL YOUR PURCHASES, YOU NOW HAVE"; T; "DOLLARS LEFT"
590 PRINT
595 PRINT "MONDAY MARCH 29 1847"
600 PRINT
605 GOTO 1000
700 IF M >= 2040 OR D3 > 17 THEN 4000
REM ***SETTING DATE***
710 D3 = D3 + 1
715 PRINT
720 PRINT "MONDAY ";
725 IF D3 > 10 THEN GOTO 735
REM 730 GOTO D3 OF 740,750,760,770,780,790,800,810,820,830
730 SELECT CASE D3
CASE 1
GOTO 740
CASE 2
GOTO 750
CASE 3
GOTO 760
CASE 4
GOTO 770
CASE 5
GOTO 780
CASE 6
GOTO 790
CASE 7
GOTO 800
CASE 8
GOTO 810
CASE 9
GOTO 820
CASE 10
GOTO 830
END SELECT
REM 735 GOTO D3-10 OF 840,850,860,870,880,890,900
735 SELECT CASE D3 - 10
CASE 1
GOTO 840
CASE 2
GOTO 850
CASE 3
GOTO 860
CASE 4
GOTO 870
CASE 5
GOTO 880
CASE 6
GOTO 890
CASE 7
GOTO 900
END SELECT
740 PRINT "APRIL 12 ";
744 GOTO 910
750 PRINT "APRIL 26 ";
755 GOTO 910
760 PRINT "MAY 10 ";
765 GOTO 910
770 PRINT "MAY 24 ";
775 GOTO 910
780 PRINT "JUNE 7 ";
785 GOTO 910
790 PRINT "JUNE 21 ";
795 GOTO 910
800 PRINT "JULY 5 ";
805 GOTO 910
810 PRINT "JULY 19 ";
815 GOTO 910
820 PRINT "AUGUST 2 ";
825 GOTO 910
830 PRINT "AUGUST 16 ";
835 GOTO 910
840 PRINT "AUGUST 31 ";
845 GOTO 910
850 PRINT "SEPTEMBER 13 ";
855 GOTO 910
860 PRINT "SEPTEMBER 27 ";
865 GOTO 910
870 PRINT "OCTOBER 11 ";
875 GOTO 910
880 PRINT "OCTOBER 25 ";
885 GOTO 910
890 PRINT "NOVEMBER 8 ";
895 GOTO 910
900 PRINT "NOVEMBER 22 ";
910 PRINT "1847"
915 PRINT
REM ***BEGINNING EACH TURN***
1000 IF F >= 0 THEN 1015
1010 F = 0
1015 IF B >= 0 THEN 1025
1020 B = 0
1025 IF C >= 0 THEN 1035
1030 C = 0
1035 IF M1 >= 0 THEN 1045
1040 M1 = 0
1045 IF F >= 12 THEN 1055
1050 PRINT "YOU'D BETTER DO SOME HUNTING OR BUY FOOD AND SOON!!!!"
1055 F = INT(F)
1060 B = INT(B)
1065 C = INT(C)
1070 M1 = INT(M1)
1075 T = INT(T)
1080 M = INT(M)
1085 M2 = M
1090 IF S4 = 1 THEN 1105
1095 IF K8 = 1 THEN 1105
1100 GOTO 1130
1105 T = T - 20
1110 IF T < 0 THEN 3520
1115 PRINT "DOCTOR'S BILL IS $20"
1120 LET K8 = S4 = 0
1130 IF M9 = 1 THEN 1145
1135 PRINT "TOTAL MILEAGE IS"; M
1140 GOTO 1160
1145 PRINT "TOTAL MILEAGE IS 950"
1150 M9 = 0
1160 PRINT "FOOD", "BULLETS", "CLOTHING", "MISC. SUPP.", "CASH"
1165 PRINT F, B, C, M1, T
1300 IF X1 = -1 THEN 1350
1305 X1 = X1 * -1
1310 PRINT "DO YOU WANT TO (1) STOP AT THE NEXT FORT, (2) HUNT, ";
1315 INPUT "OR (3) CONTINUE"; X
1325 IF X > 2 THEN 1340
1330 IF X < 1 THEN 1340
1332 LET X = INT(X)
1335 GOTO 1400
1340 LET X = 3
1345 GOTO 1400
1350 INPUT "DO YOU WANT TO (1) HUNT, OR (2) CONTINUE"; X
1360 IF X = 1 THEN 1370
1365 LET X = 2
1370 LET X = X + 1
1375 IF X = 3 THEN 1395
1380 IF B > 39 THEN 1395
1385 PRINT "TOUGH---YOU NEED MORE BULLETS TO GO HUNTING"
1390 GOTO 1350
1395 X1 = X1 * -1
1400 SELECT CASE X
CASE 1
GOTO 1500
CASE 2
GOTO 1700
CASE 3
GOTO 1800
END SELECT
REM 1400 GOTO X OF 1500,1700,1800
REM ***STOPPING AT FORT***
1500 PRINT "ENTER WHAT YOU WISH TO SPEND ON THE FOLLOWING"
1505 PRINT "FOOD";
1510 GOSUB 1520
1515 GOTO 1555
1520 INPUT P
1525 IF P < 0 THEN 1550
1530 T = T - P
1535 IF T >= 0 THEN 1550
1537 PRINT "YOU DON'T HAVE THAT MUCH--KEEP YOUR SPENDING DOWN"
1540 T = T + P
1545 P = 0
1550 RETURN
1555 F = F + 2 / 3 * P
1560 PRINT "AMMUNITION";
1565 GOSUB 1520
1570 LET B = INT(B + 2 / 3 * P * 50)
1575 PRINT "CLOTHING";
1580 GOSUB 1520
1585 C = C + 2 / 3 * P
1590 PRINT "MISCELLANEOUS SUPPLIES";
1595 GOSUB 1520
1600 M1 = M1 + 2 / 3 * P
1605 M = M - 45
1610 GOTO 1800
REM ***HUNTING***
1700 IF B > 39 THEN 1715
1705 PRINT "TOUGH---YOU NEED MORE BULLETS TO GO HUNTING"
1710 GOTO 1310
1715 M = M - 45
1720 GOSUB 4500
1725 IF B1 <= 1 THEN 1755
1730 IF 100 * RND(0) < 13 * B1 THEN 1780
1735 F = F + 48 - 2 * B1
1740 PRINT "NICE SHOT--RIGHT THROUGH THE NECK--FEAST TONIGHT!!"
1745 B = B - 10 - 3 * B1
1750 GOTO 1800
REM **BELLS IN LINE 1755**
1755 PRINT "RIGHT BETWEEN THE EYES---YOU GOT A BIG ONE!!!!"
1765 F = F + 52 + RND(0) * 6
1770 B = B - 10 - RND(0) * 4
1775 GOTO 1800
1780 PRINT "SORRY---NO LUCK TODAY"
1800 IF F >= 13 THEN 1900
1805 GOTO 3500
REM ***EATING***
1900 PRINT "DO YOU WANT TO EAT (1) POORLY (2) MODERATELY"
1902 PRINT "OR (3) WELL";
1905 INPUT E
1910 IF E > 3 THEN 1900
1915 IF E < 1 THEN 1900
1920 LET E = INT(E)
1930 LET F = F - 8 - 5 * E
1935 IF F >= 0 THEN 2000
1940 F = F + 8 + 5 * E
1945 PRINT "YOU CAN'T EAT THAT WELL"
1950 GOTO 1900
2000 LET M = M + 200 + (A - 220) / 5 + 10 * RND(0)
2005 L1 = C1 = 0
REM ***RIDERS ATTACK***
2100 IF RND(0) * 10 > ((M / 100 - 4) ^ 2 + 72) / ((M / 100 - 4) ^ 2 + 12) - 1 THEN 2500
2105 PRINT "RIDERS AHEAD. THEY ";
2110 S5 = 0
2115 IF RND(0) < .8 THEN 2130
2120 PRINT "DON'T ";
2125 S5 = 1
2130 PRINT "LOOK HOSTILE"
2135 PRINT "TACTICS"
2140 PRINT "(1) RUN (2) ATTACK (3) CONTINUE (4) CIRCLE WAGONS"
2145 PRINT "IF YOU RUN YOU'LL GAIN TIME BUT WEAR DOWN YOUR OXEN"
2150 PRINT "IF YOU CIRCLE YOU'LL LOSE TIME"
2155 IF RND(0) > .2 THEN 2165
2160 S5 = 1 - S5
2165 INPUT T1
2170 IF T1 < 1 THEN 2140
2175 IF T1 > 4 THEN 2140
2180 T1 = INT(T1)
2185 IF S5 = 1 THEN 2330
2190 IF T1 > 1 THEN 2220
2195 M = M + 20
2200 M1 = M1 - 15
2205 B = B - 150
2210 A = A - 40
2215 GOTO 2395
2220 IF T1 > 2 THEN 2285
2225 GOSUB 4500
2230 B = B - B1 * 40 - 80
2235 IF B1 > 1 THEN 2250
2240 PRINT "NICE SHOOTING---YOU DROVE THEM OFF"
2245 GOTO 2395
2250 IF B1 <= 4 THEN 2275
2255 PRINT "LOUSY SHOT---YOU GOT KNIFED"
2260 K8 = 1
2265 PRINT "YOU HAVE TO SEE OL' DOC BLANCHARD"
2270 GOTO 2395
2275 PRINT "KINDA SLOW WITH YOUR COLT .45"
2280 GOTO 2395
2285 IF T1 > 3 THEN 2310
2290 IF RND(0) > .8 THEN 2390
2295 LET B = B - 150
2300 M1 = M1 - 15
2305 GOTO 2395
2310 GOSUB 4500
2315 B = B - B1 * 30 - 80
2320 M = M - 25
2325 GOTO 2235
2330 IF T1 > 1 THEN 2350
2335 M = M + 15
2340 A = A - 10
2345 GOTO 2395
2350 IF T1 > 2 THEN 2370
2355 M = M - 5
2360 B = B - 100
2365 GOTO 2395
2370 IF T1 > 3 THEN 2380
2375 GOTO 2395
2380 M = M - 20
2385 GOTO 2395
2390 PRINT "THEY DID NOT ATTACK"
2392 GOTO 2500
2395 IF S5 = 0 THEN 2410
2400 PRINT "RIDERS WERE FRIENDLY, BUT CHECK FOR POSSIBLE LOSSES"
2405 GOTO 2500
2410 PRINT "RIDERS WERE HOSTILE--CHECK FOR LOSSES"
2415 IF B >= 0 THEN 2500
2420 PRINT "YOU RAN OUT OF BULLETS AND GOT MASSACRED BY THE RIDERS"
2425 GOTO 3600
REM ***SELECTION OF EVENTS***
2500 LET D1 = 0
2505 RESTORE
PRINT ""
print ""
print ""
2510 R1 = 100 * RND(0)
2515 LET D1 = D1 + 1
2520 IF D1 = 16 THEN 3020
2525 READ D
2530 IF R1 > D THEN 2515
2535 DATA 6,11,13,15,17,22,32,35,37,42,44,54,64,69,95
2537 IF D1 > 10 THEN 2545
REM 2540 GOTO D1 OF 2550,2570,2590,2615,2630,2645,2660,2690,2785,2810
2540 SELECT CASE D1
CASE 1
GOTO 2550
CASE 2
GOTO 2570
CASE 3
GOTO 2590
CASE 4
GOTO 2615
CASE 5
GOTO 2630
CASE 6
GOTO 2645
CASE 7
GOTO 2660
CASE 8
GOTO 2690
CASE 9
GOTO 2785
CASE 10
GOTO 2810
END SELECT
REM 2545 GOTO D1-10 OF 2825,2860,2885,2970,2990,3020
2545 SELECT CASE D1 - 10
CASE 1
GOTO 2825
CASE 2
GOTO 2860
CASE 3
GOTO 2885
CASE 4
GOTO 2970
CASE 5
GOTO 2990
CASE 6
GOTO 3020
END SELECT
2550 PRINT "WAGON BREAKS DOWN--LOSE TIME AND SUPPLIES FIXING IT"
2555 LET M = M - 15 - 5 * RND(0)
2560 LET M1 = M1 - 8
2565 GOTO 3100
2570 PRINT "OX INJURES LEG---SLOWS YOU DOWN REST OF TRIP"
2575 LET M = M - 25
2580 LET A = A - 20
2585 GOTO 3100
2590 PRINT "BAD LUCK---YOUR DAUGHTER BROKE HER ARM"
2595 PRINT "YOU HAD TO STOP AND USE SUPPLIES TO MAKE A SLING"
2600 M = M - 5 - 4 * RND(0)
2605 M1 = M1 - 2 - 3 * RND(0)
2610 GOTO 3100
2615 PRINT "OX WANDERS OFF---SPEND TIME LOOKING FOR IT"
2620 M = M - 17
2625 GOTO 3100
2630 PRINT "YOUR SON GETS LOST---SPEND HALF THE DAY LOOKING FOR HIM"
2635 M = M - 10
2640 GOTO 3100
2645 PRINT "UNSAFE WATER--LOSE TIME LOOKING FOR CLEAN SPRING"
2650 LET M = M - 10 * RND(0) - 2
2655 GOTO 3100
2660 IF M > 950 THEN 2935
2665 PRINT "HEAVY RAINS---TIME AND SUPPLIES LOST"
2670 F = F - 10
2672 B = B - 500
2675 M1 = M1 - 15
2680 M = M - 10 * RND(0) - 5
2685 GOTO 3100
2690 PRINT "BANDITS ATTACK"
2700 GOSUB 4500
2705 B = B - 20 * B1
2715 IF B >= 0 THEN 2735
2720 PRINT "YOU RAN OUT OF BULLETS---THEY GET LOTS OF CASH"
2725 T = T / 3
2730 GOTO 2740
2735 IF B1 <= 1 THEN 2770
2740 PRINT "YOU GOT SHOT IN THE LEG AND THEY TOOK ONE OF YOUR OXEN"
2745 K8 = 1
2750 PRINT "BETTER HAVE A DOC LOOK AT YOUR WOUND"
2755 M1 = M1 - 5
2760 A = A - 20
2765 GOTO 3100
2770 PRINT "QUICKEST DRAW OUTSIDE OF DODGE CITY!!!"
2775 PRINT "YOU GOT 'EM!"
2780 GOTO 3100
2785 PRINT "THERE WAS A FIRE IN YOUR WAGON--FOOD AND SUPPLIES DAMAGED"
2790 F = F - 40
2792 B = B - 400
2795 LET M1 = M1 - RND(0) * 8 - 3
2800 M = M - 15
2805 GOTO 3100
2810 PRINT "LOSE YOUR WAY IN HEAVY FOG---TIME IS LOST"
2815 M = M - 10 - 5 * RND(0)
2820 GOTO 3100
2825 PRINT "YOU KILLED A POISONOUS SNAKE AFTER IT BIT YOU"
2830 B = B - 10
2835 M1 = M1 - 5
2840 IF M1 >= 0 THEN 2855
2845 PRINT "YOU DIE OF SNAKEBITE SINCE YOU HAVE NO MEDICINE"
2850 GOTO 3600
2855 GOTO 3100
2860 PRINT "WAGON GETS SWAMPED FORDING RIVER--LOSE FOOD AND CLOTHES"
2865 F = F - 30
2870 C = C - 20
2875 M = M - 20 - 20 * RND(0)
2880 GOTO 3100
2885 PRINT "WILD ANIMALS ATTACK!"
2887 GOSUB 4500
2889 IF B > 39 THEN 2895
2890 PRINT "YOU WERE TOO LOW ON BULLETS--"
2891 PRINT "THE WOLVES OVERPOWERED YOU"
2892 K8 = 1
2893 GOTO 3555
2895 IF B1 > 2 THEN 2910
2900 PRINT "NICE SHOOTIN' PARDNER---THEY DIDN'T GET MUCH"
2905 GOTO 2915
2910 PRINT "SLOW ON THE DRAW---THEY GOT AT YOUR FOOD AND CLOTHES"
2915 B = B - 20 * B1
2920 C = C - B1 * 4
2925 F = F - B1 * 8
2930 GOTO 3100
2935 PRINT "COLD WEATHER---BRRRRRRR!---YOU ";
2940 IF C > 22 + 4 * RND(0) THEN 2955
2945 PRINT "DON'T ";
2950 C1 = 1
2955 PRINT "HAVE ENOUGH CLOTHING TO KEEP YOU WARM"
2960 IF C1 = 0 THEN 3100
2965 GOTO 4700
2970 PRINT "HAIL STORM---SUPPLIES DAMAGED"
2975 M = M - 5 - RND(0) * 10
2977 B = B - 200
2980 M1 = M1 - 4 - RND(0) * 3
2985 GOTO 3100
2990 IF E = 1 THEN 4700
2995 IF E = 3 THEN 3010
3000 IF RND(0) > .25 THEN 4700
3005 GOTO 3100
3010 IF RND(0) < .5 THEN 4700
3015 GOTO 3100
3020 PRINT "HELPFUL INDIANS SHOW YOU WHERE TO FIND MORE FOOD"
3025 F = F + 14
3030 GOTO 3100
REM ***MOUNTAINS***
3100 IF M <= 950 THEN 700
3105 IF RND(0) * 10 > 9 - ((M / 100 - 15) ^ 2 + 72) / ((M / 100 - 15) ^ 2 + 12) THEN 3175
3110 PRINT "RUGGED MOUNTAINS"
3115 IF RND(0) > .1 THEN 3135
3120 PRINT "YOU GOT LOST---LOSE VALUABLE TIME TRYING TO FIND TRAIL!"
3125 M = M - 60
3130 GOTO 3175
3135 IF RND(0) > .11 THEN 3160
3140 PRINT "WAGON DAMAGED!---LOSE TIME AND SUPPLIES"
3145 M1 = M1 - 5
3147 B = B - 200
3150 M = M - 20 - 30 * RND(0)
3155 GOTO 3175
3160 PRINT "THE GOING GETS SLOW"
3165 M = M - 45 - RND(0) / .02
3175 IF F1 = 1 THEN 3195
3180 F1 = 1
3185 IF RND(0) < .8 THEN 3300
3190 PRINT "YOU MADE IT SAFELY THROUGH SOUTH PASS--NO SNOW"
3195 IF M < 1700 THEN 3215
3200 IF F2 = 1 THEN 3215
3205 F2 = 1
3210 IF RND(0) < .7 THEN 3300
3215 IF M > 950 THEN 700
3220 M9 = 1
3225 GOTO 700
3300 PRINT "BLIZZARD IN MOUNTAIN PASS--TIME AND SUPPLIES LOST"
3305 L1 = 1
3310 F = F - 25
3315 M1 = M1 - 10
3317 B = B - 300
3320 M = M - 30 - 40 * RND(0)
3325 IF C < 18 + 2 * RND(0) THEN 4700
3330 GOTO 3215
REM ***DYING***
3500 PRINT "YOU RAN OUT OF FOOD AND STARVED TO DEATH"
3505 GOTO 3600
3520 LET T = 0
3525 PRINT "YOU CAN'T AFFORD A DOCTOR"
3530 GOTO 3555
3550 PRINT "YOU RAN OUT MEDICAL SUPPLIES"
3555 PRINT "YOU DIED OF ";
3560 IF K8 = 1 THEN 3575
3565 PRINT "PNEUMONIA"
3570 GOTO 3600
3575 PRINT "INJURIES"
3600 PRINT
3602 PRINT "DO TO YOUR UNFORTUNATE SITUATION, THERE ARE A FEW"
3605 PRINT "FORMALITIES WE MUST GO THROUGH"
3610 PRINT
3615 PRINT "WOULD YOU LIKE A MINISTER?"
3620 INPUT C$
3630 PRINT "WOULD YOU LIKE A FANCY FUNERAL?"
3635 INPUT C$
3650 PRINT "WOULD YOU LIKE US TO INFORM YOUR NEXT OF KIN?"
3652 INPUT C$
3654 IF C$ = "y" THEN 3670
3656 PRINT "YOUR AUNT NELLIE IN ST. LOUIS IS ANXIOUS TO HEAR"
3658 PRINT
3670 PRINT "WE THANK YOU FOR THIS INFORMATION AND WE ARE SORRY YOU"
3675 PRINT "DIDN'T MAKE IT TO THE GREAT TERRITORY OF OREGON"
3680 PRINT "BETTER LUCK NEXT TIME"
3685 PRINT
3690 PRINT
3695 PRINT TAB(30); "SINCERELY"
3700 PRINT
3705 PRINT TAB(17); "THE OREGON CITY CHAMBER OF COMMERCE"
QUIT
REM ***FINAL TURN***
4000 F9 = (2040 - M2) / (M - M2)
4005 F = F + (1 - F9) * (8 + 5 * E)
4010 PRINT
4012 REM *BELLS IN LINES 4015, 4020*
4015 PRINT "YOU" '7" FINALLY ARRI"'7"VED AT ORE"'7"GON CITY"'7
4020 PRINT "AFTER" '7" 2040 LONG MILES"'7"---HOORAY!!"'7"!!!"
4025 PRINT
4030 F9 = INT(F9 * 14)
4035 D3 = D3 * 14 + F9
4040 F9 = F9 + 1
4045 IF F9 < 8 THEN 4055
4050 F9 = F9 - 7
REM 4055 GOTO F9 OF 4060,4070,4080,4090,4100,4110,4120
4055 SELECT CASE F9
CASE 1
GOTO 4060
CASE 2
GOTO 4070
CASE 3
GOTO 4080
CASE 4
GOTO 4090
CASE 5
GOTO 4100
CASE 6
GOTO 4110
CASE 7
GOTO 4120
END SELECT
4060 PRINT "MONDAY ";
4065 GOTO 4125
4070 PRINT "TUESDAY ";
4075 GOTO 4125
4080 PRINT "WEDNESDAY ";
4085 GOTO 4125
4090 PRINT "THURSDAY ";
4095 GOTO 4125
4100 PRINT "FRIDAY ";
4105 GOTO 4125
4110 PRINT "SATURDAY ";
4115 GOTO 4125
4120 PRINT "SUNDAY ";
4125 IF D3 > 124 THEN 4145
4130 D3 = D3 - 93
4135 PRINT "JULY "; D3; " 1847"
4140 GOTO 4215
4145 IF D3 > 155 THEN 4165
4150 D3 = D3 - 124
4155 PRINT "AUGUST "; D3; " 1847"
4160 GOTO 4215
4165 IF D3 > 185 THEN 4185
4170 D3 = D3 - 155
4175 PRINT "SEPTEMBER "; D3; " 1847"
4180 GOTO 4215
4185 IF D3 > 216 THEN 4205
4190 D3 = D3 - 185
4195 PRINT "OCTOBER "; D3; " 1847"
4200 GOTO 4215
4205 D3 = D3 - 216
4210 PRINT "NOVEMBER "; D3; " 1847"
4215 PRINT
4220 PRINT "FOOD", "BULLETS", "CLOTHING", "MISC. SUPP.", "CASH"
4230 IF B > 0 THEN 4240
4235 LET B = 0
4240 IF C > 0 THEN 4250
4245 LET C = 0
4250 IF M1 > 0 THEN 4260
4255 LET M1 = 0
4260 IF T > 0 THEN 4270
4265 LET T = 0
4270 IF F > 0 THEN 4285
4275 LET F = 0
4285 PRINT INT(F), INT(B), INT(C), INT(M1), INT(T)
4290 PRINT
4295 PRINT "PRESIDENT JAMES K. POLK SENDS YOU HIS"
4297 PRINT " HEARTIEST CONGRATULATIONS"
4300 PRINT
4305 PRINT TAB(11); "AND WISHES YOU A PROSPEROUS LIFE AHEAD"
4310 PRINT
4315 PRINT TAB(22); "AT YOUR NEW HOME"
QUIT
REM ***SHOOTING SUB-ROUTINE***
4500 RBANG = RND(0)
4505 B2 = 7
4510 C$ = ""
4520 PRINT
4525 IF RBANG > 0.2 THEN 4535
4530 B1 = 7
4535 RETURN
REM ***ILLNESS SUB-ROUTINE***
4700 IF 100 * RND(0) < 10 + 35 * (E - 1) THEN 4740
4705 IF 100 * RND(0) < 100 - (40 / 4 ^ (E - 1)) THEN 4760
4715 PRINT "SERIOUS ILLNESS---"
4720 PRINT "YOU MUST STOP FOR MEDICAL ATTENTION"
4725 M1 = M1 - 10
4730 S4 = 1
4735 GOTO 4780
4740 PRINT "MILD ILLNESS---MEDICINE USED"
4745 M = M - 5
4750 M1 = M1 - 2
4755 GOTO 4780
4760 PRINT "BAD ILLNESS---MEDICINE USED"
4765 M = M - 5
4770 M1 = M1 - 5
4780 IF M1 < 0 THEN 3550
4785 IF L1 = 1 THEN 3215
4790 GOTO 3100
REM ***IDENTIFICATION OF VARIABLES IN THE PROGRAM***
4902 REM A = AMOUNT SPENT ON ANIMALS
4904 REM B = AMOUNT SPENT ON AMMUNITION
4906 REM B1 = ACTUAL RESPONSE TIME FOR INPUTING 'BANG'
4908 REM B2 = MAXIMUM RESPONSE TIME FOR INPUTING 'BANG'
4910 REM C = AMOUNT SPENT ON CLOTHING
4912 REM C1 = FLAG FOR INSUFFICIENT CLOTHING IN COLD WEATHER
4914 REM C$ = YES/NO RESPONSE TO QUESTIONS
4916 REM D1 = COUNTER IN GENERATING EVENTS
4918 REM D3 = TURN NUMBER FOR SETTING DATE
4920 REM D4 = CURRENT DATE
4922 REM E = CHOICE OF EATING
4924 REM F = AMOUNT SPENT ON FOOD
4926 REM F1 = FLAG FOR CLEARING SOUTH PASS
4928 REM F2 = FLAG FOR CLEARING BLUE MOUNTAINS
4930 REM F9 = FRACTION OF 2 WEEKS TRAVELED ON FINAL TURN
4932 REM K8 = FLAG FOR INJURY
4934 REM L1 = FLAG FOR BLIZZARD
4936 REM M = TOTAL MILEAGE WHOLE TRIP
4938 REM M1 = AMOUNT SPENT ON MISCELLANEOUS SUPPLIES
4940 REM M2 = TOTAL MILEAGE UP THROUGH PREVIOUS TURN
4942 REM M9 = FLAG FOR CLEARING SOUTH PASS IN SETTING MILEAGE
4944 REM P = AMOUNT SPENT ON ITEMS AT FORT
4946 REM R1 = RANDOM NUMBER IN CHOOSING EVENTS
4948 REM S4 = FLAG FOR ILLNESS
4950 REM S5 = 'HOSTILITY OF RIDERS' FACTOR
4952 REM T = CASH LEFT OVER AFTER INITIAL PURCHASES
4954 REM T1 = CHOICE OF TACTICS WHEN ATTACKED
4956 REM X = CHOICE OF ACTION FOR EACH TURN
4958 REM X1 = FLAG FOR FORT OPTION
5000 END