This program is a text-based golf simulation set at Cherry Hills Country Club, site of the 1986 U.S. Open Championship, spanning all 18 holes with accurate yardages and par values for each. The player selects a handicap, a personal weakness (hook, slice, poor distance, trap shots, or putting), and chooses clubs numbered 1–4 for long irons, 13–19 for short irons, and 20 for a wedge. Shot distances are computed via two subroutines (lines 3770 and 4150) that use iterative RANDOMIZE 0 loops to constrain random outcomes within club-appropriate yardage bands. The putting subsystem converts a potency number (1–13) into a distance calculation with its own random variance, tracking strokes against par and awarding bogey, par, birdie, or eagle designations for each hole and the full round.
Program Analysis
Program Structure
The program divides into several logical phases:
- Setup (lines 1–390): Screen initialization, hole count selection, handicap entry, weakness selection, and variable initialization.
- Club reference display (lines 400–500): Shows a club selection guide before play begins.
- Main game loop (lines 500–1290): Per-hole tee display, club selection, shot computation, and fairway/approach logic.
- Putting subsystem (lines 1300–1820): Green distance tracking, putt potency input, overshoot/undershoot logic, and sand trap penalties.
- Hole scoring and progression (lines 1820–3210): Score tallying, hole-in-one detection, and per-hole data (yardage, par, hazards) via a large dispatch table.
- End-of-round summary (lines 3220–3680): Handicap-adjusted scoring with course-level bogey/par/birdie/eagle messages.
- Shot distance subroutines (lines 3770–4340): Two subroutines compute valid shot distances for irons (clubs 13–19) and woods/long irons (clubs 1–4) respectively.
Hole Data Dispatch Table
Each of the 18 holes is represented by a block of code setting d1 (distance in yards), p (par), a$ (right hazard), and b$ (left hazard), then jumping to line 500. The dispatch is handled by a chain of IF h1=n THEN GO TO statements at lines 2080–2240. Hole 18 is handled by a fall-through to lines 2250–2290 (470 yards, par 4). The actual Cherry Hills yardages are faithfully encoded:
| Hole | Yards | Par | Right Hazard | Left Hazard |
|---|---|---|---|---|
| 1 | 409 | 4 | ADJACENT FAIRWAY | ROUGH |
| 2 | 433 | 4 | ADJACENT FAIRWAY | ROUGH |
| 3 | 323 | 4 | OUT OF BOUNDS | ROUGH |
| 4 | 410 | 4 | ROUGH | ADJACENT FAIRWAY |
| 5 | 555 | 5 | WATER | ADJACENT FAIRWAY |
| 6 | 130 | 3 | (carried) | ROUGH |
| 7 | 384 | 4 | (carried) | (carried) |
| 8 | 229 | 3 | OUT OF BOUNDS | ROUGH |
| 9 | 443 | 4 | (carried) | (carried) |
| 10 | 425 | 4 | (carried) | (carried) |
| 11 | 594 | 5 | (carried) | (carried) |
| 12 | 203 | 3 | ADJACENT FAIRWAY | ADJACENT FAIRWAY |
| 13 | 402 | 4 | ROUGH | (carried) |
| 14 | 464 | 4 | (carried) | TREES |
| 15 | 210 | 3 | ADJACENT FAIRWAY | ADJACENT FAIRWAY |
| 16 | 419 | 4 | WATER | ROUGH |
| 17 | 550 | 5 | (carried) | (carried) |
| 18 | 470 | 4 | TREES | TREES |
Shot Distance Subroutines
Two subroutines generate valid shot distances using an iterative rejection-sampling technique powered by RANDOMIZE 0. RANDOMIZE 0 reseeds the random number generator from the system clock each call, giving genuine randomness without a fixed seed.
- Subroutine at 3770 (irons, clubs 13–19): Computes a base distance as
(1/c)*2000, then multiplies byRNDplus 60. The result is checked against club-specific lower and upper bounds in a series ofIFchains; if out of range it loops back to line 3770 and retries. Club 13 targets roughly 150–211 yards, reducing by about 14 yards per club up to club 19 at 89–131 yards. - Subroutine at 4150 (woods/long irons, clubs 1–4): Uses
(1/(c+4))*1000 * RND + 150, with club 1 targeting 190–360 yards and clubs 2–4 progressively narrower ranges down to 140–221 yards for club 4.
Wedge and Short-Game Logic
When the remaining distance is under 100 yards the player is prompted to choose a potency percentage (0.01–1.00) at line 730. The resulting distance is computed as 100 * c7 * (RND*0 + 0.5) at line 790 — note RND*0 always yields 0, making the multiplier a constant 0.5. The result is then scaled by * 0.8 + 10 at line 800. This means wedge shots are entirely deterministic given the player’s input percentage, with no random element at all.
Putting Subsystem
Green distance d2 is set to 3*d1 at line 1300 (converting yards to feet). The player picks a potency value 1–13; the effective putt distance is INT((3*p1)*(r9+0.1)) + 1 at lines 1420–1440, then scaled by 1.7 at line 1460. The variable z9 (set to 0.7 at line 50) acts as a “holed” threshold in feet; z8 = 6*z9 = 4.2 is the tolerance for “passed the cup.” If the weakness d=5 (putting), a 1-in-3 chance exists at line 1780–1810 to lip out even from within the threshold.
Weakness and Penalty System
The player’s chosen weakness d modifies play in specific ways:
d=0(hook): Random penalty triggered ifr1 <= 0.1(10% chance), sends to the hook message.d=1(slice): Same 10% chance, sends to slice/out-of-bounds message.d=2(poor distance): Subtracts 50 yards from long iron shots (capped at 125) and 20 yards from short iron shots.d=4(trap shots): Two-stroke penalty when overrunning the green into a sand trap instead of the normal one stroke.d=5(putting): 33% lip-out chance when ball is within the holed threshold.
All other players have only a 1.5% chance (r1 > 0.015 check at line 970) of random mishit, making the game much more forgiving for those without a declared weakness.
Hole-in-One Detection
Line 2950 jumps to line 2900, which checks IF s>1 THEN GO TO 1300 — so a hole-in-one is only recognized if the ball lands within the z9 threshold on the very first stroke (s=1 at that point, since s is incremented at line 930 before the distance check). The celebration at lines 2960–3005 plays a 10-repetition beep sequence using alternating semitones.
Bugs and Anomalies
- Hole 18 missing from dispatch: Line 2240 checks
IF h1=19(end of round) but there is noIF h1=18— hole 18 falls through to the default block at lines 2250–2290. This works correctly but is inconsistent with the explicit dispatch pattern used for all other holes. - Hole 3 par: Hole 3 is set to par 4 at line 2360 despite being only 323 yards, which is unusually short for a par 4 on a U.S. Open course.
- Handicap validation: The check at line 260 rejects handicaps of 24 or above with a message but does not loop back — execution falls through to line 290 and the game continues with the invalid handicap.
- Line 1835 dead code:
IF s=1 THEN GO TO 1840at line 1830 immediately falls to line 1840 regardless, making the condition irrelevant. DIM n$(1,13)at line 5: This array is declared but never used anywhere in the program.- Lines 2520, 2570–2580, 2670–2680, 2720–2730, 2770–2780, 3040, 3190–3200: Several holes use
LET a$=a$orLET b$=b$, which are no-ops serving only as placeholders — the hazards are simply inherited from the previous hole, which may not reflect the actual course layout. - Lines 1300–1310 unreachable from normal flow: The ball reaches the green via line 2950, which goes to 2900, then to 1300. However line 1310 checks
IF d2=0 THEN GO TO 1820— sinced2=3*d1andd1is always positive at this point, this branch is never taken in practice.
Content
Source Code
1 RANDOMIZE 0
2 BORDER 2: PAPER 1: INK 9: CLS
5 DIM n$(1,13)
10 PRINT "********************************"
40 PRINT "**** Welcome to Cherry Hills ***";"******* Country Club ********"
50 LET z9=0.7: LET z8=6*z9: LET z1=0
60 PRINT "** Site of the 1986 U.S. Open **";"********* Championship *********"
65 PRINT "********************************"
70 PRINT
80 LET z=18
90 PRINT
100 PRINT "Do you want to play all 18 holes? (Y/N)"
110 INPUT a$
120 IF a$="y" THEN GO TO 215
130 PRINT
140 PRINT "How many holes do you want to to play? <19"
150 INPUT z
160 LET z=INT z
170 IF z>8 THEN GO TO 310
180 PRINT
190 PRINT "You must be a tenderfoot!......"
200 PRINT
210 LET z1=z+1
215 PRINT
220 PRINT INVERSE 1;"The commentator will explain the";"course as you play.","Enjoy your game, see you on the","19th tee."
230 PAUSE 200: CLS
240 PRINT ''''"What is your handicap?"," (For "; INVERSE 1;z; INVERSE 0;" holes)"
250 INPUT h
260 IF h<24 THEN GO TO 290
270 PRINT
280 PRINT "You must be kidding, no one is","that bad!"
290 PRINT
300 PRINT
310 PRINT "Difficulties at GOLF include:"
320 PRINT 'TAB 8;"0=HOOK",TAB 8;"1=SLICE",TAB 8;"2=POOR DISTANCE",TAB 8;"4=TRAP SHOTS",TAB 8;"5=PUTTING"
330 INPUT "Which one is your worst (1 only)";d
340 IF d<0 THEN GO TO 330
350 IF d=3 THEN GO TO 330
360 IF d>5 THEN GO TO 330
370 LET h1=1
380 LET s=0: LET s2=0: LET s3=0: LET s8=0: LET s9=0: LET p9=0
390 LET d1=409: LET p=4
400 CLS
410 PRINT '"These are the clubs you have in","your bag."
420 PRINT '"YARDAGE DESIRED CLUB NEEDED"
425 PRINT "________________________________"
430 PRINT '"200 to 400 yards 1 to 4"
440 PRINT '"100 to 200 yards 13 to 19"
450 PRINT '"0 to 100 yards 20"
460 PRINT : PRINT INVERSE 1;"When you are ready press ENTER"
470 PAUSE 0
500 PAUSE 200: CLS
510 PRINT '"You are at the tee of hole "; INVERSE 1;h1; INVERSE 0;,"Distance "; INVERSE 1;d1; INVERSE 0;" yards","PAR "; INVERSE 1;p
520 IF h1>1 THEN GO TO 550
530 LET a$="ADJACENT FAIRWAY"
540 LET b$="ROUGH"
550 PRINT "On the right is "; FLASH 1;a$
560 PRINT "On the left is "; FLASH 1;b$
570 PRINT
571 IF d1>100 THEN GO TO 590
572 PRINT "You are within wedge range"
573 GO TO 720
590 INPUT "What club do you choose? ";c: CLS
600 IF c<1 THEN GO TO 590
610 IF d1<100 THEN GO TO 670
620 IF c>19 THEN GO TO 690
630 IF c>4 THEN GO TO 650
640 GO TO 820
650 IF c<13 THEN GO TO 690
660 GO TO 890
670 IF c=20 THEN GO TO 720
680 PRINT
690 PRINT FLASH 1;"IMPROPER SELECTION! CHOOSE AGAIN"
700 PRINT
710 PAUSE 60: GO TO 590
720 LET c1=100
730 PRINT "You may gauge your distance by","percent of your full swing","---from .01 to 1.00"
750 INPUT c7: CLS
760 IF c7<.01 THEN GO TO 750
770 IF c7>1.00 THEN GO TO 750
780 LET c1=c1*c7
790 RANDOMIZE 0: LET c7=c1*(RND*0+.5)
800 LET c7=(c7+10)*.8
810 GO TO 930
820 GO SUB 4150
830 IF d<>2 THEN GO TO 930
840 LET c7=c7-50
850 IF c7<125 THEN GO TO 870
860 GO TO 930
870 LET c7=125
880 GO TO 930
890 GO SUB 3770
900 IF d<>2 THEN GO TO 930
910 LET c7=c7-20
920 GO TO 930
930 LET s=s+1
940 RANDOMIZE 0: LET r1=RND
950 IF d=0 THEN GO TO 1110
960 IF d=1 THEN GO TO 1130
970 IF r1>.015 THEN GO TO 1150
980 LET r2=INT (100*r1)
990 IF r2=0 THEN GO TO 1040
1000 IF r2=1 THEN GO TO 1060
1010 LET d3=d1-INT c7
1020 PRINT FLASH 1;'"You sliced your **** shot,","went out of bounds."
1030 GO TO 1080
1040 PRINT FLASH 1;'"You sliced your **** shot,","went into water......."
1050 GO TO 1080
1060 PRINT FLASH 1;'"You hooked your **** shot,","went???????"
1070 GO TO 1080
1080 PRINT INVERSE 1; BRIGHT 1;'"Penalty stroke assessed.","Hit from previous location."
1090 LET s=s+1
1100 PAUSE 100: PRINT ''"You are "; INVERSE 1;d1; INVERSE 0;" from the pin.": GO TO 570
1110 IF r1>.1 THEN GO TO 1150
1120 GO TO 1060
1130 IF r1>.1 THEN GO TO 1150
1140 GO TO 1020
1150 LET c7=INT c7
1160 LET d3=d1-INT c7
1170 IF d3<0 THEN GO TO 1220
1180 LET d1=d3
1190 IF d1<z9 THEN GO TO 2950
1200 PRINT ''''"Shot went "; INVERSE 1;c7; INVERSE 0;" yards.","It's "; INVERSE 1;d1; INVERSE 0;" yards from the pin."
1210 GO TO 1260
1220 LET d1=(-1*d3)
1230 IF d1<z9 THEN GO TO 2950
1240 PRINT '''"To much club........","You're past the pin.": PAUSE 100
1250 PRINT ''"Shot went "; INVERSE 1;c7; INVERSE 0;" yards.","It's "; INVERSE 1;d1; INVERSE 0;" yards from the pin."
1260 IF d1<20 THEN GO TO 2950
1270 RANDOMIZE d1: LET r3=INT (RND*30)
1280 PRINT '"Your ball is "; INVERSE 1;r3; INVERSE 0;" yards","off line....in fairway"
1290 PAUSE 100: GO TO 570
1300 LET d2=3*d1
1310 IF d2=0 THEN GO TO 1820
1320 PAUSE 100: CLS : PRINT
1330 PRINT
1340 PRINT "You are on the GREEN "; INVERSE 1;d2; INVERSE 0;" feet","from the pin."
1350 PRINT '"Everyone please talk softly,","now!"
1360 INPUT "Choose your putt distance by","potency number from 1 to 13"'''''''',,,,;p1
1380 IF p1>13 THEN GO TO 1360
1390 IF p1<1 THEN GO TO 1360
1400 RANDOMIZE 0: LET r9=RND
1410 IF r9<.5 THEN GO TO 1400
1420 LET p7=(3*p1)*(r9+.1)
1430 LET p7=INT p7
1440 LET p7=p7+1
1460 LET p8=1.7*p7
1470 LET p8=INT p8
1480 LET g=d2-p8
1490 IF g>-45 THEN GO TO 1630
1500 IF r1>.5 THEN GO TO 1530
1510 PRINT '"You overshot the cup and landed","in the fairway...."
1520 GO TO 1580
1530 PRINT "You oversot the GREEN, and","landed in a "; FLASH 1;"SAND TRAP!!!"
1540 IF d<>4 THEN GO TO 1580
1550 PRINT "You lost two strokes getting","back to the GREEN..."
1560 LET s=s+2
1570 GO TO 1600
1580 PRINT '"You lost one stroke getting","back to the GREEN..."
1590 LET s=s+1
1600 RANDOMIZE 0: LET d2=p1*(RND+.5)
1610 LET d2=INT d2
1620 PAUSE 100: GO TO 1330
1630 IF g<0 THEN GO TO 1700
1635 LET s=s+1
1640 LET d2=g
1650 IF g<z9 THEN GO TO 1770
1660 PRINT ' INVERSE 1;"YOUR PUTT IS SHORT."
1670 PRINT
1690 PAUSE 100: CLS : GO TO 1340
1700 LET s=s+1
1710 LET d2=(-1)*g
1720 LET g=ABS g
1730 IF g<z8 THEN GO TO 1770
1740 PRINT INVERSE 1;"PASSED THE CUP."
1750 PRINT
1760 PAUSE 100: CLS : GO TO 1340
1770 IF d<>5 THEN GO TO 1820
1780 RANDOMIZE 0: LET r2=RND
1790 IF r2>.333 THEN GO TO 1820
1800 LET d2=1
1810 GO TO 1740
1820 LET s2=s2+s
1830 IF s=1 THEN GO TO 1840
1840 PRINT FLASH 1; BRIGHT 1;"YOU H*O*L*E*D IT"
1850 PRINT
1860 PRINT "Your score on hole "; INVERSE 1;h1; INVERSE 0;" was "; INVERSE 1;s
1870 LET p9=p9+p
1880 PRINT '"Total par for "; INVERSE 1;h1; INVERSE 0;" holes is "; INVERSE 1;p9; INVERSE 0;," your total is "; INVERSE 1;s2
1890 LET a=p-s
1910 IF a=-1 THEN GO TO 1960
1920 IF a=0 THEN GO TO 1990
1930 IF a=1 THEN GO TO 2010
1940 IF a=2 THEN GO TO 2030
1950 GO TO 2050
1960 PRINT ' FLASH 1; BRIGHT 1;"A BOGEY....."
1980 GO TO 2050
1990 PRINT ' FLASH 1; BRIGHT 1;"A PAR"
2000 GO TO 2050
2010 PRINT ' FLASH 1; BRIGHT 1;"Very good a BIRDIE"
2020 GO TO 2050
2030 PRINT ' FLASH 1; BRIGHT 1;"*** AN EAGLE !!*.."
2040 GO TO 2050
2050 LET h1=h1+1
2060 LET s=0
2070 IF h1=z1 THEN GO TO 3220
2080 IF h1=2 THEN GO TO 2300
2090 IF h1=3 THEN GO TO 2350
2100 IF h1=4 THEN GO TO 2400
2110 IF h1=5 THEN GO TO 2450
2120 IF h1=6 THEN GO TO 2500
2130 IF h1=7 THEN GO TO 2550
2140 IF h1=8 THEN GO TO 2600
2150 IF h1=9 THEN GO TO 2650
2160 IF h1=10 THEN GO TO 2700
2170 IF h1=11 THEN GO TO 2750
2180 IF h1=12 THEN GO TO 2800
2190 IF h1=13 THEN GO TO 2850
2200 IF h1=14 THEN GO TO 3020
2210 IF h1=15 THEN GO TO 3070
2220 IF h1=16 THEN GO TO 3120
2230 IF h1=17 THEN GO TO 3170
2240 IF h1=19 THEN GO TO 3220
2250 LET d1=470
2260 LET p=4
2270 LET a$="TREES"
2280 LET b$=a$
2290 PAUSE 100: GO TO 500
2300 LET d1=433
2310 LET p=4
2320 LET a$="ADJACENT FAIRWAY"
2330 LET b$="ROUGH"
2340 PAUSE 100: GO TO 500
2350 LET d1=323
2360 LET p=4
2370 LET a$="OUT OF BOUNDS."
2380 LET b$="ROUGH"
2390 PAUSE 100: GO TO 500
2400 LET d1=410
2410 LET p=4
2420 LET a$="ROUGH"
2430 LET b$="ADJACENT FAIRWAY"
2440 PAUSE 100: GO TO 500
2450 LET d1=555
2460 LET p=5
2470 LET a$="WATER"
2480 LET b$="ADJACENT FAIRWAY"
2490 PAUSE 100: GO TO 500
2500 LET d1=130
2510 LET p=3
2520 LET a$=b$
2530 LET b$="ROUGH"
2540 PAUSE 100: GO TO 500
2550 LET d1=384
2560 LET p=4
2570 LET a$=a$
2580 LET b$=a$
2590 PAUSE 100: GO TO 500
2600 LET d1=229
2610 LET p=3
2620 LET a$="OUT OF BOUNDS."
2630 LET b$="ROUGH"
2640 PAUSE 100: GO TO 500
2650 LET d1=443
2660 LET p=4
2670 LET a$=a$
2680 LET b$=b$
2690 PAUSE 100: GO TO 500
2700 LET d1=425
2710 LET p=4
2720 LET a$=a$
2730 LET b$=b$
2740 PAUSE 100: GO TO 500
2750 LET d1=594
2760 LET p=5
2770 LET a$=b$
2780 LET b$=b$
2790 PAUSE 100: GO TO 500
2800 LET d1=203
2810 LET p=3
2820 LET a$="ADJACENT FAIRWAY"
2830 LET b$=a$
2840 PAUSE 100: GO TO 500
2850 LET d1=402
2860 LET p=4
2870 LET a$="ROUGH"
2880 LET b$=b$
2890 PAUSE 100: GO TO 500
2900 IF s>1 THEN GO TO 1300
2910 CLS : PRINT
2920 PRINT
2930 PRINT "********************************"
2940 GO TO 2960
2950 GO TO 2900
2960 PRINT FLASH 1;"**A*HOLE*IN*ONE**A*HOLE*IN*ONE**"
2970 PRINT "********************************"
2980 PRINT
2990 PRINT
3000 PRINT
3005 FOR i=1 TO 10: BEEP .05,15: BEEP .05,11: BEEP .05,7: NEXT i
3010 GO TO 1820
3020 LET d1=464
3030 LET p=4
3040 LET a$=a$
3050 LET b$="TREES"
3060 PAUSE 100: GO TO 500
3070 LET d1=210
3080 LET p=3
3090 LET a$="ADJACENT FAIRWAY"
3100 LET b$=a$
3110 PAUSE 100: GO TO 500
3120 LET d1=419
3130 LET p=4
3140 LET a$="WATER"
3150 LET b$="ROUGH"
3160 PAUSE 100: GO TO 500
3170 LET d1=550
3180 LET p=5
3190 LET a$=a$
3200 LET b$=a$
3210 PAUSE 100: GO TO 500
3220 LET s3=s2-h
3230 PAUSE 200: CLS : PRINT
3240 PRINT
3250 PRINT "Total par for these "; INVERSE 1;z; INVERSE 0;" Holes","is "; INVERSE 1;p9; INVERSE 0;", your total was "; INVERSE 1;s2
3260 PRINT '"Minus your handicap your","score is "; INVERSE 1;s3
3270 PRINT
3280 IF s3>(p9+1) THEN GO TO 3540
3290 IF s3=(p9+1) THEN GO TO 3380
3300 IF s3=p9 THEN GO TO 3420
3310 IF s3=(p9-1) THEN GO TO 3460
3320 IF s3=(p9-2) THEN GO TO 3500
3330 PRINT
3340 PRINT
3350 PRINT FLASH 1;"I DON'T BELIEVE IT!!!!!"
3360 PRINT
3370 GO TO 3540
3380 PRINT
3390 PRINT FLASH 1; INVERSE 1; BRIGHT 1;"YOU GOT A "; INVERSE 0;"BOGEY"; INVERSE 1;" FOR THE COURSE."
3400 PRINT
3410 GO TO 3540
3420 PRINT
3430 PRINT FLASH 1; INVERSE 1; BRIGHT 1;"YOU MADE PAR FOR THE COURSE."
3440 PRINT
3450 GO TO 3540
3460 PRINT
3470 PRINT FLASH 1; INVERSE 1; BRIGHT 1;"YOU GOT A"; INVERSE 0;" BIRDIE "; INVERSE 1;"FOR THE COURSE"
3480 PRINT
3490 GO TO 3540
3500 PRINT
3510 PRINT BRIGHT 1; FLASH 1; INVERSE 1;"**YOU EAGLED"; INVERSE 0; FLASH 1;" THE COURSE.**"
3520 PRINT
3530 GO TO 3540
3540 PRINT
3550 IF z<>18 THEN GO TO 3650
3640 CLS
3650 PRINT '''''''"Do you feel up to another",; INVERSE 1;z; INVERSE 0;" holes?"
3660 INPUT c$
3670 IF c$="y" THEN GO TO 370
3680 STOP
3770 LET c6=(1/c)
3780 LET c6=c6*2000
3790 RANDOMIZE 0: LET c7=c6*RND+60
3800 IF c=13 THEN GO TO 3870
3810 IF c=14 THEN GO TO 3900
3820 IF c=15 THEN GO TO 3940
3830 IF c=16 THEN GO TO 3980
3840 IF c=17 THEN GO TO 4020
3850 IF c=18 THEN GO TO 4060
3860 IF c=19 THEN GO TO 4100
3870 IF c7<150 THEN GO TO 3770
3880 IF c7<211 THEN GO TO 4140
3890 GO TO 3770
3900 IF c7>140 THEN GO TO 3920
3910 GO TO 3770
3920 IF c7<201 THEN GO TO 4140
3930 GO TO 3770
3940 IF c7>129 THEN GO TO 3960
3950 GO TO 3770
3960 IF c7<187 THEN GO TO 4140
3970 GO TO 3770
3980 IF c7>119 THEN GO TO 4000
3990 GO TO 3770
4000 IF c7<173 THEN GO TO 4140
4010 GO TO 3770
4020 IF c7>109 THEN GO TO 4040
4030 GO TO 3770
4040 IF c7<159 THEN GO TO 4140
4050 GO TO 3770
4060 IF c7>99 THEN GO TO 4080
4070 GO TO 3770
4080 IF c7<145 THEN GO TO 4140
4090 GO TO 3770
4100 IF c7>89 THEN GO TO 4120
4110 GO TO 3770
4120 IF c7<131 THEN GO TO 4140
4130 GO TO 3770
4140 RETURN
4150 LET c8=c+4
4160 LET c7=(1/c8)*1000
4170 RANDOMIZE 0: LET c7=c7*RND
4180 LET c7=c7+150
4190 IF c=1 THEN GO TO 4250
4200 IF c=2 THEN GO TO 4280
4210 IF c=3 THEN GO TO 4310
4220 IF c7<140 THEN GO TO 4150
4230 IF c7<221 THEN GO TO 4340
4240 GO TO 4150
4250 IF c7<190 THEN GO TO 4150
4260 IF c7<360 THEN GO TO 4340
4270 GO TO 4150
4280 IF c7<170 THEN GO TO 4150
4290 IF c7<251 THEN GO TO 4340
4300 GO TO 4150
4310 IF c7<150 THEN GO TO 4150
4320 IF c7<231 THEN GO TO 4340
4330 GO TO 4150
4340 RETURN
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.

