Quantcast
Channel: VBForums - Game Demos
Viewing all articles
Browse latest Browse all 56

[Python] Tic-Tac-Toe

$
0
0
This is just the source code.

Notes:
The rows and columns are 0 based which means that 00 is the top-left piece.

Source:
Python Code:
  1. cells = [" ",
  2.     " ",
  3.     " ",
  4.     " ",
  5.     " ",
  6.     " ",
  7.     " ",
  8.     " ",
  9.     " "]
  10.    
  11. turn = "X"
  12.    
  13. def set_cell(x, y):
  14.     cell = None
  15.     if x == 0:
  16.         if y == 0:
  17.             cell = 0
  18.         elif y == 1:
  19.             cell = 3
  20.         elif y == 2:
  21.             cell = 6
  22.     elif x == 1:
  23.         if y == 0:
  24.             cell = 1
  25.         elif y == 1:
  26.             cell = 4
  27.         elif y == 2:
  28.             cell = 7
  29.     elif x == 2:
  30.         if y == 0:
  31.             cell = 2
  32.         elif y == 1:
  33.             cell = 5
  34.         elif y == 2:
  35.             cell = 8
  36.        
  37.     return int(cell)
  38.            
  39. def set_turn(change):
  40.     if change == "X":
  41.         change = "O"
  42.     else:
  43.         change = "X"
  44.        
  45.     return change
  46.    
  47. def get_turn(turn):
  48.     if turn == "X":
  49.         print ("It is player1's turn.")
  50.     else:
  51.         print ("It is player2's turn.")
  52.        
  53. def draw_grid(cell1, cell2, cell3, cell4, cell5, cell6, cell7, cell8, cell9):
  54.     print (" " + cell1 + " | " + cell2 + " | " + cell3 + " ")
  55.     print ("---|---|---")
  56.     print (" " + cell4 + " | " + cell5 + " | " + cell6 + " ")
  57.     print ("---|---|---")
  58.     print (" " + cell7 + " | " + cell8 + " | " + cell9 + " ")
  59.    
  60. def instructions():
  61.     print ("To play, simply type the column followed by the row.")
  62.     print ("For example, if I wanted to play the top-middle piece, I would enter: 10")
  63.     print ("To find out who's turn it is, simply type: t")
  64.    
  65. def check_win():
  66.  
  67.     #Player1 - Horizontal
  68.     if cells[0] == "X" and cells[1] == "X" and cells[2] == "X":
  69.         print ("Player1 wins")
  70.         return True
  71.     elif cells[3] == "X" and cells[4] == "X" and cells[5] == "X":
  72.         print ("Player1 wins")
  73.         return True
  74.     elif cells[6] == "X" and cells[7] == "X" and cells[8] == "X":
  75.         print ("Player1 wins")
  76.         return True
  77.     #Player1 - Vertical
  78.     elif cells[0] == "X" and cells[3] == "X" and cells[6] == "X":
  79.         print ("Player1 wins")
  80.         return True
  81.     elif cells[1] == "X" and cells[4] == "X" and cells[7] == "X":
  82.         print ("Player1 wins")
  83.         return True
  84.     elif cells[2] == "X" and cells[5] == "X" and cells[8] == "X":
  85.         print ("Player1 wins")
  86.         return True
  87.        
  88.     #Player1 - Diagonal
  89.     elif cells[0] == "X" and cells[4] == "X" and cells[8] == "X":
  90.         print ("Player1 wins")
  91.         return True
  92.     elif cells[2] == "X" and cells[4] == "X" and cells[6] == "X":
  93.         print ("Player1 wins")
  94.         return True
  95.        
  96.     #Player2 - Horizontal
  97.     elif cells[0] == "O" and cells[1] == "O" and cells[2] == "O":
  98.         print ("Player1 wins")
  99.         return True
  100.     elif cells[3] == "O" and cells[4] == "O" and cells[5] == "O":
  101.         print ("Player1 wins")
  102.         return True
  103.     elif cells[6] == "O" and cells[7] == "O" and cells[8] == "O":
  104.         print ("Player1 wins")
  105.         return True
  106.     #Player2 - Vertical
  107.     elif cells[0] == "O" and cells[3] == "O" and cells[6] == "O":
  108.         print ("Player1 wins")
  109.         return True
  110.     elif cells[1] == "O" and cells[4] == "O" and cells[7] == "O":
  111.         print ("Player1 wins")
  112.         return True
  113.     elif cells[2] == "O" and cells[5] == "O" and cells[8] == "O":
  114.         print ("Player1 wins")
  115.         return True
  116.        
  117.     #Player2 - Diagonal
  118.     elif cells[0] == "O" and cells[4] == "O" and cells[8] == "O":
  119.         print ("Player1 wins")
  120.         return True
  121.     elif cells[2] == "O" and cells[4] == "O" and cells[6] == "O":
  122.         print ("Player1 wins")
  123.         return True
  124.    
  125.     #No winners...
  126.     else:
  127.        
  128.         blank = False
  129.         for itms in cells:
  130.             if itms == " ":
  131.                 blank = True
  132.    
  133.         if blank == False:
  134.             return True
  135.         else:
  136.             return False
  137.    
  138.  
  139. def set_cells():
  140.     return [" ", " ", " ", " ", " ", " ", " ", " ", " "]
  141.    
  142. def reset_turn():
  143.     return "X"
  144.    
  145. def new_game():
  146.     turn = reset_turn()
  147.     cells = set_cells()
  148.     instructions()
  149.    
  150.     return [turn, cells]
  151.    
  152. new_game()
  153. while True:
  154.     response = input()
  155.     if response == "t":
  156.         get_turn(turn)
  157.     else:
  158.         cell = set_cell(int(response[0]), int(response[1]))
  159.        
  160.         cells[cell] = turn
  161.        
  162.         draw_grid(cells[0], cells[1], cells[2], cells[3], cells[4], cells[5], cells[6], cells[7], cells[8])
  163.        
  164.         win = check_win()
  165.         if win == True:
  166.             end = new_game()
  167.             turn = end[0]
  168.             cells = end[1]
  169.         else:
  170.             turn = set_turn(turn)

Viewing all articles
Browse latest Browse all 56

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>