10 MODE5 20 VDU 5 30 DIM M$(21) 40 PROCsetup 50 SA=6:SB=10:LA=418:LB=525:C=5:D=5 60 DI=1:S1=0:S2=0:S3=0:S4=0 70 IF C=5 AND D=5 THEN GOSUB 700 80 IF C=5 AND D=6 THEN GOSUB 910 90 IF C=6 AND D=5 THEN GOSUB 1030 100 IF C=6 AND D=6 THEN GOSUB 1240 110 IF C=4 AND D=5 THEN GOSUB 1360 120 IF C=4 AND D=6 THEN GOSUB 1570 130 IF C=3 AND D=5 THEN GOSUB 1690 140 IF C=3 AND D=6 THEN GOSUB 1900 150 IF C=3 AND D=4 THEN GOSUB 2020 160 IF C=4 AND D=4 THEN GOSUB 2230 170 IF C=5 AND D=4 THEN GOSUB 2440 180 IF C=6 AND D=4 THEN GOSUB 2650 190 PROCdraw 200 PROCdrawyou 210 A$=INKEY$(0) 220 *FX 15,1 230 IF A$="X" AND SB=20 THEN SB=1:LB=LB+(19*25):LA=LA-(19*50):D=D+1:GOTO 70 240 IF A$="X" AND MID$(M$(SB+1),SA,1)="S" THEN PROCdrawyou:DI=1:SB=SB+1:LA=LA+50:LB=LB-25:PROCdrawyou:PROCcollect 250 IF A$="X" AND MID$(M$(SB+1),SA,1)="O" THEN PROCdrawyou:DI=1:SB=SB+1:LA=LA+50:LB=LB-25:PROCdrawyou 260 IF A$="A" AND SB=1 THEN SB=20:LB=LB-(19*25):LA=LA+(19*50):D=D-1:GOTO 70 270 IF A$="A" AND MID$(M$(SB-1),SA,1)="S" THEN PROCdrawyou:DI=0:SB=SB-1:LA=LA-50:LB=LB+25:PROCdrawyou:PROCcollect 280 IF A$="A" AND MID$(M$(SB-1),SA,1)="O" THEN PROCdrawyou:DI=0:SB=SB-1:LA=LA-50:LB=LB+25:PROCdrawyou 290 IF A$=":" AND SA=15 THEN SA=1:LB=LB-(14*25):LA=LA-(14*50):C=C+1:GOTO 70 300 IF A$=":" AND MID$(M$(SB),SA+1,1)="S" THEN PROCdrawyou:DI=0:SA=SA+1:LA=LA+50:LB=LB+25:PROCdrawyou:PROCcollect 310 IF A$=":" AND MID$(M$(SB),SA+1,1)="O" THEN PROCdrawyou:DI=0:SA=SA+1:LA=LA+50:LB=LB+25:PROCdrawyou 320 IF A$="." AND SA=1 THEN SA=15:LB=LB+(14*25):LA=LA+(14*50):C=C-1:GOTO 70 330 IF A$="." AND MID$(M$(SB),SA-1,1)="S" THEN PROCdrawyou:DI=2:SA=SA-1:LA=LA-50:LB=LB-25:PROCdrawyou:PROCcollect 340 IF A$="." AND MID$(M$(SB),SA-1,1)="O" THEN PROCdrawyou:DI=2:SA=SA-1:LA=LA-50:LB=LB-25:PROCdrawyou 350 GOTO 210 360 DEFPROCdraw 370 CLS 380 FOR B%=1 TO 20:FOR A%=1 TO 15 390 IF MID$(M$(B%),A%,1)=" " THEN GOTO 490 400 X%=(A%*50)-350+(B%*50) 410 Y%=550-(B%*25)+(A%*25) 420 IF A%=1 THEN GOTO 440 430 IF MID$(M$(B%),A%-1,1)="O" THEN GCOL 0,2:MOVE X%,Y%:DRAW X%,Y%-20:PLOT 85,X%+50,Y%+25:PLOT 85,X%+50,Y%+5:GOTO 450 440 GCOL 0,2:MOVE X%-50,Y%+25:DRAW X%-50,Y%+5:PLOT 85,X%,Y%:PLOT 85,X%,Y%-20 450 PLOT 85,X%+50,Y%+25:PLOT 85,X%+50,Y%+5 460 IF MID$(M$(B%),A%,1)="S" THEN GCOL 0,2 ELSE GCOL 0,1 470 MOVE X%,Y%:DRAW X%-50,Y%+25 480 PLOT 85,X%+50,Y%+25:PLOT 85,X%,Y%+50 490 NEXT:NEXT 500 ENDPROC 510 DEFPROCsetup 520 VDU 19,2,7,0,0,0 530 VDU 19,3,7,0,0,0 540 VDU 23,130,24,60,126,126,126,255,255,255 550 VDU 23,131,255,255,255,126,126,126,60,24 552 VDU 23,132,24,60,126,126,126,255,245,255 554 VDU 23,133,255,245,251,126,126,126,60,24 556 VDU 23,134,24,60,126,126,126,255,175,255 558 VDU 23,135,255,175,223,126,126,126,60,24 560 ENVELOPE 1,1,0,0,0,1,1,1,100,-8,-3,-3,100,30 570 ENDPROC 580 DEFPROCdrawyou 590 GCOL 4,0 600 IF DI=0 THEN MOVE LA,LB:VDU 130:MOVE LA,LB-32:VDU 131 610 IF DI=1 THEN MOVE LA,LB:VDU 132:MOVE LA,LB-32:VDU 133 615 IF DI=2 THEN MOVE LA,LB:VDU 134:MOVE LA,LB-32:VDU 135 620 ENDPROC 630 DEFPROCcollect 640 IF C=6 AND D=6 AND S1=0 THEN S1=1:SOUND 1,1,50,10 650 IF C=3 AND D=6 AND S2=0 THEN S2=1:SOUND 1,1,50,10 660 IF C=3 AND D=4 AND S3=0 THEN S3=1:SOUND 1,1,50,10 670 IF C=6 AND D=4 AND S4=0 THEN S4=1:SOUND 1,1,50,10 680 IF S1=1 AND S2=1 AND S3=1 AND S4=1 THEN VDU 4:CLS:PRINT"Well Done!!":END 690 ENDPROC 700 M$(1)=" O " 710 M$(2)=" O O " 720 M$(3)=" O O " 730 M$(4)=" O O " 740 M$(5)=" O O " 750 M$(6)=" OOOOOOO O " 760 M$(7)="OOOO O O " 770 M$(8)=" O O O " 780 M$(9)=" O OOOO " 790 M$(10)=" O O O " 800 M$(11)=" O O O OO" 810 M$(12)=" OOOO O O " 820 M$(13)=" OOOOOO O OO" 830 M$(14)=" O OOOOOOO " 840 M$(15)="OO OOOO O OOO" 850 M$(16)=" O O O O " 860 M$(17)=" O O O O " 870 M$(18)=" OOOOOO OOOO " 880 M$(19)=" O " 890 M$(20)=" O O " 900 RETURN 910 M$(1)=" O O " 920 M$(2)=" O OOOOOO " 930 M$(3)=" OO O O " 940 M$(4)=" OO O OO O " 950 M$(5)=" OO O OO O " 960 M$(6)=" O O OOOO " 970 M$(7)=" O O O OO " 980 M$(8)="OOOOOOOOO O OO " 990 M$(9)=" O " 1000 M$(10)=" OOOOOO" 1010 FOR A=11 TO 20:M$(A)=" ":NEXT 1020 RETURN 1030 M$(1)=" O " 1040 M$(2)=" O " 1050 M$(3)=" O OO " 1060 M$(4)=" O OOO " 1070 M$(5)=" OOO OOO O " 1080 M$(6)=" O O O " 1090 M$(7)=" O O O " 1100 M$(8)=" OOOOOOOOO O " 1110 M$(9)=" O OOO " 1120 M$(10)=" O OOOOOO " 1130 M$(11)="OO O O " 1140 M$(12)=" O O " 1150 M$(13)="OOOOOOOOO OOO " 1160 M$(14)=" O O O " 1170 M$(15)="OOOO OO O O " 1180 M$(16)=" O OOOOO " 1190 M$(17)=" OOOOOO O " 1200 M$(18)=" O OOO " 1210 M$(19)=" OOOOOOOOO " 1220 M$(20)=" O " 1230 RETURN 1240 M$(1)=" O " 1250 M$(2)=" O O " 1260 M$(3)=" OOOOOOOO " 1270 M$(4)=" OOO O " 1280 M$(5)=" O O O O " 1290 M$(6)=" OOOO OOOOOO O " 1300 M$(7)=" O O O O " 1310 M$(8)=" OO OOOOOS OOO " 1320 M$(9)=" O O " 1330 M$(10)="OOOOOOOOOOOO " 1340 FOR A=11 TO 20:M$(A)=" ":NEXT 1350 RETURN 1360 M$(1)=" O O " 1370 M$(2)=" O O " 1380 M$(3)=" O O " 1390 M$(4)=" OOOOOOOOOO " 1400 M$(5)=" O OO O " 1410 M$(6)=" O OO O " 1420 M$(7)=" O OO OOO" 1430 M$(8)=" O OO O " 1440 M$(9)=" O OOOO O " 1450 M$(10)="OOOOOOO OOOO " 1460 M$(11)=" OOOO OOOO " 1470 M$(12)=" O OOOO O " 1480 M$(13)=" O OO O " 1490 M$(14)=" OOO OO O " 1500 M$(15)=" O O OO OOO" 1510 M$(16)="OO O OO O " 1520 M$(17)=" OOOOOOOOOO " 1530 M$(18)=" O O " 1540 M$(19)=" O O " 1550 M$(20)=" O O " 1560 RETURN 1570 M$(1)=" O O " 1580 M$(2)=" OO OO " 1590 M$(3)=" OOO " 1600 M$(4)=" O O OO " 1610 M$(5)=" O O O O " 1620 M$(6)=" OOOOOO O " 1630 M$(7)=" O O O O " 1640 M$(8)=" O O O OOOOO" 1650 M$(9)=" O O O " 1660 M$(10)="OOOOO OOOOOO " 1670 FOR A=11 TO 20:M$(A)=" ":NEXT 1680 RETURN 1690 M$(1)=" O " 1700 M$(2)=" O " 1710 M$(3)=" OOOOOOOOO " 1720 M$(4)=" O O O O O " 1730 M$(5)=" OOOOOOOOO " 1740 M$(6)=" O O O O O " 1750 M$(7)=" OOOOOOOOO " 1760 M$(8)=" O O O O O " 1770 M$(9)=" OOOOOOOOO " 1780 M$(10)=" O O O O OO" 1790 M$(11)=" OOOOOOOOO " 1800 M$(12)=" O O O O O " 1810 M$(13)=" OOOOOOOOO " 1820 M$(14)=" O O O O O " 1830 M$(15)=" OOOOOOOOO " 1840 M$(16)=" O O O O OO" 1850 M$(17)=" OOOOOOOOO " 1860 M$(18)=" O O O O " 1870 M$(19)=" OOOOOOO " 1880 M$(20)=" O " 1890 RETURN 1900 M$(1)=" O " 1910 M$(2)=" O " 1920 M$(3)=" OOOOOOOOO " 1930 M$(4)=" O O O " 1940 M$(5)=" O O O " 1950 M$(6)=" OOOOO OOO " 1960 M$(7)=" O O O O " 1970 M$(8)=" O O OOO " 1980 M$(9)=" O O " 1990 M$(10)=" S OOOOOOOO" 2000 FOR A=11 TO 20:M$(A)=" ":NEXT 2010 RETURN 2020 M$(1)=" " 2030 M$(2)=" OOOO SO " 2040 M$(3)=" O O " 2050 M$(4)=" OOOOO O " 2060 M$(5)=" O OOO " 2070 M$(6)=" OOOO O " 2080 M$(7)=" O OO" 2090 M$(8)=" O OOOOO " 2100 M$(9)=" O O O " 2110 M$(10)=" OOO O O " 2120 M$(11)=" O OOO OO" 2130 M$(12)=" O O " 2140 M$(13)=" OOO O " 2150 M$(14)=" O OOOO " 2160 M$(15)=" O O O " 2170 M$(16)=" OO O OOO" 2180 M$(17)=" O O " 2190 M$(18)=" OOOOO " 2200 M$(19)=" O " 2210 M$(20)=" O " 2220 RETURN 2230 M$(1)=" " 2240 M$(2)=" OOO O " 2250 M$(3)=" OOO O O " 2260 M$(4)=" O O OOO " 2270 M$(5)=" O O O O " 2280 M$(6)=" OOO O O O " 2290 M$(7)="OO O O OOOO O " 2300 M$(8)=" OOOO O O O " 2310 M$(9)=" O O O OO" 2320 M$(10)=" OO O O O O " 2330 M$(11)="OO OOO OOO O " 2340 M$(12)=" OOO O O O " 2350 M$(13)=" O O O " 2360 M$(14)=" OO OO O O " 2370 M$(15)=" O O OOO OO" 2380 M$(16)="OO O OOO O O " 2390 M$(17)=" O O O OOO OOO " 2400 M$(18)=" OOO O O O " 2410 M$(19)=" OO OOO " 2420 M$(20)=" O O " 2430 RETURN 2440 M$(1)=" " 2450 M$(2)=" OOOO " 2460 M$(3)=" O O " 2470 M$(4)=" OO O " 2480 M$(5)=" OOOOOO O O " 2490 M$(6)=" O O O OO" 2500 M$(7)=" O O O OO" 2510 M$(8)=" OOO O OO " 2520 M$(9)="OOO O O O O O" 2530 M$(10)=" O OOOO OOO" 2540 M$(11)=" O O O " 2550 M$(12)=" OOOOO OOOOOO" 2560 M$(13)=" O O " 2570 M$(14)=" OOO O " 2580 M$(15)="OO OO OOOOOO O" 2590 M$(16)=" O O O O" 2600 M$(17)=" O O O " 2610 M$(18)=" OOOOOO " 2620 M$(19)=" O " 2630 M$(20)=" O " 2640 RETURN 2650 M$(1)=" " 2660 M$(2)=" OOOOOOOS " 2670 M$(3)=" O " 2680 M$(4)=" O OOOOO " 2690 M$(5)=" O OOO O " 2700 M$(6)="OOOOOOO O O " 2710 M$(7)="O O OO " 2720 M$(8)=" OOOOOOOOOO O " 2730 M$(9)="OO OO O " 2740 M$(10)="O OOO OOOOO " 2750 M$(11)=" O O OOOO " 2760 M$(12)="OOO O O O OOO " 2770 M$(13)=" O OOO OOO O " 2780 M$(14)=" O O O " 2790 M$(15)="O OO O OOO O " 2800 M$(16)="O OOOO O OOO " 2810 M$(17)=" O O OO " 2820 M$(18)=" OOOOOO " 2830 M$(19)=" O " 2840 RETURN