10 MODE 1:DEFINT a-z:SYMBOL AFTER 238
20 INK 0,9:INK 1,26:INK 2,0:INK 3,6:BORDER 9:PAPER 0 30 LOCATE 4,2:PEN 3:PRINT"PROFESSIONAL LAWNMOWER SIMULATER" 40 LOCATE 15,4:PRINT"by J.Dixon" 50 LOCATE 2,8:PEN 1:PRINT"Incorporating Cliff Lawson's Multimode" 60 LOCATE 15,15:PEN 3:PRINT"Please Wait 70 ' 80 MEMORY &9FFF: 7407 27 Z 13 61422 180 TO 990 STEP 10 100 csum=0:FOR byte=1 TO 8 110 READ a$:b=VAL("&"+a$) 120 csum=csum+b:POKE 3372 1025 1263 4084 :NEXT 130 READ sum:IF sum<>csum THEN 160 ELSE NEXT 140 CALL &A000:GOTO 1010 150 ' 160 PRINT"Cheksum error in line";lin:STOP 170 ' 180 DATA 21,07,a2,01,09,a0,c3,d1, 776 190 DATA bc,14,a0,c3,2a,a0,c3,b7, 1143 200 DATA a0,c3,d5,a0,4d,4f,44,45, 1021 210 DATA d3,4e,4f,52,4d,41,cc,49, 869 220 DATA 4e,4b,d3,00,21,17,a1,c3, 776 230 DATA 00,a1,fe,04,20,f6,cd,ca, 1104 240 DATA a0,21,01,a2,36,00,11,02, 429 250 DATA a2,01,05,00,ed,b0,06,06, 593 260 DATA 21,05,a2,dd,7e,00,77,2b, 709 270 DATA dd,23,dd,23,10,f5,3a,02, 833 280 DATA a2,32,01,a2,3a,05,a2,32, 650 290 DATA 06,a2,3e,c9,32,eb,bd,3e, 967 300 DATA 00,32,00,a2,06,14,cd,19, 468 310 DATA bd,10,fb,21,f7,a1,06,81, 1032 320 DATA 11,76,a0,c3,e0,bc,3a,00, 960 330 DATA a2,3c,fe,06,32,00,a2,20, 726 340 DATA 04,af,32,00,a2,f5,21,01, 670 350 DATA a2,16,00,5f,19,7e,cd,1c, 663 360 DATA bd,f1,cd,99,a0,cd,25,bd, 1379 370 DATA c9,fe,06,30,14,5f,cb,27, 866 380 DATA cb,27,cb,27,cb,27,83,21, 890 390 DATA 0b,a2,16,00,5f,19,e5,d1, 753 400 DATA c9,21,ab,a1,c3,00,a1,f5, 1167 410 DATA cd,ca,a0,f1,b7,20,05,3e, 1090 420 DATA 02,c3,0e,bc,dd,7e,00,c3, 941 430 DATA 0e,bc,3e,c3,32,eb,bd,21, 966 440 DATA f7,a1,c3,e6,bc,b7,28,22, 1278 450 DATA 47,cb,27,3d,dd,e5,e1,5f, 1144 460 DATA 16,00,19,2b,7e,e5,cd,99, 803 470 DATA a0,e1,05,2b,2b,7e,fe,1b, 883 480 DATA 30,04,cd,0a,a1,12,13,10, 481 490 DATA f2,c9,21,52,a1,c3,00,a1, 1075 500 DATA 7e,fe,24,c8,23,cd,5a,bb, 1133 510 DATA 18,f6,e5,d5,5f,16,00,21, 862 520 DATA 71,a2,19,7e,d1,e1,c9,0a, 1071 530 DATA 7c,4d,4f,44,45,53,2c,6d, 653 540 DATA 31,2c,6d,32,2c,6d,33,2c, 500 550 DATA 6d,34,0d,0a,0a,73,65,74, 526 560 DATA 73,20,74,68,65,20,6d,6f, 720 570 DATA 64,65,20,66,6f,72,20,34, 644 580 DATA 20,76,69,73,69,62,6c,65, 782 590 DATA 20,73,65,63,74,69,6f,6e, 789 600 DATA 73,24,0a,7c,49,4e,4b,53, 594 610 DATA 2c,73,2c,62,2c,69,30,2c, 542 620 DATA 2e,2e,2c,69,31,35,0d,0a, 366 630 DATA 0a,73,65,74,73,20,74,68, 709 640 DATA 65,20,62,6f,72,64,65,72, 771 650 DATA 20,28,62,29,20,61,6e,64, 550 660 DATA 20,69,6e,6b,73,20,28,69, 646 670 DATA 30,20,75,70,20,74,6f,0d, 581 680 DATA 0a,69,31,35,29,20,66,6f, 503 690 DATA 72,20,73,65,63,74,69,6f, 793 700 DATA 6e,20,73,20,28,30,2e,2e, 469 710 DATA 35,29,24,0a,41,72,65,20, 452 720 DATA 79,6f,75,20,73,75,72,65, 828 730 DATA 2c,20,6d,79,20,6d,75,6d, 673 740 DATA 20,61,6c,77,61,79,73,20, 721 750 DATA 74,6f,6c,64,20,6d,65,0d, 690 760 DATA 0a,74,68,61,74,20,73,65, 691 770 DATA 63,74,69,6f,6e,20,6e,75, 800 780 DATA 6d,62,65,72,73,20,77,65, 789 790 DATA 72,65,20,66,72,6f,6d,20, 715 800 DATA 30,20,74,6f,20,35,24,00, 428 810 DATA 00,00,00,00,00,00,00,00, 0 820 DATA 01,00,00,00,00,00,00,00, 1 830 DATA 00,00,00,0c,14,12,0c,15, 83 840 DATA 00,02,03,04,05,06,07,0a, 37 850 DATA 0b,0c,0d,0e,0e,14,12,0c, 114 860 DATA 15,00,02,03,04,05,06,07, 48 870 DATA 0a,0b,0c,0d,0e,0a,14,12, 108 880 DATA 0c,15,00,02,03,04,05,06, 53 890 DATA 07,0a,0b,0c,0d,0e,12,14, 105 900 DATA 12,0c,15,00,02,03,04,05, 65 910 DATA 06,07,0a,0b,0c,0d,0e,15, 94 920 DATA 14,12,0c,15,00,02,03,04, 80 930 DATA 05,06,07,0a,0b,0c,0d,0e, 78 940 DATA 0d,14,12,0c,15,00,02,03, 89 950 DATA 04,05,06,07,0a,0b,0c,0d, 68 960 DATA 0e,14,04,15,1c,18,1d,0c, 152 970 DATA 05,0d,16,06,17,1e,00,1f, 130 980 DATA 0e,07,0f,12,02,13,1a,19, 126 990 DATA 1b,0a,03,0b,00,00,00,00, 51 1000 ' 1010 ON BREAK GOSUB 3090 1020 DIM b(40,25) 1030 GOSUB 1810 1040 ENV 1,5,-3,30 1050 GOSUB 2890 1060 WINDOW #1,1,33,1,3:CLS #1 1070 WINDOW #2,34,40,1,2:CLS #2 1080 WINDOW #3,1,40,3,25:CLS #3 1090 FOR y=1 TO 25:FOR x=1 TO 40:b(x,y)=0:NEXT:NEXT 1100 RESTORE 1810 1110 —MODES,1,1,1,1:PAPER 1 1120 FOR i=0 TO 5:—INKS,i,9:NEXT 1130 —INKS,1,99,9,26,3,20 1140 —INKS,2,99,9,26,3,20 1150 —INKS,3,99,9,26,17,2 1160 —INKS,4,99,9,26,6,24 1170 GOSUB 2080 1180 x=24:y=15:d=1:z=521 1190 EVERY 300 GOSUB 1730 1200 EVERY 5,1 GOSUB 1790 1210 REM ***** MAIN LOOP 1220 EI 1230 LOCATE x,y:PEN 0:PRINT CHR$(22)CHR$(0)CHR$(207):IF b(x,y)=0 THEN z=z-1 1240 b(x,y)=1 1250 IF z=0 THEN g=g+1:DI:GOTO 1600 1260 IF d=1 THEN x=x+1:m$=CHR$(251) 1270 IF d=2 THEN x=x-1:m$=CHR$(252) 1280 IF d=3 THEN y=y-1:m$=CHR$(249) 1290 IF d=4 THEN y=y+1:m$=CHR$(250) 1300 IF b(x,y)<2 THEN 1510 1310 p=1:q=1 1320 re=REMAIN(0):re=REMAIN(1) 1330 SOUND 2,302,150,1,1,0,5 1340 IF b(x,y)=2 THEN g$="wall":c=20 1350 IF b(x,y)=3 THEN g$="path":c=10 1360 IF b(x,y)=4 THEN g$="flower bed":c=5 1370 IF b(x,y)=5 THEN g$="bushes":c=5 1380 IF b(x,y)=6 THEN g$="fence":c=15 1390 IF b(x,y)=7 THEN g$="greenhouse":c=30 1400 IF b(x,y)=8 THEN g$="swing":c=15 1410 IF b(x,y)=9 THEN g$="umbrella":c=10 1420 IF b(x,y)=10 THEN g$="chair":c=5 1430 IF b(x,y)=11 THEN g$="birdbath":c=10 1440 PEN #1,1:PRINT #1,"You hit the "g$ 1450 LOCATE #1,1,2:PRINT #1,"Repair the damage and mend mower 1460 LOCATE #1,1,3:PRINT #1,"Lose"c"minutes 1470 IF d=1 THEN x=x-1 1480 IF d=2 THEN x=x+1 1490 IF d=3 THEN y=y+1 1500 IF d=4 THEN y=y-1 1510 LOCATE x,y:PEN 1:PRINT CHR$(22)CHR$(1)m$:FOR i=1 TO 100:NEXT 1520 IF p=1 THEN m=m+c:GOSUB 1740 1530 IF INKEY(27)=0 THEN p=0:d=1 1540 IF INKEY(34)=0 THEN p=0:d=2 1550 IF INKEY(69)=0 THEN p=0:d=3 1560 IF INKEY(71)=0 THEN p=0:d=4 1570 IF p=1 THEN 1530 1580 IF q=1 THEN q=0:GOTO 1190 1590 GOTO 1220 1600 REM ***** PLAY AGAIN 1610 re=REMAIN(0):re=REMAIN(1) 1620 FOR i=1 TO 1500:NEXT 1630 CLS #1:CLS #2:CLS #3 1640 —NORMAL,1 1650 PRINT CHR$(22)CHR$(1) 1660 IF h<2 THEN LOCATE 7,9:PEN 2:PRINT"Well Done! You get your swim" ELSE LOCATE 5,9:PEN 2:PRINT"Sorry, lunch is ready - no swim" 1670 CALL &BB03 1680 LOCATE 13,18:PRINT"Play again (y/n)" 1690 IF INKEY(43)=0 THEN 1060 1700 IF INKEY(46)=0 THEN END 1710 GOTO 1690 1720 REM ***** UPDATE SCORE 1730 m=m+1 1740 IF m>59 THEN h=h+1:m=m-60 1750 CLS #2 1760 PEN #2,2:PRINT #2,h; USING"###";m 1770 IF p=1 THEN FOR i=1 TO 2500:NEXT:CLS#1 1780 RETURN 1790 SOUND 1,3800,10,5,0,0,21:RETURN 1800 REM ***** GRAPHICS DATA 1810 SYMBOL 238,3,7,15,31,15,31,13,29 1820 SYMBOL 239,224,248,240,252,248,240,176,216 1830 SYMBOL 240,255,129,129,129,129,129,129,255 1840 SYMBOL 241,126,247,221,255,187,247,221,110 1850 SYMBOL 242,223,223,0,251,251,0,223,223 1860 SYMBOL 243,0,3,15,31,63,127,255,255 1870 SYMBOL 244,0,192,240,248,252,254,255,255 1880 SYMBOL 246,219,219,195,219,219,24,219,219 1890 SYMBOL 247,3,1,1,1,1,1,2,0 1900 SYMBOL 248,128,128,128,128,128,128,192,0 1910 SYMBOL 249,62,127,62,8,8,8,8,62 1920 SYMBOL 250,62,8,8,8,8,62,127,62 1930 SYMBOL 251,2,135,135,255,135,135,2,0 1940 SYMBOL 252,64,225,225,225,225,225,64,0 1950 SYMBOL 253,0,34,85,136,136,136,136,255 1960 SYMBOL 254,8,8,8,8,8,8,8,8 1970 SYMBOL 255,16,16,16,16,16,16,16,16 1980 h$=CHR$(238)+CHR$(239) 1990 t$=CHR$(247)+CHR$(248) 2000 r$=CHR$(253):f$=CHR$(208) 2010 j$=CHR$(209):k$=CHR$(210) 2020 p$=CHR$(211) 2030 u$=CHR$(243)+CHR$(143)+CHR$(244) 2040 c$=CHR$(150)+CHR$(8)+j$ 2050 d$=p$+CHR$(8)+CHR$(156):RETURN 2060 REM ***** SET UP SCREEN 2070 REM ***** Wall 2080 PRINT CHR$(22)CHR$(0) 2090 y=25:FOR x=40 TO 1 STEP -1:GOSUB 2770:NEXT 2100 y=20:FOR x=31 TO 39:GOSUB 2770:NEXT 2110 x=1:FOR y=20 TO 24:GOSUB 2760:NEXT 2120 x=40:FOR y=20 TO 24:GOSUB 2760:NEXT 2130 x=14:FOR y=20 TO 24:GOSUB 2760:NEXT 2140 REM ***** Pool 2150 x=40:FOR y=5 TO 12:GOSUB 2790:NEXT 2160 y=6:FOR x=30 TO 39:GOSUB 2790:NEXT 2170 FOR y=7 TO 10:FOR x=26 TO 30:GOSUB 2790:NEXT:NEXT 2180 y=11:FOR x=30 TO 39:GOSUB 2790:NEXT 2190 FOR y=7 TO 10:LOCATE 31,y:PEN 3:PRINT STRING$(9,CHR$(143)):NEXT 2200 REM ***** Bushes 2210 PRINT CHR$(22)CHR$(1) 2220 FOR x=9 TO 12:b(x,7)=5:NEXT:LOCATE 9,7:PEN 2:PRINT h$h$ 2230 FOR x=7 TO 12:b(x,8)=5:NEXT:LOCATE 7,8:PRINT h$t$t$ 2240 FOR x=7 TO 8:b(x,9)=5:NEXT:LOCATE 7,9:PRINT t$ 2250 FOR y=5 TO 12:LOCATE 1,y:PRINT h$:b(2,y)=5:NEXT 2260 REM ***** Swing 2270 FOR x=16 TO 17:FOR y=9 TO 11:b(x,y)=8:NEXT:NEXT 2280 LOCATE 16,9:PRINT f$f$ 2290 FOR y=9 TO 11:LOCATE 16,y:PRINT p$j$:NEXT 2300 LOCATE 16,11:PRINT CHR$(130)CHR$(129) 2310 FOR y=9 TO 10:LOCATE 16,y:PEN 1:PRINT CHR$(254)CHR$(255):NEXT 2320 REM ***** Greenhouse 2330 FOR x=17 TO 22:FOR y=21 TO 23:b(x,y)=7:NEXT:NEXT 2340 LOCATE 17,21:PEN 1:PRINT CHR$(204)CHR$(205) 2350 LOCATE 18,21:PRINT STRING$(4,f$)CHR$(205) 2360 LOCATE 17,21:PRINT STRING$(6,k$) 2370 LOCATE 18,21:PRINT STRING$(5,r$) 2380 FOR y=22 TO 23:LOCATE 17,y:PRINT p$j$:NEXT 2390 FOR y=22 TO 23:LOCATE 22,y:PRINT j$:NEXT 2400 LOCATE 17,23:PRINT STRING$(6,k$) 2410 FOR y=22 TO 23:LOCATE 17,y:PRINT CHR$(157)CHR$(151)STRING$(4,r$):NEXT 2420 REM ***** Fence 2430 y=4:FOR x=1 TO 40:GOSUB 2800:NEXT 2440 y=13:FOR x=1 TO 14:GOSUB 2800:NEXT 2450 y=17:FOR x=14 TO 25:GOSUB 2800:NEXT 2460 REM ***** Birdbath 2470 LOCATE 21,14:PRINT CHR$(245):b(21,14)=11 2480 LOCATE 21,15:PRINT CHR$(155):b(21,15)=11 2490 REM ***** Flowers 2500 w=1:FOR i=1 TO 20:GOSUB 2810:NEXT 2510 y=14:FOR x=1 TO 13 STEP 2:GOSUB 2820:NEXT 2520 w=2:FOR i=21 TO 25:GOSUB 2810:NEXT 2530 y=14:FOR x=2 TO 14 STEP 2:GOSUB 2820:NEXT 2540 y=18:FOR x=14 TO 25:GOSUB 2820:NEXT 2550 x=40:FOR y=13 TO 19:GOSUB 2820:NEXT 2560 w=3:FOR i=26 TO 37:GOSUB 2810:NEXT 2570 REM ***** Umbrellas and Chairs 2580 FOR x=33 TO 35:b(x,14)=9:NEXT:LOCATE 33,14:PEN 3:PRINT u$ 2590 LOCATE 32,16:PRINT d$:b(32,16)=10:LOCATE 37,16:PRINT c$:b(37,16)=10 2600 LOCATE 7,16:PRINT d$:b(7,16)=10:LOCATE 8,18:PRINT d$:b(8,18)=10:LOCATE 9,17:PRINT c$:b(9,17)=10 2610 LOCATE 9,22:PRINT c$:b(9,22)=10:LOCATE 7,23:PRINT c$:b(7,23)=10 2620 FOR x=4 TO 6:b(x,21)=9:NEXT:LOCATE 4,21:PRINT u$ 2630 FOR y=15 TO 16:LOCATE 34,y:PEN 1:PRINT CHR$(149):b(34,y)=9:NEXT 2640 FOR x=33 TO 35:b(x,16)=9:NEXT:LOCATE 33,16:PRINT STRING$(3,f$) 2650 LOCATE 34,16:PRINT k$ 2660 FOR y=22 TO 23:LOCATE 5,y:PRINT CHR$(149):b(5,y)=9:NEXT 2670 FOR x=4 TO 6:b(x,23)=9:NEXT:LOCATE 4,23:PRINT STRING$(3,f$) 2680 LOCATE 5,23:PRINT k$ 2690 REM ***** Scoreboard 2700 IF h=j AND m<k THEN j=j:k=m 2710 IF g<2 OR h<i THEN j=h:k=m 2720 h=0:m=0 2730 PEN #2,2:PRINT #2,h; USING"###";m 2740 LOCATE 34,3:PEN 1:PRINT j; USING"###";k 2750 LOCATE 24,15:PRINT CHR$(251):RETURN 2760 LOCATE x,y:PRINT CHR$(246):GOTO 2780 2770 LOCATE x,y:PEN 2:PRINT CHR$(242); 2780 b(x,y)=2:RETURN 2790 LOCATE x,y:PEN 2:PRINT CHR$(240):b(x,y)=3:RETURN 2800 LOCATE x,y:PRINT r$:b(x,y)=6:RETURN 2810 READ x,y 2820 LOCATE x,y:PEN w:PRINT CHR$(241):b(x,y)=4:RETURN 2830 DATA 21,7,22,7,23,7,24,7,25,7,21,8,21,9,21,10 2840 DATA 26,14,27,14,28,14,29,14,30,14,30,13,30,12 2850 DATA 2,15,1,16,1,18,28,23,29,23 2860 DATA 1,15,3,15,2,16,1,17,1,19 2870 DATA 28,22,29,22,27,23,30,23,28,24,29,24 2880 DATA 37,21,38,21,39,21,38,22,39,22,39,23 2890 REM ***** INSTRUCTIONS 2900 CLS:—NORMAL,1 2910 LOCATE 4,1:PEN 3:PRINT"PROFESSIONAL LAWNMOWER SIMULATER" 2920 LOCATE 15,4:PEN 2:PRINT"Instructions 2930 LOCATE 1,6:PRINT"It's a lovely Sunday morning and you arelonging for a swim in your new pool before lunch. 2940 PRINT:PRINT"However, having paid for the pool you cannot afford a gardener so must mow your lawn first. 2950 PRINT:PRINT"Luckily you have a motor mower so you don't have to push it, only guide it, sobe careful it doesn't run away with you.You lose time if you hit any obstacles. 2960 PRINT:PRINT"If you complete the job within 2 hours you get your swim. 2970 LOCATE 15,24:PRINT"PRESS A KEY 2980 a$=INKEY$:IF a$="" THEN 2980 2990 CLS:LOCATE 1,1:PRINT"Use keys:- 3000 LOCATE 17,3:PRINT"a - up 3010 LOCATE 17,5:PRINT"z - down 3020 LOCATE 17,7:PRINT"o - left 3030 LOCATE 17,9:PRINT"p - right 3040 LOCATE 1,12:PRINT"The mower stops itself when all the grass is cut. If you think you've finished and the mower knows you haven'tyou must look for the tricky bits you'vemissed. 3050 PRINT:PRINT"Your time is shown top right with the time to beat underneath. 3060 LOCATE 11,23:PRINT"PRESS A KEY TO START 3070 a$=INKEY$:IF a$="" THEN 3070 3080 RETURN 3090 PEN 2:PAPER 0 3100 —NORMAL,1:END |