128 lines
1.8 KiB
Plaintext
128 lines
1.8 KiB
Plaintext
100'TIC-TAC-TOE. YOU (X) VS. THE COMPUTER (O)
|
|
210?"TOM PITTMAN'S ";
|
|
211?"TIC-TAC-TOE."
|
|
212?"YOU AGAINST";
|
|
213?" TINY BASIC"
|
|
221?"YOU ARE X. I AM";
|
|
222?" O. YOU"
|
|
231?"PLAY YOUR";
|
|
232?" TURN BY TYPING"
|
|
233?"THE NUMBER OF A";
|
|
234?" SQUARE."
|
|
240A=0
|
|
250B=0
|
|
260C=0
|
|
270D=0
|
|
280E=0
|
|
290F=0
|
|
1000F=1
|
|
1010?
|
|
1020?"NEW GAME."
|
|
1100I=7
|
|
1110A(I)=0:I=I+1
|
|
1120IFI<16GOTO1110
|
|
1130U=9
|
|
1140Z=0
|
|
1151IFF=0GOTO4010
|
|
1161GOTO2010
|
|
1510Z=1
|
|
1520F=0
|
|
2010I=6
|
|
2110I=I+1
|
|
2120?" ";
|
|
2131GOTOA(I)*20+2200
|
|
2200?I-6;
|
|
2210GOTO2300
|
|
2220?"X";
|
|
2230GOTO2300
|
|
2260?"O";
|
|
2300IFI/3*3=IGOTO2400
|
|
2310?" |";
|
|
2320GOTO2110
|
|
2400?
|
|
2420IFI=15GOTO3000
|
|
2430?"---+---+---"
|
|
2440GOTO2110
|
|
3000IFZ=0GOTO3100
|
|
3020IFF=1GOTO3050
|
|
3030?"YOU WIN."
|
|
3040GOTO1010
|
|
3050?"I WIN."
|
|
3060GOTO1010
|
|
3100IFU>0GOTO3210
|
|
3110?"CAT'S GAME."
|
|
3120F=1-F
|
|
3130GOTO1010
|
|
3210?"YOUR PLA";
|
|
3223INPUTY:I=Y
|
|
3231IFI<=0GOTO3240
|
|
3232IFI<10GOTO3270
|
|
3240?"PLEASE TYPE A";
|
|
3242?" NUMBER"
|
|
3243?"BETWEEN 1 AND 9";
|
|
3251?" WHERE YOU"
|
|
3252?"WISH TO PLAY";
|
|
3253?" YOUR X"
|
|
3260GOTO3210
|
|
3270IFA(I+6)=0GOTO3310
|
|
3281?"THAT SQUARE IS";
|
|
3282?" ALREADY":?"TAKEN"
|
|
3290GOTO3210
|
|
3310A(I+6)=1:U=U-1
|
|
3320W=6100
|
|
3330GOSUBW
|
|
3341IFJ<=0GOTO3350
|
|
3342IFL*M*N=1GOTO1510
|
|
3350W=W+100
|
|
3360IFW<6500GOTO3330
|
|
3410IFU=0GOTO2010
|
|
4010I=1
|
|
4020T=-1
|
|
4300S=0
|
|
4311IFA(I+6)>0GOTO4480
|
|
4320W=6100
|
|
4330GOSUBW
|
|
4340IFJ=0GOTO4410
|
|
4350J=L+M+N
|
|
4361IFJ=4GOTO4410
|
|
4371IFJ=2S=S+20
|
|
4381IFJ=6S=S+100
|
|
4391IFJ=0S=S+2
|
|
4400S=S+J
|
|
4410W=W+100
|
|
4420IFW<6500GOTO4330
|
|
4431IFS<TGOTO4470
|
|
4440T=S
|
|
4450B=I
|
|
4470?".";
|
|
4480I=I+1
|
|
4490IFI<10GOTO4300
|
|
4500?"I PLAY ";B
|
|
4510?
|
|
4521A(B+6)=3
|
|
4530U=U-1
|
|
4541IFT<100GOTO2010
|
|
4560F=1
|
|
4570Z=1
|
|
4580GOTO2010
|
|
6100J=(I-1)/3*3+8
|
|
6110D=1
|
|
6120GOTO6500
|
|
6200J=I-(I-1)/3*3+9
|
|
6210D=3
|
|
6220GOTO6500
|
|
6300IFI%4<>1GOTO6440
|
|
6310D=4
|
|
6330J=11
|
|
6340GOTO6500
|
|
6400D=2
|
|
6411IFI<=1GOTO6440
|
|
6412IFI>=9GOTO6440
|
|
6413IFI%2=1GOTO6330
|
|
6440J=0
|
|
6450RETURN
|
|
6500L=A(J-D)
|
|
6502M=A(J)
|
|
6510N=A(J+D)
|
|
6530RETURN
|