100 POKE53280,.:POKE53281,. 180 PRINT CHR$(142)"[147]";TAB(11);"[158]***  CONUNDRUM [146] ***" 190 PRINT "";TAB(19);"BY" 200 PRINT "";TAB(12);"RICHARD F. DALEY" 210 PRINT TAB(18);"AND" 220 PRINT TAB(13);"SALLY J. DALEY" 230 GN$=" [146][157][157][157][157][157] [146][157][157][157][157][157]  [157][157][157][157][157] [146][157][157][157][157][157] [146][145][145][145][145]" 240 RD$=" [146][157][157][157][157][157] [146][157][157][157][157][157]  [157][157][157][157][157] [146][157][157][157][157][157] [146][145][145][145][145]" 250 RT$="": DN$="" 260 PRINT " PRESS RETURN[146] TO BEGIN" 270 GET KB$: IF KB$<>CHR$(13) THEN 270 280 DIM SQ(9),RV(9) 290 PRINT "[147]": POKE 53280,0: POKE 53281,0 300 GOSUB 920: FOR CT=1 TO 9: SQ(CT)=0: IF RND(TI)>.65 THEN SQ(CT)=1 310 NEXT CT 320 REM 330 REM *** MAIN LOOP *** 340 REM 350 GOSUB 1020: PRINT 360 WN=0: GOSUB 580: IF WN<>0 THEN 650 370 PRINT "[159]WHICH ONE TO REVERSE? [157][157][157][157][157]";: GOSUB 790 375 IFKB$="Q"ORKB$="[209]"THEN740 380 IF VAL(KB$)<1 OR VAL(KB$)>9 THEN PRINT "[145][145]": GOTO 370 390 IF SQ(VAL(KB$))=1 THEN SQ(VAL(KB$))=0: GOTO 410 400 SQ(VAL(KB$))=1 410 ON VAL(KB$) GOTO 430,440,450,460,470,480,490,500,510 420 GOTO 350 430 T=3: RV(1)=2: RV(2)=4: RV(3)=5: GOTO 520: REM SQUARE 1 440 T=2: RV(1)=1: RV(2)=3: GOTO 520: REM SQUARE 2 450 T=3: RV(1)=2: RV(2)=5: RV(3)=6: GOTO 520: REM SQUARE 3 460 T=2: RV(1)=1: RV(2)=7: GOTO 520: REM SQUARE 4 470 T=4: RV(1)=2: RV(2)=4: RV(3)=6: RV(4)=8: GOTO 520: REM SQUARE 5 480 T=2: RV(1)=3: RV(2)=9: GOTO 520: REM SQUARE 6 490 T=3: RV(1)=4: RV(2)=5: RV(3)=8: GOTO 520: REM SQUARE 7 500 T=2: RV(1)=7: RV(2)=9: GOTO 520: REM SQUARE 8 510 T=3: RV(1)=8: RV(2)=5: RV(3)=6: REM SQUARE 9 520 FOR CT=1 TO T: IF SQ(RV(CT))=1 THEN SQ(RV(CT))=0: GOTO 540 530 SQ(RV(CT))=1 540 NEXT CT: GOTO 350 550 REM 560 REM *** CHECK FOR WIN *** 570 REM 580 FOR CT=1 TO 9: IF SQ(CT)=1 THEN WN=WN+1 590 NEXT CT: IF WN=8 AND SQ(5)=0 THEN WN=1: RETURN 600 IF WN=0 THEN WN=-1: RETURN 610 WN=0: RETURN 620 REM 630 REM *** GAME OVER - DISPLAY WINNER AND EXIT *** 640 REM 650 J=0: IF WN=-1 THEN 750 660 PRINT "[153][147][205] [206][157][157][157][205][206][157][157][157] [167] [157][157][157] [167] [145][145][145][206][163][205][157][157][157][165] [167] [157][157][157][157][165] [167] [157][157][157][157]"; 670 PRINT "[205][164][206][145][145][145][165] [167] [157][157][157][157][165] [167] [157][157][157][157][165] [167] [157][157][157][157][205][164][206][145][145][145]"; 680 PRINT "[165] [167][157][157][157][157][165] [167][157][157][157][157][165] [167][157][157][157][157]"; 690 PRINT "[205][206][205][206][145][145][145][206][163][205][157][157][157][165] [167][157][157][157][165] [167][157][157][157][205][164][206][145][145][145][167][205] [165][157][157][157][157][157][157]"; 700 PRINT "[167] [205] [165][157][157][157][157][157][157][167] [205] [165][157][157][157][157][157][157][167] [205][165][145][145][145][221][157][221][157][221][157][215]" 710 PRINT "";DN$;DN$;DN$;DN$;"DO YOU WISH TO PLAY AGAIN? "; 715 GOSUB790 720 IF LEFT$(KB$,1)="Y" THEN 290 726 IF LEFT$(KB$,1)<>"N" THEN 715 730 PRINT "[147][154]THANKS FOR THE GAME" 740 OPEN15,8,15,"R0:HELLO CONNECT=HELLO CONNECT":INPUT#15,ER:CLOSE15 745 PRINT"[147]";:IFER<>63THENEND 746 LOAD"HELLO CONNECT",8 750 PRINT "[156]";DN$;DN$;DN$;DN$;"HOW CLUMSY OF YOU! YOU LOSE!": GOTO 710 760 REM 770 REM *** KEYBOARD INPUT SUBROUTINE *** 780 REM 790 PRINT "[166][146][157]"; 800 GET KB$ 810 IF KB$<>"" THEN IF ASC(KB$)<>13 THEN PRINT " ": RETURN 820 FOR CT=1 TO 40 830 GET KB$ 840 IF KB$<>"" THEN IF ASC(KB$)<>13 THEN PRINT " ": RETURN 850 NEXT CT: PRINT "[166][157]";: FOR CT=1 TO 40 860 GET KB$ 870 IF KB$<>"" THEN IF ASC(KB$)<>13 THEN PRINT " ": RETURN 880 NEXT CT: GOTO 790 890 REM 900 REM *** SUBROUTINE TO PRINT THE GRID ON THE SCREEN *** 910 REM 920 PRINT DN$;RT$;"[145][145][145][176][192][195][192][192][192][178][192][195][192][192][192][178][192][195][192][192][192][174]": GOSUB 980: FOR J=1 TO 2 930 PRINT RT$;"[171][192][195][192][192][192][219][192][195][192][192][192][219][192][195][192][192][192][179]": GOSUB 980 940 NEXT:PRINT RT$;"[173][192][195][192][192][192][177][195][192][192][192][192][177][192][195][192][192][192][189]" 942 PRINT" PRESS 'Q' TO QUIT" 945 PRINT "[158]"DN$RT$""; 950 FOR CT=1 TO 9: PRINT "";CT;""; 960 IF CT/3=INT(CT/3) AND CT<>9 THEN PRINT: PRINT "";RT$; 970 NEXT CT: RETURN 980 FOR CT=1 TO 5: PRINT RT$;"[221] [221] [221] [221]": NEXT CT: RETURN 990 REM 1000 REM *** SUBROUTINE TO DISPLAY CURRENT STATUS OF SQUARES *** 1010 REM 1020 PRINT "";DN$;RT$;"[145][145]";: FOR CT=1 TO 9 1030 IF SQ(CT)=1 THEN PRINT GN$;: GOTO 1050 1040 PRINT RD$; 1050 IF CT/3=INT(CT/3) THEN PRINT: PRINT "";RT$;""; 1060 NEXT CT: RETURN