§ Программа для спектрума

Эта программа просчитывает только на 1 ход вперед и играет на уровне учащегося первого класса школы.
xocheck.png

§ Текст программы

10 BORDER 0: PAPER 0: INK 7: CLS: DIM F(9): DIM G(9)
15 REM 128,87 "CENTER"
20 FOR I=0 TO 1
30 PLOT 99+I*58,0: DRAW 0,175
40 PLOT 40,58+58*I: DRAW 175,0
50 NEXT I
60 FOR I=1 TO 9: LET F(I)=0: NEXT I
70 INPUT "Kuda stavim krest (1-9)? "; A
75 RANDOMIZE
80 IF A<1 OR A>9 THEN GO TO 70
85 IF F(A)>0 THEN GO TO 70
90 LET Y=INT((A-1)/3): LET X=A-3*Y-1: INK 2
100 PLOT 50+X*58,125-Y*58: DRAW 40,40
110 PLOT 50+X*58,165-Y*58: DRAW 40,-40
120 LET F(A)=1: LET L=0
130 GO SUB 1000: GO SUB 1200
140 LET M=1: FOR N=1 TO 9
150 IF F(N)>0 THEN GO TO 200
155 LET G(M)=N: LET M=M+1
160 LET F(N)=2: GO SUB 1000
170 IF WIN=2 THEN LET L=N
180 LET F(N)=1: GO SUB 1000
183 IF WIN=1 AND L=0 THEN LET L=N
190 LET F(N)=0
200 NEXT N
201 IF M=1 THEN PRINT "DRAW": STOP
202 IF L=0 THEN LET L=G(INT(1+RND*(M-1)))
205 LET F(L)=2
210 LET Y=INT((L-1)/3): LET X=L-3*Y-1: INK 4
220 CIRCLE 70+58*X,145-58*Y,22
230 GO SUB 1000: GO SUB 1200
240 GO TO 70
999 STOP
1000 LET WIN=0: REM "CHECKING WINS"
1010 FOR I=1 TO 2
1020 IF F(1)=I AND F(2)=I AND F(3)=I THEN LET WIN=I
1030 IF F(4)=I AND F(5)=I AND F(6)=I THEN LET WIN=I
1040 IF F(7)=I AND F(8)=I AND F(9)=I THEN LET WIN=I
1050 IF F(1)=I AND F(4)=I AND F(7)=I THEN LET WIN=I
1060 IF F(2)=I AND F(5)=I AND F(8)=I THEN LET WIN=I
1070 IF F(3)=I AND F(6)=I AND F(9)=I THEN LET WIN=I
1080 IF F(1)=I AND F(5)=I AND F(9)=I THEN LET WIN=I
1090 IF F(3)=I AND F(5)=I AND F(7)=I THEN LET WIN=I
1100 NEXT I
1110 RETURN
1200 IF WIN=1 THEN PRINT "X WINS!": STOP
1210 IF WIN=2 THEN PRINT "O WINS!": STOP
1220 RETURN
ds.png