Advertisement
Guest User

Untitled

a guest
Aug 20th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.34 KB | None | 0 0
  1. import copy
  2.  
  3. class TicTacToeBoard(object):
  4.  
  5.     def __init__(self, board, turn, number):
  6.  
  7.         self.board = board
  8.         self.children = []
  9.  
  10.         self.turn = turn
  11.         self.number = number
  12.  
  13.  
  14.     def CalcWin(self):
  15.  
  16.         # Check rows
  17.         for row in self.board:
  18.             if (row[0] == row[1]) and (row[1] == row[2]):
  19.                 if (row[0] == self.turn):
  20.                     return True
  21.                 elif (row[0] == self.tick(self.turn)):
  22.                     return False
  23.  
  24.         # Check columns
  25.         for column in range(3):
  26.             if ((self.board[0][column] == self.board[1][column]) and (self.board[1][column] == self.board[2][column])):
  27.  
  28.                 if (self.board[0][column] == self.turn):
  29.                     return True
  30.                 elif (self.board[0][column] == self.tick(self.turn)):
  31.                     return False
  32.  
  33.         # Check diagonals
  34.         if ((self.board[0][0] == self.board[1][1]) and (self.board[1][1] == self.board[2][2])):
  35.  
  36.             if (self.board[1][1] == self.turn):
  37.                 return True
  38.             elif (self.board[1][1] == self.tick(self.turn)):
  39.                 return False
  40.  
  41.         if ((self.board[0][2] == self.board[1][1]) and (self.board[1][1] == self.board[2][0])):
  42.  
  43.             if (self.board[1][1] == self.turn):
  44.                 return True
  45.             elif (self.board[1][1] == self.tick(self.turn)):
  46.                 return False
  47.  
  48.         return None
  49.  
  50.     def CreateChildren(self, turn):
  51.         if (self.turn == turn):
  52.             newBoardList = []
  53.  
  54.             for row in range(3):
  55.                 for i in range(3):
  56.                     if (self.board[row][i] == 2):
  57.                         newBoard = copy.deepcopy(self.board[:])
  58.                         newBoard[row][i] = turn
  59.  
  60.                         if newBoard not in newBoardList:
  61.                             newBoardList.append(TicTacToeBoard(newBoard, self.tick(self.turn), self.number + 1))
  62.  
  63.             return newBoardList
  64.  
  65.     def tick(self, n):
  66.  
  67.         return (abs(n - 1))
  68.  
  69. list = [
  70. [2,2,2],
  71. [2,2,2],
  72. [2,2,2]
  73. ]
  74.  
  75.  
  76.  
  77.  
  78.  
  79. object = TicTacToeBoard(list, 1, 0)
  80. #print(object.CalcWin())
  81.  
  82. object.children = object.CreateChildren(1)
  83.  
  84.  
  85.  
  86. for item in object.children:
  87.     item.children = item.CreateChildren(0)
  88.     for child in item.children:
  89.         print(child.board)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement