def start_computer_computer_game(self): printBoard = True tie = True # game loop while(True): if printBoard: self.print_game_board() count = 0 for y in range(self.WIDTH): if self.board[0][y] == "X" or self.board[0][y] == "O": count += 1 isFull = (count==self.WIDTH) if isFull: break tempBoard = copy.deepcopy(self.board) if self.activePlayer == 0: if self.FIRST: colChoice = "3" self.FIRST = False else: st = time.time() colChoice = startPar(tempBoard, self.activePlayer) et = time.time() else: if self.FIRST: colChoice = "3" self.FIRST = False else: st = time.time() colChoice = startSeq(tempBoard, self.activePlayer) et = time.time() if colChoice == "k": sys.exit(0) elif colChoice not in [str(x) for x in range(self.WIDTH)]: print "[ERROR] AI player #" + str(self.activePlayer) + " did not choose a valid column" printBoard = False continue else: moveSuccess = self.make_move(int(colChoice)) if moveSuccess: if gameOver(self.board, self.activePlayer): self.print_winner(self.activePlayer) tie = False break self.activePlayer = (self.activePlayer + 1) % 2 printBoard = True else: print "[ERROR] AI player #" + str(self.activePlayer) + " did not make a valid move, column full" printBoard = False continue #final game board self.print_game_board() if tie: print "GAME WAS A TIE\n"
def start_computer_computer_game(self): printBoard = True tie = True # game loop while (True): if printBoard: self.print_game_board() count = 0 for y in range(self.WIDTH): if self.board[0][y] == "X" or self.board[0][y] == "O": count += 1 isFull = (count == self.WIDTH) if isFull: break tempBoard = copy.deepcopy(self.board) if self.activePlayer == 0: if self.FIRST: colChoice = "3" self.FIRST = False else: st = time.time() colChoice = startPar(tempBoard, self.activePlayer) et = time.time() else: if self.FIRST: colChoice = "3" self.FIRST = False else: st = time.time() colChoice = startSeq(tempBoard, self.activePlayer) et = time.time() if colChoice == "k": sys.exit(0) elif colChoice not in [str(x) for x in range(self.WIDTH)]: print "[ERROR] AI player #" + str( self.activePlayer) + " did not choose a valid column" printBoard = False continue else: moveSuccess = self.make_move(int(colChoice)) if moveSuccess: if gameOver(self.board, self.activePlayer): self.print_winner(self.activePlayer) tie = False break self.activePlayer = (self.activePlayer + 1) % 2 printBoard = True else: print "[ERROR] AI player #" + str( self.activePlayer ) + " did not make a valid move, column full" printBoard = False continue #final game board self.print_game_board() if tie: print "GAME WAS A TIE\n"
def start_human_computer_game(self, is_parallel): printBoard = True tie = True # game loop while (True): if printBoard: self.print_game_board() count = 0 for y in range(self.WIDTH): if self.board[0][y] == "X" or self.board[0][y] == "O": count += 1 isFull = (count == self.WIDTH) if isFull: break if self.activePlayer == 0: print "Enter column number to drop piece" print "Player 1 (X) >> " colChoice = getch() self.FIRST = False else: print "Player 2 (O) >> " if self.FIRST: colChoice = "3" self.FIRST = False else: tempBoard = copy.deepcopy(self.board) st = time.time() if is_parallel: colChoice = startPar(tempBoard, self.activePlayer) else: colChoice = startSeq(tempBoard, self.activePlayer) et = time.time() print "[INFO] Time taken: " + str(et - st) print "[INFO] AI is playing column " + colChoice if colChoice == "k": sys.exit(0) elif colChoice not in [str(x) for x in range(self.WIDTH)]: print "You must enter a valid column" printBoard = False continue else: moveSuccess = self.make_move(int(colChoice)) if moveSuccess: if gameOver(self.board, self.activePlayer): self.print_winner(self.activePlayer) tie = False break self.activePlayer = (self.activePlayer + 1) % 2 printBoard = True else: print "Invalid move, column full" printBoard = False continue self.print_game_board() if tie: print "GAME WAS A TIE\n"
def start_human_computer_game(self, is_parallel): printBoard = True tie = True # game loop while(True): if printBoard: self.print_game_board() count = 0 for y in range(self.WIDTH): if self.board[0][y] == "X" or self.board[0][y] == "O": count += 1 isFull = (count==self.WIDTH) if isFull: break if self.activePlayer == 0: print "Enter column number to drop piece" print "Player 1 (X) >> " colChoice = getch() self.FIRST = False else: print "Player 2 (O) >> " if self.FIRST: colChoice = "3" self.FIRST = False else: tempBoard = copy.deepcopy(self.board) st = time.time() if is_parallel: colChoice = startPar(tempBoard, self.activePlayer) else: colChoice = startSeq(tempBoard, self.activePlayer) et = time.time() print "[INFO] Time taken: " + str(et - st) print "[INFO] AI is playing column " + colChoice if colChoice == "k": sys.exit(0) elif colChoice not in [str(x) for x in range(self.WIDTH)]: print "You must enter a valid column" printBoard = False continue else: moveSuccess = self.make_move(int(colChoice)) if moveSuccess: if gameOver(self.board, self.activePlayer): self.print_winner(self.activePlayer) tie = False break self.activePlayer = (self.activePlayer + 1) % 2 printBoard = True else: print "Invalid move, column full" printBoard = False continue self.print_game_board() if tie: print "GAME WAS A TIE\n"