10 REM PAC-MAN GAME 20 REM REQUIRES COLOR/GRAPHICS ADAPTER 30 REM COMPILE THIS FOR FULL SPEED 150 B$ = TIME$: X$ = RIGHT$(B$, 2): Y$ = MID$(B$, 4, 2): X = VAL(X$): Y = VAL(Y$): Z = X + (Y * 100) 160 RANDOMIZE Z: X = 0: Y = 0: B$ = "" 170 CLS : SCREEN 1: KEY OFF 180 DIM PAC(100): DIM PAC1(100): DIM GOBLIN(100): DIM CHERRY(100): DIM ENER(50): DIM SMPAC(50): DIM EYES(50): DIM NUM1500(50): DIM NUM1000(50): DIM NUM500(50) 190 X = 149: Y = 143: X1 = 133: Y1 = 95: X2 = 173: Y2 = 95: X3 = 173: Y3 = 83: MEN = 5: EAT = 0: INPRE = 1: TIME = 1: SWITCH = 100: X4 = 155: Y4 = 107: CHER = 0: MOO = 0: SPEED = 90000000000000# 200 DIM NUM100(50): DIM NUM300(50): DIM NUM700(50): DIM NUM2000(50): DIM NUM3000(50): DIM NUM5000(50) 210 CIRCLE (160, 100), 6, 1, , , .8 220 PAINT (160, 100), 1, 1 230 GET (153, 95)-(167, 105), PAC: CLS 240 LINE (160, 100)-(174, 110), 2, BF 250 GET (160, 100)-(174, 110), GOBLIN: CLS 260 CIRCLE (100, 100), 2, 2: PAINT (100, 100), 2, 2 270 CIRCLE (106, 101), 2, 2: PAINT (106, 101), 2, 2 280 LINE (100, 98)-(105, 93), 2 290 LINE -(106, 99), 2 300 GET (98, 93)-(108, 103), CHERRY: CLS 310 CIRCLE (160, 100), 2: PAINT (160, 100), 3, 3 320 GET (157, 97)-(163, 103), ENER: CLS 330 CIRCLE (160, 100), 5, 1: PAINT (160, 100), 1, 1: GET (155, 96)-(165, 104), SMPAC: CLS 340 CIRCLE (100, 100), 7, 2, 0, 3.14, 1: LINE (93, 100)-(93, 103), 2: LINE -(107, 103), 2: LINE -(107, 100), 2: PAINT (100, 100), 2, 2: GET (93, 93)-(107, 103), GOBLIN: CLS 350 CIRCLE (100, 100), 2, 2: CIRCLE (106, 100), 2, 2: PSET (99, 99), 2: PSET (100, 99), 2: PSET (99, 100), 2: PSET (105, 99), 2: PSET (106, 99), 2: PSET (105, 100), 2: GET (98, 98)-(108, 102), EYES: PUT (50, 50), EYES: CLS 360 PUT (100, 100), GOBLIN: PUT (102, 102), EYES: GET (100, 100)-(114, 110), GOBLIN: CLS 370 PRINT "1500 1000 3000 700 2000 3000 5000": GET (0, 0)-(32, 8), NUM1500: GET (40, 0)-(72, 8), NUM1000: GET (8, 0)-(32, 8), NUM500 380 GET (40, 0)-(63, 8), NUM100: GET (80, 0)-(102, 8), NUM300: GET (120, 0)-(144, 8), NUM700: GET (152, 0)-(184, 8), NUM2000: GET (192, 0)-(224, 8), NUM3000: GET (232, 0)-(264, 8), NUM5000: CLS 390 LINE (52, 10)-(156, 10) 400 LINE -(156, 34) 410 LINE -(164, 34) 420 LINE -(164, 10) 430 LINE -(268, 10) 440 LINE -(268, 64) 450 LINE -(228, 64) 460 LINE -(228, 88) 470 LINE -(268, 88) 480 LINE (268, 100)-(228, 100) 490 LINE -(228, 124) 500 LINE -(268, 124) 510 LINE -(268, 154) 520 LINE -(252, 154) 530 LINE -(252, 160) 540 LINE -(268, 160) 550 LINE -(268, 190) 560 LINE -(52, 190) 570 LINE -(52, 160) 580 LINE -(68, 160) 590 LINE -(68, 154) 600 LINE -(52, 154) 610 LINE -(52, 124) 620 LINE -(92, 124) 630 LINE -(92, 100) 640 LINE -(52, 100) 650 LINE (52, 88)-(92, 88) 660 LINE -(92, 64) 670 LINE -(52, 64) 680 LINE -(52, 10) 690 LINE (68, 22)-(92, 34), , BF 700 LINE (108, 22)-(140, 34), , BF 710 LINE (180, 22)-(212, 34), , BF 720 LINE (228, 22)-(252, 34), , BF 730 LINE (68, 46)-(92, 52), , BF 740 LINE (108, 46)-(116, 88), , BF 750 LINE (116, 64)-(140, 70), , BF 760 LINE (132, 46)-(188, 52), , BF 770 LINE (156, 52)-(164, 70), , BF 780 LINE (204, 46)-(212, 88), , BF 790 LINE (180, 64)-(204, 70), , BF 800 LINE (228, 46)-(252, 52), , BF 810 LINE (132, 82)-(188, 106), , B 820 LINE (108, 100)-(116, 124), , BF 830 LINE (204, 100)-(212, 124), , BF 840 LINE (132, 118)-(188, 124), , BF 850 LINE (156, 124)-(164, 142), , BF 860 LINE (68, 136)-(92, 142), , BF 870 LINE (84, 142)-(92, 160), , BF 880 LINE (108, 136)-(140, 142), , BF 890 LINE (180, 136)-(212, 142), , BF 900 LINE (228, 136)-(252, 142), , BF 910 LINE (228, 142)-(236, 160), , BF 920 LINE (68, 172)-(140, 178), , BF 930 LINE (108, 154)-(116, 172), , BF 940 LINE (132, 154)-(188, 160), , BF 950 LINE (156, 160)-(164, 178), , BF 960 LINE (180, 172)-(252, 178), , BF 970 LINE (204, 154)-(212, 172), , BF 980 LINE (133, 82)-(187, 82), 0 990 LINE (156, 10)-(164, 34), , BF 1000 LINE (252, 154)-(268, 160), , BF 1010 LINE (52, 154)-(68, 160), , BF 1020 FOR H = 60 TO 260 STEP 8 1030 FOR V = 16 TO 58 STEP 6 1040 PSET (H, V) 1050 NEXT: NEXT 1060 FOR H = 60 TO 260 STEP 8 1070 FOR V = 130 TO 190 STEP 6 1080 PSET (H, V) 1090 NEXT: NEXT 1100 FOR V = 10 TO 160 STEP 6 1110 PSET (100, V) 1120 NEXT 1130 FOR V = 10 TO 160 STEP 6 1140 PSET (220, V) 1150 NEXT 1160 CIRCLE (60, 28), 2: PAINT (60, 27), 3, 3 1170 CIRCLE (260, 28), 2: PAINT (260, 27), 3, 3 1180 CIRCLE (60, 148), 2: PAINT (60, 147), 3, 3 1190 CIRCLE (260, 148), 2: PAINT (260, 147), 3, 3 1200 LOCATE 1, 18: PRINT "PAC MAN" 1210 LOCATE 3, 1: PRINT "SCORE:" 1220 LINE (156, 144)-(164, 150), 0, BF 1230 PUT (52, 191), SMPAC: PUT (67, 191), SMPAC: PUT (81, 191), SMPAC: PUT (96, 191), SMPAC: PUT (111, 191), SMPAC 1240 R2 = INT(RND * 4) + 1 1250 R3 = INT(RND * 4) + 1 1260 PUT (X, Y), PAC 1270 GOSUB 1930 1280 PUT (X, Y), PAC 1290 IF EAT = 1 THEN CHAN = CHAN + 1 1300 IF CHAN >= SPEED THEN 3670 1310 IF INPRE = 1 AND SCORE + ADD >= 10000 THEN 4040 1320 UP = UP + 1: IF UP >= 300 AND CHER = 0 THEN GOSUB 4370 1330 IF UP >= 100 AND CHER = 1 THEN GOSUB 4400 1340 IF X = 157 AND Y = 107 AND CHER = 1 THEN GOSUB 4430 1350 IF MOO = 1 AND TIME$ > "00:00:01" THEN GOSUB 4560 FOR pause = 1 TO 0: NEXT pause 1360 a$ = INKEY$ 1370 IF a$ <> "" THEN B$ = a$ 1380 IF B$ = "2" THEN 1430 IF B$ = CHR$(0) + "P" THEN 1430 1390 IF B$ = "4" THEN 1550 IF B$ = CHR$(0) + "K" THEN 1550 1400 IF B$ = "6" THEN 1680 IF B$ = CHR$(0) + "M" THEN 1680 1410 IF B$ = "8" THEN 1810 IF B$ = CHR$(0) + "H" THEN 1810 1420 RETURN 1430 IF 3 = POINT(X + 1, Y + 11) OR 3 = POINT(X + 13, Y + 11) THEN RETURN 1440 PUT (X, Y), PAC 1450 Y = Y + 6 1460 PUT (X, Y), PAC 1470 IF 2 = POINT(X + 7, Y + 5) AND MOO = 0 THEN GOSUB 3000 1480 IF X = X1 AND Y = Y1 AND EAT = 1 THEN GOSUB 3800 1490 IF X = X2 AND Y = Y2 AND EAT = 1 THEN GOSUB 3880 1500 IF X = X3 AND Y = Y3 AND EAT = 1 THEN GOSUB 3960 1510 IF X1 = X AND Y1 = Y AND EAT = 0 THEN 3180 1520 IF X2 = X AND Y2 = Y AND EAT = 0 THEN 3180 1530 IF X3 = X AND Y3 = Y AND EAT = 0 THEN 3180 1540 RETURN 1550 IF 3 = POINT(X - 1, Y + 1) OR 3 = POINT(X - 1, Y + 9) THEN RETURN 1560 PUT (X, Y), PAC 1570 X = X - 8 1580 IF X < 53 THEN X = 253 1590 PUT (X, Y), PAC 1600 IF 2 = POINT(X + 7, Y + 5) AND MOO = 0 THEN GOSUB 3000 1610 IF X = X1 AND Y = Y1 AND EAT = 1 THEN GOSUB 3800 1620 IF X = X2 AND Y = Y2 AND EAT = 1 THEN GOSUB 3880 1630 IF X = X3 AND Y = Y3 AND EAT = 1 THEN GOSUB 3960 1640 IF X1 = X AND Y1 = Y AND EAT = 0 THEN 3180 1650 IF X2 = X AND Y2 = Y AND EAT = 0 THEN 3180 1660 IF X3 = X AND Y3 = Y AND EAT = 0 THEN 3180 1670 RETURN 1680 IF 3 = POINT(X + 15, Y + 1) OR 3 = POINT(X + 15, Y + 9) THEN RETURN 1690 PUT (X, Y), PAC 1700 X = X + 8 1710 IF X > 267 THEN X = 53 1720 PUT (X, Y), PAC 1730 IF 2 = POINT(X + 7, Y + 5) AND MOO = 0 THEN GOSUB 3000 1740 IF X = X1 AND Y = Y1 AND EAT = 1 THEN GOSUB 3800 1750 IF X = X2 AND Y = Y2 AND EAT = 1 THEN GOSUB 3880 1760 IF X = X3 AND Y = Y3 AND EAT = 1 THEN GOSUB 3960 1770 IF X1 = X AND Y1 = Y AND EAT = 0 THEN 3180 1780 IF X2 = X AND Y2 = Y AND EAT = 0 THEN 3180 1790 IF X3 = X AND Y3 = Y AND EAT = 0 THEN 3180 1800 RETURN 1810 IF 3 = POINT(X + 1, Y - 1) OR 3 = POINT(X + 11, Y - 1) THEN RETURN 1820 PUT (X, Y), PAC 1830 Y = Y - 6 1840 PUT (X, Y), PAC 1850 IF 2 = POINT(X + 7, Y + 5) AND MOO = 0 THEN GOSUB 3000 1860 IF X = X1 AND Y = Y1 AND EAT = 1 THEN GOSUB 3800 1870 IF X = X2 AND Y = Y2 AND EAT = 1 THEN GOSUB 3880 1880 IF X = X3 AND Y = Y3 AND EAT = 1 THEN GOSUB 3960 1890 IF X1 = X AND Y1 = Y AND EAT = 0 THEN 3180 1900 IF X2 = X AND Y2 = Y AND EAT = 0 THEN 3180 1910 IF X3 = X AND Y3 = Y AND EAT = 0 THEN 3180 1920 RETURN 1930 PUT (X1, Y1), GOBLIN 1940 PUT (X2, Y2), GOBLIN 1950 PUT (X3, Y3), GOBLIN 1960 R1 = INT(RND * 4) + 1: IF R1 = DIR1 THEN 1960 ELSE 1990 1970 R2 = INT(RND * 4) + 1: IF R2 = DIR2 THEN 1970 ELSE 2000 1980 R3 = INT(RND * 4) + 1: IF R3 = DIR3 THEN 1980 ELSE 2010 1990 GOSUB 1290: ON R1 GOTO 2030, 2270, 2510, 2750 2000 ON R2 GOTO 2110, 2350, 2590, 2830 2010 ON R3 GOTO 2190, 2430, 2670, 2910 2020 GOTO 9010 2030 IF 3 = POINT(X1 + 1, Y1 + 11) OR 3 = POINT(X1 + 13, Y1 + 11) THEN 1960 2040 PUT (X1, Y1), GOBLIN 2050 Y1 = Y1 + 6: DIR1 = 4 2060 PUT (X1, Y1), GOBLIN 2070 IF X1 = X AND Y1 = Y AND EAT = 0 THEN 3180 2080 IF X = X1 AND Y = Y1 AND EAT = 1 THEN GOSUB 3800 2090 IF X1 = 93 AND Y1 = 89 THEN R1 = 2: DIR1 = 3: GOTO 1990 2100 GOTO 2010 2110 IF 3 = POINT(X2 + 1, Y2 + 11) OR 3 = POINT(X2 + 13, Y2 + 11) THEN 1970 2120 PUT (X2, Y2), GOBLIN 2130 Y2 = Y2 + 6: DIR2 = 4 2140 PUT (X2, Y2), GOBLIN 2150 IF X2 = X AND Y2 = Y AND EAT = 0 THEN 3180 2160 IF X = X2 AND Y = Y2 AND EAT = 1 THEN GOSUB 3880 2170 IF X2 = 93 AND Y2 = 89 THEN R2 = 2: DIR2 = 3: GOTO 2000 2180 GOTO 1990 2190 IF 3 = POINT(X3 + 1, Y3 + 11) OR 3 = POINT(X3 + 13, Y3 + 11) THEN 1980 2200 PUT (X3, Y3), GOBLIN 2210 Y3 = Y3 + 6: DIR3 = 4 2220 PUT (X3, Y3), GOBLIN 2230 IF X3 = X AND Y3 = Y AND EAT = 0 THEN 3180 2240 IF X = X3 AND Y = Y3 AND EAT = 1 THEN GOSUB 3960 2250 IF X3 = 93 AND Y3 = 89 THEN R3 = 2: DIR3 = 3: GOTO 2010 2260 GOTO 2000 2270 IF 3 = POINT(X1 - 1, Y1 + 1) OR 3 = POINT(X1 - 1, Y1 + 9) THEN 1960 2280 PUT (X1, Y1), GOBLIN 2290 X1 = X1 - 8: DIR1 = 3 2300 IF X1 < 53 THEN X1 = 253 2310 PUT (X1, Y1), GOBLIN 2320 IF X1 = X AND Y1 = Y AND EAT = 0 THEN 3180 2330 IF X = X1 AND Y = Y1 AND EAT = 1 THEN GOSUB 3800 2340 GOTO 2010 2350 IF 3 = POINT(X2 - 1, Y2 + 1) OR 3 = POINT(X2 - 1, Y2 + 9) THEN 1970 2360 PUT (X2, Y2), GOBLIN 2370 X2 = X2 - 8: DIR2 = 3 2380 IF X2 < 53 THEN X2 = 253 2390 PUT (X2, Y2), GOBLIN 2400 IF X2 = X AND Y2 = Y AND EAT = 0 THEN 3180 2410 IF X = X2 AND Y = Y2 AND EAT = 1 THEN GOSUB 3880 2420 GOTO 1990 2430 IF 3 = POINT(X3 - 1, Y3 + 1) OR 3 = POINT(X3 - 1, Y3 + 9) THEN 1980 2440 PUT (X3, Y3), GOBLIN 2450 X3 = X3 - 8: DIR3 = 3 2460 IF X3 < 53 THEN X3 = 253 2470 PUT (X3, Y3), GOBLIN 2480 IF X3 = X AND Y3 = Y AND EAT = 0 THEN 3180 2490 IF X = X3 AND Y = Y3 AND EAT = 1 THEN GOSUB 3960 2500 GOTO 2000 2510 IF 3 = POINT(X1 + 15, Y1 + 1) OR 3 = POINT(X1 + 15, Y1 + 9) THEN 1960 2520 PUT (X1, Y1), GOBLIN 2530 X1 = X1 + 8: DIR1 = 2 2540 IF X1 > 267 THEN X1 = 53 2550 PUT (X1, Y1), GOBLIN 2560 IF X1 = X AND Y1 = Y AND EAT = 0 THEN 3180 2570 IF X = X1 AND Y = Y1 AND EAT = 1 THEN GOSUB 3800 2580 GOTO 2010 2590 IF 3 = POINT(X2 + 15, Y2 + 1) OR 3 = POINT(X2 + 15, Y2 + 9) THEN 1970 2600 PUT (X2, Y2), GOBLIN 2610 X2 = X2 + 8: DIR2 = 2 2620 IF X2 > 267 THEN X2 = 53 2630 PUT (X2, Y2), GOBLIN 2640 IF X2 = X AND Y2 = Y AND EAT = 0 THEN 3180 2650 IF X = X2 AND Y = Y2 AND EAT = 1 THEN GOSUB 3880 2660 GOTO 1990 2670 IF 3 = POINT(X3 + 15, Y3 + 1) OR 3 = POINT(X3 + 15, Y3 + 9) THEN 1980 2680 PUT (X3, Y3), GOBLIN 2690 X3 = X3 + 8: DIR3 = 2 2700 IF X3 > 267 THEN X3 = 53 2710 PUT (X3, Y3), GOBLIN 2720 IF X3 = X AND Y3 = Y AND EAT = 0 THEN 3180 2730 IF X = X3 AND Y = Y3 AND EAT = 1 THEN GOSUB 3960 2740 GOTO 2000 2750 IF 3 = POINT(X1 + 1, Y1 - 1) OR 3 = POINT(X1 + 11, Y1 - 1) THEN 1960 2760 PUT (X1, Y1), GOBLIN 2770 Y1 = Y1 - 6: DIR1 = 1 2780 PUT (X1, Y1), GOBLIN 2790 IF X1 = X AND Y1 = Y AND EAT = 0 THEN 3180 2800 IF X = X1 AND Y = Y1 AND EAT = 1 THEN GOSUB 3800 2810 IF X1 = 93 AND Y1 = 89 THEN R1 = 2: DIR1 = 3: GOTO 1990 2820 GOTO 2010 2830 IF 3 = POINT(X2 + 1, Y2 - 1) OR 3 = POINT(X2 + 11, Y2 - 1) THEN 1970 2840 PUT (X2, Y2), GOBLIN 2850 Y2 = Y2 - 6: DIR2 = 1 2860 PUT (X2, Y2), GOBLIN 2870 IF X2 = X AND Y2 = Y AND EAT = 0 THEN 3180 2880 IF X = X2 AND Y = Y2 AND EAT = 1 THEN GOSUB 3800 2890 IF X2 = 93 AND Y2 = 89 THEN R2 = 2: DIR2 = 3: GOTO 2000 2900 GOTO 1990 2910 IF 3 = POINT(X3 + 1, Y3 - 1) OR 3 = POINT(X3 + 11, Y3 - 1) THEN 1980 2920 PUT (X3, Y3), GOBLIN 2930 Y3 = Y3 - 6: DIR3 = 1 2940 PUT (X3, Y3), GOBLIN 2950 IF X3 = X AND Y3 = Y AND EAT = 0 THEN 3180 2960 IF X = X3 AND Y = Y3 AND EAT = 1 THEN GOSUB 3800 2970 IF X3 = 93 AND Y3 = 89 THEN R3 = 2: DIR3 = 3: GOTO 2010 2980 GOTO 2000 2990 STOP 3000 IF X = 53 AND Y = 23 THEN 3100 3010 IF X = 53 AND Y = 23 THEN 3100 3020 IF X = 253 AND Y = 23 THEN 3120 3030 IF X = 53 AND Y = 143 THEN 3140 3040 IF X = 253 AND Y = 143 THEN 3160 3050 PSET (X + 7, Y + 5), 1 3060 SCORE = SCORE + 10 3070 IF SCORE = 2600 * TIME THEN 4090 3080 LOCATE 1, 1: PRINT SCORE + ADD 3090 RETURN 3100 SCORE = SCORE + 50: PUT (57, 25), ENER 3110 GOTO 3540 3120 SCORE = SCORE + 50: PUT (257, 25), ENER 3130 GOTO 3540 3140 SCORE = SCORE + 50: PUT (57, 145), ENER 3150 GOTO 3540 3160 SCORE = SCORE + 50: PUT (257, 145), ENER 3170 GOTO 3540 3180 MEN = MEN: INCR = 0 3190 PUT (X, Y), PAC 3200 FOR pause = 1 TO 800: NEXT 3210 PUT (X1, Y1), GOBLIN 3220 FOR pause = 1 TO 800: NEXT 3230 PUT (X2, Y2), GOBLIN 3240 FOR pause = 1 TO 800: NEXT 3250 PUT (X3, Y3), GOBLIN 3260 FOR pause = 1 TO 800: NEXT 3270 X = 149: Y = 143: X1 = 133: Y1 = 95: X2 = 173: Y2 = 95: X3 = 173: Y3 = 83 3280 PUT (X, Y), PAC LOCATE 1, 1 PRINT "LIVES: "; MEN 3290 IF MEN = 0 THEN 3350 3300 IF MEN = 1 THEN PUT (((97 - 15) - 15), 191), SMPAC 3310 IF MEN = 2 THEN PUT ((97 - 15), 191), SMPAC 3320 IF MEN = 3 THEN PUT (97, 191), SMPAC 3324 IF MEN = 4 THEN PUT (112, 191), SMPAC '3326 IF MEN = 5 THEN PUT (112, 191), SMPAC 3330 a$ = "": B$ = "" 3340 GOTO 1930 3350 LOCATE 6, 17 3360 PRINT "G"; 3370 FOR pause = 1 TO 10000: NEXT 3380 PRINT "A"; 3390 FOR pause = 1 TO 10000: NEXT 3400 PRINT "M"; 3410 FOR pause = 1 TO 10000: NEXT 3420 PRINT "E"; 3430 FOR pause = 1 TO 10000: NEXT 3440 PRINT " "; 3450 FOR pause = 1 TO 10000: NEXT 3460 PRINT "O"; 3470 FOR pause = 1 TO 10000: NEXT 3480 PRINT "V"; 3490 FOR pause = 1 TO 10000: NEXT 3500 PRINT "E"; 3510 FOR pause = 1 TO 10000: NEXT 3520 PRINT "R"; 3530 SYSTEM 3540 PUT (X1, Y1), GOBLIN 3550 PUT (X2, Y2), GOBLIN 3560 PUT (X3, Y3), GOBLIN 3570 PUT (1, 180), GOBLIN 3580 LINE (4, 188)-(12, 188), 0 3590 GET (1, 180)-(15, 190), GOBLIN 3600 PUT (X1, Y1), GOBLIN 3610 PUT (X2, Y2), GOBLIN 3620 PUT (X3, Y3), GOBLIN 3630 PUT (1, 180), GOBLIN 3640 EAT = 1: INCR = 0 3650 LINE (133, 82)-(187, 82), 3 3660 GOTO 3080 3670 PUT (X1, Y1), GOBLIN 3680 PUT (X2, Y2), GOBLIN 3690 PUT (X3, Y3), GOBLIN 3700 PUT (1, 180), GOBLIN 3710 LINE (4, 188)-(12, 188), 2 3720 GET (1, 180)-(15, 190), GOBLIN 3730 PUT (X1, Y1), GOBLIN 3740 PUT (X2, Y2), GOBLIN 3750 PUT (X3, Y3), GOBLIN 3760 PUT (1, 180), GOBLIN 3770 EAT = 0: CHAN = 0: INCR = 0 3780 LINE (133, 82)-(187, 82), 0 3790 GOTO 3080 3800 INCR = INCR + 1 3810 IF INCR = 1 THEN ADD = ADD + 500: PUT (X1, Y1), GOBLIN: PUT (X1 + 10, Y1 - 5), NUM500: FOR pause = 1 TO 1000: NEXT: PUT (X1 + 10, Y1 - 5), NUM500 3820 IF INCR = 2 THEN ADD = ADD + 1000: PUT (X1, Y1), GOBLIN: PUT (X1 + 10, Y1 - 5), NUM1000: FOR pause = 1 TO 1000: NEXT: PUT (X1 + 10, Y1 - 5), NUM1000 3830 IF INCR = 3 THEN ADD = ADD + 1500: PUT (X1, Y1), GOBLIN: PUT (X1 + 10, Y1 - 5), NUM1500: FOR pause = 1 TO 1000: NEXT: PUT (X1 + 10, Y1 - 5), NUM1500 3840 X1 = 133: Y1 = 95 3850 LOCATE 1, 1: PRINT SCORE + ADD 3860 PUT (X1, Y1), GOBLIN 3870 RETURN 3880 INCR = INCR + 1 3890 IF INCR = 1 THEN ADD = ADD + 500: PUT (X2, Y2), GOBLIN: PUT (X2 + 10, Y2 - 5), NUM500: FOR pause = 1 TO 1000: NEXT: PUT (X2 + 10, Y2 - 5), NUM500 3900 IF INCR = 2 THEN ADD = ADD + 1000: PUT (X2, Y2), GOBLIN: PUT (X2 + 10, Y2 - 5), NUM1000: FOR pause = 1 TO 1000: NEXT: PUT (X2 + 10, Y2 - 5), NUM1000 3910 IF INCR = 3 THEN ADD = ADD + 1500: PUT (X2, Y2), GOBLIN: PUT (X2 + 10, Y2 - 5), NUM1500: FOR pause = 1 TO 1000: NEXT: PUT (X2 + 10, Y2 - 5), NUM1500 3920 X2 = 173: Y2 = 95 3930 LOCATE 1, 1: PRINT SCORE + ADD 3940 PUT (X2, Y2), GOBLIN 3950 RETURN 3960 INCR = INCR + 1 3970 IF INCR = 1 THEN ADD = ADD + 500: PUT (X3, Y3), GOBLIN: PUT (X3 + 10, Y3 - 5), NUM500: FOR pause = 1 TO 1000: NEXT: PUT (X3 + 10, Y3 - 5), NUM500 3980 IF INCR = 2 THEN ADD = ADD + 1000: PUT (X3, Y3), GOBLIN: PUT (X3 + 10, Y3 - 5), NUM1000: FOR pause = 1 TO 1000: NEXT: PUT (X3 + 10, Y3 - 5), NUM1000 3990 IF INCR = 3 THEN ADD = ADD + 1500: PUT (X3, Y3), GOBLIN: PUT (X3 + 10, Y3 - 5), NUM1500: FOR pause = 1 TO 1000: NEXT: PUT (X3 + 10, Y3 - 5), NUM1500 4000 X3 = 173: Y3 = 83 4010 LOCATE 1, 1: PRINT SCORE + ADD 4020 PUT (X3, Y3), GOBLIN 4030 RETURN 4040 IF MEN = 1 THEN PUT (52, 191), SMPAC 4050 IF MEN = 2 THEN PUT (67, 191), SMPAC 4060 IF MEN = 3 THEN PUT (82, 191), SMPAC 4070 INPRE = 0: MEN = MEN + 1 4080 GOTO 1320 4090 FOR pause = 1 TO 1000: NEXT 4100 PUT (X, Y), PAC 4110 PUT (X1, Y1), GOBLIN 4120 PUT (X2, Y2), GOBLIN 4130 PUT (X3, Y3), GOBLIN 4140 FOR H = 60 TO 260 STEP 8 4150 FOR V = 16 TO 58 STEP 6 4160 PSET (H, V) 4170 NEXT: NEXT 4180 FOR H = 60 TO 260 STEP 8 4190 FOR V = 130 TO 190 STEP 6 4200 PSET (H, V) 4210 NEXT: NEXT 4220 FOR V = 10 TO 160 STEP 6 4230 PSET (100, V) 4240 NEXT 4250 FOR V = 10 TO 160 STEP 6 4260 PSET (220, V) 4270 NEXT 4280 CIRCLE (60, 28), 2: PAINT (60, 27), 3, 3 4290 CIRCLE (260, 28), 2: PAINT (260, 27), 3, 3 4300 CIRCLE (60, 148), 2: PAINT (60, 147), 3, 3 4310 CIRCLE (260, 148), 2: PAINT (260, 147), 3, 3 4320 TIME = TIME + 1: SWITCH = INT(SWITCH * .9299999) 4330 X = 149: Y = 143: X1 = 133: Y1 = 95: X2 = 173: Y2 = 95: X3 = 173: Y3 = 83: SPEED = SPEED * .9 4340 LINE (156, 144)-(164, 150), 0, BF 4350 PUT (X, Y), PAC 4360 GOTO 1930 4370 UP = 0: CHER = 1 4380 PUT (X4, Y4), CHERRY 4390 RETURN 4400 UP = 0: CHER = 0: FRUIT = FRUIT + 1 4410 PUT (X4, Y4), CHERRY 4420 RETURN 4430 FRUIT = FRUIT + 1: CHER = 0: MOO = 1 4440 PUT (X4, Y4), CHERRY 4450 IF FRUIT = 1 THEN ADD = ADD + 100: PUT (150, 109), NUM100 4460 IF FRUIT = 2 THEN ADD = ADD + 300: PUT (150, 109), NUM300 4470 IF FRUIT = 3 OR FRUIT = 4 THEN ADD = ADD + 500: PUT (150, 109), NUM500 4480 IF FRUIT = 5 OR FRUIT = 6 THEN ADD = ADD + 700: PUT (150, 109), NUM700 4490 IF FRUIT = 7 OR FRIUT = 8 THEN ADD = ADD + 1000: PUT (146, 109), NUM1000 4500 IF FRUIT = 9 OR FRIUT = 10 THEN ADD = ADD + 2000: PUT (146, 109), NUM2000 4510 IF FRUIT = 11 OR FRUIT = 12 THEN ADD = ADD + 3000: PUT (146, 109), NUM3000 4520 IF FRUIT > 12 THEN ADD = ADD + 5000: PUT (146, 109), NUM5000 4530 LOCATE 1, 1: PRINT SCORE + ADD '4540 TIME$ = "00:00:00" 4550 RETURN 4560 MOO = 0 4570 IF FRUIT = 1 THEN PUT (150, 109), NUM100 4580 IF FRUIT = 2 THEN PUT (150, 109), NUM300 4590 IF FRUIT = 3 OR FRUIT = 4 THEN PUT (150, 109), NUM500 4600 IF FRUIT = 5 OR FRUIT = 6 THEN PUT (150, 109), NUM700 4610 IF FRUIT = 7 OR FRIUT = 8 THEN PUT (146, 109), NUM1000 4620 IF FRUIT = 9 OR FRIUT = 10 THEN PUT (146, 109), NUM2000 4630 IF FRUIT = 11 OR FRUIT = 12 THEN PUT (146, 109), NUM3000 4640 IF FRUIT > 12 THEN PUT (146, 109), NUM5000 4650 RETURN 4660 PLAY "T180 MN O3C4 C8 C B- O2G O3C4 ML L8E- MN E4. " 4670 PLAY " MN O3C4 C8 C B- O2G O3C4 ML L8B- MN B4. " 4680 PLAY " MN O3C4 C8 C B- O2G O3C4 ML L8E- MN EEF " 4690 PLAY " MN O3L4G- F L8E- C E4 ML C8 MN C4. " 4700 PRINT TAB(17); "PAC MAN" 9010 END