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

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