Traditional game.
Content
Image Gallery
Source Code
5 REM tictactoe by R.W. Brown Adapted for 2068 by J. Colonna, SINCUS
10 REM Version 2.0
15 BORDER 6: CLS
20 LET x=0
25 LET o=0
45 PRINT AT 4,7;"\::\::\::\::\::\::\::\::\::\::\::\::\::"
50 PRINT AT 5,7;"\::TIC TAC TOE\::"
53 PRINT AT 6,7;"\::\::\::\::\::\::\::\::\::\::\::\::\::"
54 PRINT AT 10,15;"By";AT 12,17;"R. W. BROWN"
56 PRINT AT 14,22;"&"
58 PRINT AT 16,17;"J. COLONNA"
60 FOR i=1 TO 36
61 PLOT i,12: PLOT i,28: PLOT 12,i: PLOT 28,i
65 NEXT i
70 PRINT AT 19,8; FLASH 1;"Press any key to play.": PAUSE 0
120 CLS
122 DIM s(3,3)
124 DIM t(10)
126 LET q=0
128 LET z=0
130 PRINT AT 4,3;"1"
132 PRINT AT 4,10;"2"
134 PRINT AT 4,17;"3"
136 PRINT AT 11,3;"4"
138 PRINT AT 11,10;"5"
140 PRINT AT 11,17;"6"
142 PRINT AT 18,3;"7"
144 PRINT AT 18,10;"8"
146 PRINT AT 18,17;"9"
150 FOR l=1 TO 10
152 LET t(l)=0
154 NEXT l
160 FOR l=1 TO 3
161 FOR k=1 TO 3
162 LET s(l,k)=0
163 NEXT k
164 NEXT l
200 FOR i=0 TO 160
202 PLOT i,52: PLOT i,108: PLOT 52,i: PLOT 108,i
205 NEXT i
209 PRINT AT 1,24;"Score:"
212 NEXT i
214 PRINT AT 4,24;"X O"
216 PRINT AT 5,23;"---- ----"
218 PRINT AT 6,24;x;AT 6,29;o
220 PRINT AT 0,2; FLASH 1;"Who starts?"; FLASH 0;" X/O"
224 LET k$=INKEY$
226 IF k$="x" OR k$="X" THEN GO TO 240
228 IF k$="o" OR k$="O" THEN GO TO 260
230 GO TO 222
239 REM
240 PRINT AT 0,0;" "
242 PRINT AT 0,0;"X Where?";
244 LET w$=INKEY$
250 IF w$="1" THEN PRINT AT 4,3;" ": GO TO 1100
251 IF w$="2" THEN PRINT AT 4,10;" ": GO TO 1200
252 IF w$="3" THEN PRINT AT 4,17;" ": GO TO 1300
253 IF w$="4" THEN PRINT AT 11,3;" ": GO TO 1400
254 IF w$="5" THEN PRINT AT 11,10;" ": GO TO 1500
255 IF w$="6" THEN PRINT AT 11,17;" ": GO TO 1600
256 IF w$="7" THEN PRINT AT 18,3;" ": GO TO 1700
257 IF w$="8" THEN PRINT AT 18,10;" ": GO TO 1800
258 IF w$="9" THEN PRINT AT 18,17;" ": GO TO 1900
259 GO TO 243
260 PRINT AT 0,0;" "
262 PRINT AT 0,0;" O Where?";
264 LET w$=INKEY$
270 IF w$="1" THEN PRINT AT 4,3;" ": GO TO 1150
271 IF w$="2" THEN PRINT AT 4,10;" ": GO TO 1250
272 IF w$="3" THEN PRINT AT 4,17;" ": GO TO 1350
273 IF w$="4" THEN PRINT AT 11,3;" ": GO TO 1450
274 IF w$="5" THEN PRINT AT 11,10;" ": GO TO 1550
275 IF w$="6" THEN PRINT AT 11,17;" ": GO TO 1650
276 IF w$="7" THEN PRINT AT 18,3;" ": GO TO 1750
277 IF w$="8" THEN PRINT AT 18,10;" ": GO TO 1850
278 IF w$="9" THEN PRINT AT 18,17;" ": GO TO 1950
279 GO TO 263
1099 REM
1100 IF t(1)=1 THEN GO TO 3000
1102 LET t(1)=1
1104 LET s(1,1)=1
1105 LET n=24
1106 LET m=136
1107 GO SUB 4000
1108 GO SUB 2900
1110 GO TO 260
1150 IF t(1)=1 THEN GO TO 3020
1152 LET t(1)=1
1154 LET s(1,1)=5
1155 LET n=24
1156 LET m=136
1157 GO SUB 4050
1158 GO SUB 2950
1160 GO TO 240
1200 IF t(2)=1 THEN GO TO 3000
1202 LET t(2)=1
1204 LET s(1,2)=1
1205 LET n=80
1206 LET m=136
1207 GO SUB 4000
1208 GO SUB 2900
1210 GO TO 260
1250 IF t(2)=1 THEN GO TO 3020
1252 LET t(2)=1
1254 LET s(1,2)=5
1255 LET n=80
1256 LET m=136
1257 GO SUB 4050
1258 GO SUB 2950
1260 GO TO 240
1300 IF t(3)=1 THEN GO TO 3000
1302 LET t(3)=1
1304 LET s(1,3)=1
1305 LET n=136
1306 LET m=136
1307 GO SUB 4000
1308 GO SUB 2900
1310 GO TO 260
1350 IF t(3)=1 THEN GO TO 3020
1352 LET t(3)=1
1354 LET s(1,3)=5
1355 LET n=136
1356 LET m=136
1357 GO SUB 4050
1358 GO SUB 2950
1360 GO TO 240
1400 IF t(4)=1 THEN GO TO 3000
1402 LET t(4)=1
1404 LET s(2,1)=1
1405 LET n=24
1406 LET m=80
1407 GO SUB 4000
1408 GO SUB 2900
1410 GO TO 260
1450 IF t(4)=1 THEN GO TO 3020
1452 LET t(4)=1
1454 LET s(2,1)=5
1455 LET n=24
1456 LET m=80
1457 GO SUB 4050
1458 GO SUB 2950
1460 GO TO 240
1500 IF t(5)=1 THEN GO TO 3000
1502 LET t(5)=1
1504 LET s(2,2)=1
1505 LET n=80
1506 LET m=80
1507 GO SUB 4000
1508 GO SUB 2900
1510 GO TO 260
1550 IF t(5)=1 THEN GO TO 3020
1552 LET t(5)=1
1554 LET s(2,2)=5
1555 LET n=80
1556 LET m=80
1557 GO SUB 4050
1558 GO SUB 2950
1560 GO TO 240
1600 IF t(6)=1 THEN GO TO 3000
1602 LET t(6)=1
1604 LET s(2,3)=1
1605 LET n=136
1606 LET m=80
1607 GO SUB 4000
1608 GO SUB 2900
1610 GO TO 260
1650 IF t(6)=1 THEN GO TO 3020
1652 LET t(6)=1
1654 LET s(2,3)=5
1655 LET n=136
1656 LET m=80
1657 GO SUB 4050
1658 GO SUB 2950
1660 GO TO 240
1700 IF t(7)=1 THEN GO TO 3000
1702 LET t(7)=1
1704 LET s(3,1)=1
1705 LET n=24
1706 LET m=24
1707 GO SUB 4000
1708 GO SUB 2900
1710 GO TO 260
1750 IF t(7)=1 THEN GO TO 3020
1752 LET t(7)=1
1754 LET s(3,1)=5
1755 LET n=24
1756 LET m=24
1757 GO SUB 4050
1758 GO SUB 2950
1760 GO TO 240
1800 IF t(8)=1 THEN GO TO 3000
1802 LET t(8)=1
1804 LET s(3,2)=1
1805 LET n=80
1806 LET m=24
1807 GO SUB 4000
1808 GO SUB 2900
1810 GO TO 260
1850 IF t(8)=1 THEN GO TO 3020
1852 LET t(8)=1
1854 LET s(3,2)=5
1855 LET n=80
1856 LET m=24
1857 GO SUB 4050
1858 GO SUB 2950
1860 GO TO 240
1900 IF t(9)=1 THEN GO TO 3000
1902 LET t(9)=1
1904 LET s(3,3)=1
1905 LET n=136
1906 LET m=24
1907 GO SUB 4000
1908 GO SUB 2900
1910 GO TO 260
1950 IF t(9)=1 THEN GO TO 3020
1952 LET t(9)=1
1954 LET s(3,3)=5
1955 LET n=136
1956 LET m=24
1957 GO SUB 4050
1958 GO SUB 2950
1960 GO TO 240
2800 PRINT AT 0,0;" "
2801 LET x=x+1
2802 PRINT AT 0,2; FLASH 1;" X WINS...": GO SUB 4080
2804 PRINT AT 1,0;"Play Again? Y/N"
2805 PRINT AT 6,24;x;AT 6,29;o
2808 LET s$=INKEY$
2827 IF s$="n" OR s$="N" THEN GO TO 5000
2828 IF s$="y" OR s$="Y" THEN GO TO 120
2829 IF s$="l" THEN GO TO 2880
2830 GO TO 2808
2850 PRINT AT 0,0;" "
2851 LET o=o+1
2852 PRINT AT 0,2; FLASH 1;" O WINS...": GO SUB 4080
2854 PRINT AT 1,0;"Play Again? Y/N"
2855 PRINT AT 6,24;x;AT 6,29;o
2858 LET s$=INKEY$
2867 IF s$="n" OR s$="N" THEN GO TO 5000
2868 IF s$="y" OR s$="Y" THEN GO TO 120
2869 IF s$="l" THEN GO TO 2880
2870 GO TO 2858
2880 CLS
2882 LIST
2884 STOP
2889 REM
2900 LET q=q+1
2902 IF s(1,1)+s(1,2)+s(1,3)=3 THEN GO TO 2800
2904 IF s(2,1)+s(2,2)+s(2,3)=3 THEN GO TO 2800
2906 IF s(3,1)+s(3,2)+s(3,3)=3 THEN GO TO 2800
2908 IF s(1,1)+s(2,1)+s(3,1)=3 THEN GO TO 2800
2910 IF s(1,2)+s(2,2)+s(3,2)=3 THEN GO TO 2800
2912 IF s(1,3)+s(2,3)+s(3,3)=3 THEN GO TO 2800
2914 IF s(1,1)+s(2,2)+s(3,3)=3 THEN GO TO 2800
2916 IF s(1,3)+s(2,2)+s(3,1)=3 THEN GO TO 2800
2917 IF q+z=9 THEN GO TO 3100
2918 RETURN
2949 REM
2950 LET z=z+1
2952 IF s(1,1)+s(1,2)+s(1,3)=15 THEN GO TO 2850
2954 IF s(2,1)+s(2,2)+s(2,3)=15 THEN GO TO 2850
2956 IF s(3,1)+s(3,2)+s(3,3)=15 THEN GO TO 2850
2958 IF s(1,1)+s(2,1)+s(3,1)=15 THEN GO TO 2850
2960 IF s(1,2)+s(2,2)+s(3,2)=15 THEN GO TO 2850
2962 IF s(1,3)+s(2,3)+s(3,3)=15 THEN GO TO 2850
2964 IF s(1,1)+s(2,2)+s(3,3)=15 THEN GO TO 2850
2966 IF s(1,3)+s(2,2)+s(3,1)=15 THEN GO TO 2850
2967 IF q+z=9 THEN GO TO 3100
2968 RETURN
3000 PRINT AT 0,0;" "
3002 PRINT AT 0,0;"TRY AGAIN"
3004 PAUSE 400
3008 GO TO 240
3020 PRINT AT 0,0;" "
3022 PRINT AT 0,0;"TRY AGAIN"
3024 PAUSE 400
3028 GO TO 260
3100 PRINT AT 0,0;" "
3102 PRINT AT 0,1; INVERSE 1;"No One Won,,,"
3104 PRINT AT 1,0;"Play Again? Y/N"
3108 LET s$=INKEY$
3127 IF s$="n" OR s$="N" THEN GO TO 5000
3128 IF s$="y" OR s$="Y" THEN GO TO 120
3129 IF s$="l" THEN GO TO 1880
3130 GO TO 3108
4000 REM X
4001 PLOT n,m
4002 FOR j=1 TO 8
4004 PLOT n+j,m+j
4006 PLOT n+j,m-j
4008 PLOT n-j,m+j
4010 PLOT n-j,m-j
4012 NEXT j
4014 RETURN
4050 REM circle
4054 CIRCLE n,m,10
4070 RETURN
4080 BEEP .15,0: BEEP .15,4: BEEP .15,7: BEEP .25,12: BEEP .15,9: BEEP .3,12
4090 RETURN
5000 CLS
5002 IF x>o THEN GO TO 5020
5004 IF x<o THEN GO TO 5040
5006 IF x=o THEN GO TO 5060
5020 PRINT AT 5,10;"X WINS"
5022 PRINT AT 6,9;"========="
5024 PRINT AT 12,4;"X=";x
5026 PRINT AT 14,4;"O=";o
5028 GO TO 6000
5040 PRINT AT 5,10;"O WINS"
5042 PRINT AT 6,9;"========="
5044 PRINT AT 12,4;"O=";o
5046 PRINT AT 14,4;"X=";x
5048 GO TO 6000
5060 PRINT AT 5,10;"TIE TIE TIE"
5062 PRINT AT 6,9;"==============="
5064 PRINT AT 12,4;"X/O=";x
5066 PRINT AT 16,2; INVERSE 1;"TRY HARDER NEXT TIME..."
5068 GO TO 6000
6000 PAUSE 1000
6010 STOP
9999 SAVE "tictactoe" LINE 1: BEEP 1,32