home *** CD-ROM | disk | FTP | other *** search
- 10 CLEAR , , 1024
- 20 GOSUB 390 'set up arrays
- 30 GOSUB 50
- 40 GOSUB 440
- 50 COLOR 0, 2
- 60 CLS
- 70 INPUT "Please enter your name, player A.", PLANAM$(1)
- 80 INPUT "Enter your name, player B.", PLANAM$(2)
- 90 CLS
- 100 PRINT "Fine, "; PLANAM$(1); " and "; PLANAM$(2); " let's get started!"
- 110 PRINT "The object of this game is to place 3 x's or 3 o's in a row."
- 120 PRINT "The row can be horizontal, vertical or diagonal."
- 130 PRINT "The first one to complete a row wins the game."
- 140 PRINT "Press any key to start the game"
- 150 C$ = INKEY$: IF C$ = "" THEN 150
- 160 CLS
- 170 LOCATE 8, 25: PRINT " " + CHR$(186) + " " + CHR$(186);
- 180 LOCATE 9, 25: PRINT " " + CHR$(186) + " " + CHR$(186);
- 190 LOCATE 11, 25: PRINT " " + CHR$(186) + " " + CHR$(186);
- 200 LOCATE 12, 25: PRINT " " + CHR$(186) + " " + CHR$(186);
- 210 LOCATE 10, 24: PRINT STRING$(5, 205) + CHR$(206) + STRING$(4, 205) + CHR$(206) + STRING$(5, 205);
- 220 LOCATE 13, 24: PRINT STRING$(5, 205) + CHR$(206) + STRING$(4, 205) + CHR$(206) + STRING$(5, 205);
- 230 LOCATE 14, 25: PRINT " " + CHR$(186) + " " + CHR$(186);
- 240 LOCATE 15, 25: PRINT " " + CHR$(186) + " " + CHR$(186);
- 250 LOCATE 9, 27: PRINT "1": LOCATE 9, 31: PRINT "2": LOCATE 9, 36: PRINT "3"
- 260 LOCATE 12, 27: PRINT "4": LOCATE 12, 31: PRINT "5": LOCATE 12, 36: PRINT "6"
- 270 LOCATE 15, 27: PRINT "7": LOCATE 15, 31: PRINT "8": LOCATE 15, 36: PRINT "9"
- 280 LOCATE 17, 1: PRINT PLANAM$(1); ", your selection will cause an X to be placed on the grid,"
- 290 LOCATE 18, 1: PRINT "and yours, "; PLANAM$(2); ", will cause an O to appear.": RETURN
- 300 LOCATE 9, 27: PRINT C$: RETURN
- 310 LOCATE 9, 31: PRINT C$: RETURN
- 320 LOCATE 9, 36: PRINT C$: RETURN
- 330 LOCATE 12, 27: PRINT C$: RETURN
- 340 LOCATE 12, 31: PRINT C$: RETURN
- 350 LOCATE 12, 36: PRINT C$: RETURN
- 360 LOCATE 15, 27: PRINT C$: RETURN
- 370 LOCATE 15, 31: PRINT C$: RETURN
- 380 LOCATE 15, 36: PRINT C$: RETURN
- 390 DIM numbers
- 400 DIM PLY(10) 'game array to track progress
- 410 DIM WC(24) 'possible winning combinations
- 420 DATA 1,2,3,4,5,6,7,8,9,1,4,7,1,5,9,2,5,8,3,5,7,3,6,9
- 430 FOR I = 1 TO 24: READ WC(I): NEXT I: RETURN'fill in the winning array
- 440 FOR P = 1 TO 9
- 450 IF PLANUM <> 1 THEN PLANUM = 1: PN$ = PLANAM$(1) ELSE PLANUM = 2: PN$ = PLANAM$(2)
- 460 GOSUB 510 'request player input
- 470 NEXT P
- 480 LOCATE 23, 1: PRINT "Game's over, no winner! Want to try another?": GOTO 650
- 490 LOCATE 20, 6: PRINT "Make another selection "; PN$; " "
- 500 FOR Z = 1 TO 3000: NEXT Z: LOCATE 22, 6: PRINT " ": GOTO 520
- 510 LOCATE 20, 6: PRINT "Select a number, "; PN$; ". "
- 520 LOCATE 21, 3: INPUT A$
- 530 A = VAL(A$)
- 540 IF A < 1 OR A > 9 THEN GOTO 490
- 550 IF PLY(A) <> 0 THEN LOCATE 22, 6: PRINT "Block already taken": GOTO 490
- 560 IF PLANUM = 1 THEN C$ = "X": ELSE C$ = "O"
- 570 ON A GOSUB 300, 310, 320, 330, 340, 350, 360, 370, 380
- 580 PLY(A) = PLANUM
- 590 GOSUB 600: RETURN
- 600 FOR A1 = 0 TO 21 'who wins?
- 610 FOR A2 = 1 TO 3: IF PLY(WC(A1 + A2)) <> PLANUM THEN 670
- 620 NEXT A2
- 630 IF PLANUM = 1 THEN WIN$ = PLANAM$(1): ELSE WIN$ = PLANAM$(2)
- 640 LOCATE 23, 1: PRINT "You win "; WIN$; "! Good game! Do you want to try another?"
- 650 INPUT YN$
- 660 IF YN$ = "yes" THEN 10 ELSE END
- 670 A1 = A1 + 2
- 680 NEXT A1: RETURN
-
-