home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1993 #2
/
Image.iso
/
games2
/
tic_tac_.zip
/
TICTACTO.BAS
Wrap
BASIC Source File
|
1993-06-12
|
3KB
|
70 lines
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