!-------------------------------------------------- !- Monday, March 03, 2014 8:59:47 AM !- Import of : !- C:\data\TICTACTOE.prg !-------------------------------------------------- 10 REM STEVE ENGELHARDT 20 REM TIC TAC TOE 30 REM 1/7/88 40 REM 50 POKE53280,1:POKE53281,1:PRINT"{clear}{blue}" 54 REM ---> ARRAY <--- 60 DIM T$(3,3) 70 FORR=1TO3:FORC=1TO3 80 READ T$(R,C) 90 NEXTC:NEXTR 91 REM ---> INITIALIZE VARIABLES <--- 92 W=1:X=2:A=1 93 E=1:F=3:B=1 94 G=2:H=1:I=2 96 K=2:L=3:J=2 97 M=3:N=1:O=3 98 Y=3:Z=3:P=2 99 REM ---> OPENING <--- 100 GOSUB620:PRINT"{down*4}" 101 PRINT"{ltblue}{rvson} {rvsoff}{space*9}{black}*{yellow}* {red}t{cyan}i{purple}c {green}t{blue}a{orange}c {brown}t{ltred}o{grey1}e {grey2}*{grey3}* {down}" 102 PRINT"{ltblue}{rvson} {rvsoff}{blue}{down}{blue}{space*8}by steve engelhardt{down*4}" 112 PRINT"{ltblue}{down}{rvson} {rvsoff}player 1: (x's)" 113 PRINT"{rvson} {rvsoff}what is your name";: INPUTP1$ 114 PRINT"{ltblue}{down}{rvson} {rvsoff}player 2: (o's)" 115 PRINT"{rvson} {rvsoff}what is your name";: INPUTP2$ 117 VV$=LEFT$(P1$,JJ) 120 REM ---> THE BOARD <--- 130 PRINT"{clear}" 131 PRINT"{home}" 132 GOSUB700 133 PRINT"{ltblue} {194}{space*14}columns{blue}{red}"{5}{11}READ 8346 PEEKSTOP *1* *2* *3*{28}""PRINTSPC(05)"{space*9}{194}{space*9}{194}" 150 PRINTSPC(03)" {black}*{red}{space*9}{194}{space*9}{194}" 160 PRINTSPC(04)"{black}1{red}{space*4}";T$(A,B);"{space*4}{194}{space*4}";T$(W,X);"{space*4}{194}{space*4}";T$(E,F) 170 PRINTSPC(03)" {black}*{red}{space*9}{194}{space*9}{194}" 180 PRINTSPC(05)"{space*9}{194}{space*9}{194}" 190 PRINTSPC(05)"{195}{195}{195}{195}{195}{195}{195}{195}{195}{219}{195}{195}{195}{195}{195}{195}{195}{195}{195}{219}{195}{195}{195}{195}{195}{195}{195}{195}{195}{195}" 200 PRINTSPC(02)"{blue}r{red}{space*11}{194}{space*9}{194}" 210 PRINTSPC(02)"{blue}o{black} *{red}{space*9}{194}{space*9}{194}" 220 PRINTSPC(02)"{blue}w{black} 2{red}{space*4}";T$(G,H);"{space*4}{194}{space*4}";T$(I,J);"{space*4}{194}{space*4}";T$(K,L) 230 PRINTSPC(02)"{blue}s{black} *{red}{space*9}{194}{space*9}{194}" 240 PRINTSPC(05)"{space*9}{194}{space*9}{194}" 250 PRINTSPC(05)"{195}{195}{195}{195}{195}{195}{195}{195}{195}{219}{195}{195}{195}{195}{195}{195}{195}{195}{195}{219}{195}{195}{195}{195}{195}{195}{195}{195}{195}{195}" 260 PRINTSPC(05)"{space*9}{194}{space*9}{194}" 270 PRINTSPC(03)" {black}*{red}{space*9}{194}{space*9}{194}" 280 PRINTSPC(04)"{black}3{red}{space*4}";T$(M,N);"{space*4}{194}{space*4}";T$(O,P);"{space*4}{194}{space*4}";T$(Y,Z) 290 PRINTSPC(03)" {black}*{red}{space*9}{194}{space*9}{194}" 300 PRINTSPC(05)"{space*9}{194}{space*9}{194}" 310 PRINT 311 REM ---> CAT'S GAME <--- 312 YY=YY+1 313 IF YY>9THEN PRINT"{ltblue}":GOTO3000 315 XX=XX+1 316 REM ---> DETERMINES WHO'S MOVE <--- 317 IF INT(XX/2)=XX/2 THEN520 319 REM ---> PLAYER 1'S MOVE <--- 320 PRINT"{black}ok, "P1$:PRINT"it's your move." 330 PRINT"enter (row,column){space*3},{space*2}{left*6}";:INPUTS,T 340 IF A=S AND B=T AND T$(A,B)<>"o" THEN T$(A,B) = "{214}" 350 IF W=S AND X=T AND T$(W,X)<>"o" THEN T$(W,X) = "{214}" 360 IF E=S AND F=T AND T$(E,F)<>"o" THEN T$(E,F) = "{214}" 370 IF G=S AND H=T AND T$(G,H)<>"o" THEN T$(G,H) = "{214}" 380 IF I=S AND J=T AND T$(I,J)<>"o" THEN T$(I,J) = "{214}" 390 IF K=S AND L=T AND T$(K,L)<>"o" THEN T$(K,L) = "{214}" 392 IF M=S AND N=T AND T$(M,N)<>"o" THEN T$(M,N) = "{214}" 394 IF O=S AND P=T AND T$(O,P)<>"o" THEN T$(O,P) = "{214}" 396 IF Y=S AND Z=T AND T$(Y,Z)<>"o" THEN T$(Y,Z) = "{214}" 400 IF T$(A,B)="{214}" AND T$(W,X)="{214}" AND T$(E,F)="{214}" THEN CC=1: GOTO2000 402 IF T$(G,H)="{214}" AND T$(I,J)="{214}" AND T$(K,L)="{214}" THEN CC=1: GOTO2000 404 IF T$(M,N)="{214}" AND T$(O,P)="{214}" AND T$(Y,Z)="{214}" THEN CC=1: GOTO2000 406 IF T$(A,B)="{214}" AND T$(G,H)="{214}" AND T$(M,N)="{214}" THEN CC=1: GOTO2000 408 IF T$(W,X)="{214}" AND T$(I,J)="{214}" AND T$(O,P)="{214}" THEN CC=1: GOTO2000 410 IF T$(E,F)="{214}" AND T$(K,L)="{214}" AND T$(Y,Z)="{214}" THEN CC=1: GOTO2000 412 IF T$(M,N)="{214}" AND T$(I,J)="{214}" AND T$(E,F)="{214}" THEN CC=1: GOTO2000 414 IF T$(A,B)="{214}" AND T$(I,J)="{214}" AND T$(Y,Z)="{214}" THEN CC=1: GOTO2000 425 GOTO 131 450 REM ---> PLAYER 2'S MOVE <--- 520 PRINT"{black}ok, "P2$:PRINT"it's your move." 530 PRINT"enter (row,column){space*3}, {left*5}";:INPUTAA,BB 548 IF A=AA AND B=BB AND T$(A,B)<>"{214}" THEN T$(A,B) = "o" 550 IF W=AA AND X=BB AND T$(W,X)<>"{214}" THEN T$(W,X) = "o" 552 IF E=AA AND F=BB AND T$(E,F)<>"{214}" THEN T$(E,F) = "o" 555 IF G=AA AND H=BB AND T$(G,H)<>"{214}" THEN T$(G,H) = "o" 558 IF I=AA AND J=BB AND T$(I,J)<>"{214}" THEN T$(I,J) = "o" 560 IF K=AA AND L=BB AND T$(K,L)<>"{214}" THEN T$(K,L) = "o" 564 IF M=AA AND N=BB AND T$(M,N)<>"{214}" THEN T$(M,N) = "o" 568 IF O=AA AND P=BB AND T$(O,P)<>"{214}" THEN T$(O,P) = "o" 570 IF Y=AA AND Z=BB AND T$(Y,Z)<>"{214}" THEN T$(Y,Z) = "o" 580 IF T$(A,B)="o" AND T$(W,X)="o" AND T$(E,F)="o" THEN CC=2: GOTO2000 582 IF T$(G,H)="o" AND T$(I,J)="o" AND T$(K,L)="o" THEN CC=2: GOTO2000 584 IF T$(M,N)="o" AND T$(O,P)="o" AND T$(Y,Z)="o" THEN CC=2: GOTO2000 586 IF T$(A,B)="o" AND T$(G,H)="o" AND T$(M,N)="o" THEN CC=2: GOTO2000 588 IF T$(W,X)="o" AND T$(I,J)="o" AND T$(O,P)="o" THEN CC=2: GOTO2000 590 IF T$(E,F)="o" AND T$(K,L)="o" AND T$(Y,Z)="o" THEN CC=2: GOTO2000 612 IF T$(M,N)="o" AND T$(I,J)="o" AND T$(E,F)="o" THEN CC=2: GOTO2000 614 IF T$(A,B)="o" AND T$(I,J)="o" AND T$(Y,Z)="o" THEN CC=2: GOTO2000 616 GOTO 131 620 REM ---> BORDER SUBROUTINE <--- 622 FORX=1024TO1063:POKEX,160:NEXTX 625 FORX=1984TO2023:POKEX,160:NEXTX 628 FORX=1024TO1984STEP40:POKEX,160: NEXTX 630 FORX=1063TO2023STEP40:POKEX,160: NEXTX 631 X=2 632 RETURN 700 REM ---> BORDER SUBROUTINE <--- 710 FORGG=1026TO1060:POKEGG,64:NEXTGG 712 FORGG=1826TO1860:POKEGG,64:NEXTGG 714 FORGG=1065TO1785STEP40:POKEGG,66: NEXTGG 716 FORGG=1101TO1822STEP40:POKEGG,66: NEXTGG 718 POKE1025,85:POKE1061,73 720 POKE1861,75:POKE1825,74 722 RETURN 1010 REM ---> DATA <--- 1030 DATA .,.,.,.,.,.,.,.,. 2000 PRINT"{ltblue}{clear}" 2005 GOSUB 620 2010 IF CC=1 THEN WN$=P1$ 2020 IF CC=2 THEN WN$=P2$ 2025 REM ---> GAME OVER <--- 2030 PRINT"{down*2}" 2040 PRINT"{rvson} {rvsoff}{red}congratulations, "WN$ 2050 PRINT"{ltblue}{rvson} {rvsoff}{red}you won the game!" 2060 PRINT 2070 PRINT"{ltblue}{down*3}{rvson} {rvsoff}{green}would you like to play again?" 2080 INPUT"{ltblue}{rvson} {rvsoff}";AG$ 2090 IFLEFT$(AG$,1)="y"THENRUN 2100 GOTO 3040 3000 PRINT"{clear}" 3010 PRINT"{down*2}" 3020 PRINT"{ltblue}":GOSUB 620 3021 PRINT"{ltblue}{rvson} {rvsoff}cat's game!" 3030 GOTO 2070 3040 PRINT"{clear}" 3050 END