Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import copy
- class TicTacToeBoard(object):
- def __init__(self, board, turn, number):
- self.board = board
- self.children = []
- self.turn = turn
- self.number = number
- def CalcWin(self):
- # Check rows
- for row in self.board:
- if (row[0] == row[1]) and (row[1] == row[2]):
- if (row[0] == self.turn):
- return True
- elif (row[0] == self.tick(self.turn)):
- return False
- # Check columns
- for column in range(3):
- if ((self.board[0][column] == self.board[1][column]) and (self.board[1][column] == self.board[2][column])):
- if (self.board[0][column] == self.turn):
- return True
- elif (self.board[0][column] == self.tick(self.turn)):
- return False
- # Check diagonals
- if ((self.board[0][0] == self.board[1][1]) and (self.board[1][1] == self.board[2][2])):
- if (self.board[1][1] == self.turn):
- return True
- elif (self.board[1][1] == self.tick(self.turn)):
- return False
- if ((self.board[0][2] == self.board[1][1]) and (self.board[1][1] == self.board[2][0])):
- if (self.board[1][1] == self.turn):
- return True
- elif (self.board[1][1] == self.tick(self.turn)):
- return False
- return None
- def CreateChildren(self, turn):
- if (self.turn == turn):
- newBoardList = []
- for row in range(3):
- for i in range(3):
- if (self.board[row][i] == 2):
- newBoard = copy.deepcopy(self.board[:])
- newBoard[row][i] = turn
- if newBoard not in newBoardList:
- newBoardList.append(TicTacToeBoard(newBoard, self.tick(self.turn), self.number + 1))
- return newBoardList
- def tick(self, n):
- return (abs(n - 1))
- list = [
- [2,2,2],
- [2,2,2],
- [2,2,2]
- ]
- object = TicTacToeBoard(list, 1, 0)
- #print(object.CalcWin())
- object.children = object.CreateChildren(1)
- for item in object.children:
- item.children = item.CreateChildren(0)
- for child in item.children:
- print(child.board)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement