Advertisement
Guest User

Untitled

a guest
Oct 20th, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.59 KB | None | 0 0
  1. #game board to hold data
  2.  
  3. game_board = ["-", "-", "-",
  4. "-", "-", "-",
  5. "-", "-", "-"]
  6.  
  7. # know if game over
  8. game_still_on = True
  9.  
  10. winner = None
  11.  
  12. # current player
  13. current_player = "X"
  14.  
  15. # Play game
  16. def play_game():
  17.  
  18. # display game board
  19. display_game_board()
  20.  
  21. while game_still_on:
  22.  
  23. # Handle a turn
  24. handle_turn(current_player)
  25.  
  26. # Check if game over
  27. check_if_game_over()
  28.  
  29. # Flip to the other player
  30. flip_player()
  31.  
  32. # print the winner or tie
  33. if winner == "X" or winner == "O":
  34. print(" Congratulations" + winner + "you won!" )
  35. elif winner == None:
  36. print("Game draw.")
  37.  
  38. def display_game_board():
  39. print("\n")
  40. print(game_board[0] + " | " + game_board[1] + " | " + game_board[2] + " 1 | 2 | 3")
  41. print("---------")
  42. print(game_board[3] + " | " + game_board[4] + " | " + game_board[5] + " 4 | 5 | 6")
  43. print("---------")
  44. print(game_board[6] + " | " + game_board[7] + " | " + game_board[8] + " 7 | 8 | 9")
  45. print("\n")
  46.  
  47.  
  48. def handle_turn(player):
  49.  
  50. # input spot from player
  51. print(player + "'s turn.")
  52. spot = input("Choose a spot from 1-9: ")
  53.  
  54. valid = False
  55. while not valid:
  56.  
  57. while spot not in ["1", "2", "3", "4", "5", "6", "7", "8", "9"]:
  58. spot = input("Hey! Choose a spot from 1-9: ")
  59.  
  60. spot = int(spot) - 1
  61.  
  62. if game_board[spot] =="-":
  63. valid = True
  64. else:
  65. print("Opps! You have entered an incorrect spot. Try again.")
  66.  
  67. game_board[spot] = player
  68.  
  69. # display game board
  70. display_game_board()
  71.  
  72. # Check if game over
  73. def check_if_game_over():
  74. check_for_winner()
  75. check_for_tie()
  76.  
  77.  
  78. # Check winner
  79. def check_for_winner():
  80.  
  81. global winner
  82.  
  83. row_winner = check_rows()
  84. column_winner = check_columns()
  85. diagonal_winner = check_diagonals()
  86. # Determine the winner
  87. if row_winner:
  88. winner = row_winner
  89. elif column_winner:
  90. winner = column_winner
  91. elif diagonal_winner:
  92. winner = diagonal_winner
  93. else:
  94. winner = None
  95.  
  96. def check_rows():
  97.  
  98. global game_still_on
  99.  
  100. row_1 = game_board[0] == game_board[1] == game_board[2] != "-"
  101. row_2 = game_board[3] == game_board[4] == game_board[5] != "-"
  102. row_3 = game_board[6] == game_board[7] == game_board[8] != "-"
  103.  
  104. if row_1 or row_2 or row_3:
  105. game_still_on = False
  106. # Return winner
  107. if row_1:
  108. return game_board[0]
  109. elif row_2:
  110. return game_board[3]
  111. elif row_3:
  112. return game_board[6]
  113. else:
  114. return None
  115.  
  116. def check_columns():
  117.  
  118. global game_still_on
  119.  
  120. column_1 = game_board[0] == game_board[3] == game_board[6] != "-"
  121. column_2 = game_board[1] == game_board[4] == game_board[7] != "-"
  122. column_3 = game_board[2] == game_board[5] == game_board[8] != "-"
  123.  
  124. if column_1 or column_2 or column_3:
  125. game_still_on = False
  126. # Return the winner
  127. if column_1:
  128. return game_board[0]
  129. elif column_2:
  130. return game_board[1]
  131. elif column_3:
  132. return game_board[2]
  133. else:
  134. return None
  135.  
  136. def check_diagonals():
  137.  
  138. global game_still_on
  139.  
  140. diagonal_1 = game_board[0] == game_board[4] == game_board[8] != "-"
  141. diagonal_2 = game_board[2] == game_board[4] == game_board[6] != "-"
  142.  
  143. if diagonal_1 or diagonal_2:
  144. game_still_on = False
  145. # Return the winner
  146. if diagonal_1:
  147. return game_board[0]
  148. elif diagonal_2:
  149. return game_board[2]
  150. else:
  151. return None
  152. #check tie
  153. def check_for_tie():
  154.  
  155. global game_still_on
  156.  
  157. if "-" not in game_board:
  158. game_still_on = False
  159. return True
  160. else:
  161. return False
  162.  
  163. # Flip the current player
  164. def flip_player():
  165.  
  166. global current_player
  167.  
  168. if current_player == "X":
  169. current_player = "O"
  170. elif current_player == "O":
  171. current_player = "X"
  172. #play game
  173. play_game()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement