10 CLS : SCREEN 1: COLOR 9: DIM X(100), O(100) 12 CIRCLE (10, 10), 10: GET (0, 0)-(20, 20), O: CLS 15 LINE (1, 1)-(20, 20), 2: LINE (1, 20)-(20, 1), 2: GET (1, 1)-(20, 20), X: CLS 20 LOCATE 1, 10: INPUT "SIZE (2-6)"; S$: IF VAL(S$) < 2 OR VAL(S$) > 6 THEN LOCATE 1, 10: PRINT SPACE$(40): GOTO 20 25 S = VAL(S$) + 1: DIM BD(S - 1, S - 1) 26 FOR I = 1 TO S - 1: FOR J = 1 TO S - 1: BD(I, J) = INT(RND(1) * 2) + 1: NEXT J, I 29 REM ----------------- MAIN PROGRAM ---------------- 30 LOCATE 1, 10: PRINT SPACE$(40): LOCATE 1, 10: PRINT "DR. KATZ'S FLIP GAME" 40 LOCATE 23, 11: PRINT "PRESS F10 TO EXIT": ON KEY(10) GOSUB 310: KEY(10) ON 60 FOR I = 1 TO S: LINE (20 + I * 20, 20)-(20 + I * 20, S * 20), 1: NEXT I 70 FOR I = 1 TO S: LINE (40, I * 20)-(20 + 20 * S, I * 20), 1: NEXT I 90 FOR I = 1 TO S - 1: FOR J = 1 TO S - 1 100 IF BD(I, J) = 1 THEN PUT (20 + I * 20, J * 20), X 110 IF BD(I, J) = 2 THEN PUT (20 + I * 20, J * 20), O 120 NEXT J, I 130 LOCATE 20, 5: PRINT "X:"; 140 A$ = INKEY$: IF VAL(A$) < 1 OR VAL(A$) > S - 1 THEN 140 150 PRINT VAL(A$); : Y = VAL(A$): PRINT " Y:"; 160 A$ = INKEY$: IF VAL(A$) < 1 OR VAL(A$) > S - 1 THEN 160 170 PRINT VAL(A$): X = VAL(A$): FOR I = 1 TO 1000: NEXT I: LOCATE 20, 1: PRINT SPACE$(40) 180 REM ------------------ DO THE FLIPPING ------------- 190 FOR I = 1 TO S - 1 200 IF BD(I, Y) = 1 THEN BD(I, Y) = 2 ELSE BD(I, Y) = 1 220 IF BD(X, I) = 1 THEN BD(X, I) = 2 ELSE BD(X, I) = 1 230 NEXT I 250 I = 0: J = 0: C = 0: WHILE BD(I, J) = 1 AND I < S AND J < I: I = I + 1: J = J + 1: C = C + 1: WEND: IF C = (S - 1) * (S - 1) THEN 280 260 I = 0: J = 0: C = 0: WHILE BD(I, J) = 2 AND I < S AND J < I: I = I + 1: J = J + 1: C = C + 1: WEND: IF C = (S - 1) * (S - 1) THEN 280 270 CLS : GOTO 30 280 CLS : PRINT "YOU WIN!" 290 PRINT 300 INPUT "PLAY AGAIN"; A$: IF LEFT$(UCASE$(A$), 1) = "N" THEN SYSTEM ELSE RUN 310 CLS : SCREEN 0: SYSTEM