def test_is_winner(): r = Records(2, [0, 0], Board(2)) r.plays_used = [[0, 0, "white"]] r.total_pieces = 2 assert (r.is_winner() is False) r.plays_used = [[0, 0, "white"], [0, 1, "black"]] assert (r.is_winner() is True)
def board_click(self, x, y): x = self.correct_coordinate(x) y = self.correct_coordinate(y) proposed_move = [x, y] # If click it outside of the boundaries of the board, do nothing. if x == -1 or y == -1: pass else: records = Records(self.size, proposed_move, self) records_check = records.record_validation(proposed_move) if records_check is False: pass else: self.draw_piece(x, y, self.player_color(self.color)) for entry in records.will_flip: x_coord = entry[0] y_coord = entry[1] self.draw_piece(x_coord, y_coord, self.color) print("End of {}'s turn!".format(self.color)) # If no more open squares, will announce the winner. if records.is_winner() is True: print(records.winner_is(records.score_counter("black"), records.score_counter("white"))) self.black_score = records.score_counter("black") self.winner_declared = True turtle.bye() else: print("Current score - Black: {}, White: {}".format (records.score_counter("black"), records.score_counter("white"))) self.ai_move()
def ai_move(self): wht_default = Records(self.size, [0, 0], self) # If there are no white moves available after a valid black turn. if wht_default.turns_avail is False: print("No white moves available!") wht_default.add_skipped_turn() self.player_color(self.color) blk_test = Records(self.size, [0, 0], self) # If no more possible black moves, declare a winner. if blk_test.turns_avail is False: print("No black moves available!") print(blk_test.winner_is(blk_test.score_counter("black"), blk_test.score_counter("white"))) self.black_score = blk_test.score_counter("black") self.winner_declared = True turtle.bye() else: to_play = wht_default.best_move wht_default.play_ai_move(to_play) print("White is thinking.....") print("White plays coordinate {}".format(to_play[:2])) self.comp_draw_piece(to_play) for entry in wht_default.will_flip: x_coord = entry[0] y_coord = entry[1] self.draw_piece(x_coord, y_coord, self.color) # If no more open squares after white plays, declare a winner. if wht_default.is_winner() is True: print(wht_default.winner_is(wht_default.score_counter("black"), wht_default.score_counter("white"))) self.black_score = wht_default.score_counter("black") self.winner_declared = True turtle.bye() else: print("Current score - Black: {}, White: {}".format (wht_default.score_counter("black"), wht_default.score_counter("white"))) blk_test = Records(self.size, [0, 0], self) # After white goes, determine if there is a possible black move. if blk_test.turns_avail is False: print("No black moves available!") blk_test.add_skipped_turn() self.player_color(self.color) white_test = Records(self.size, [0, 0], self) # If no possible black or white move, declare a winner. if white_test.turns_avail is False: print("No white moves available!") print(white_test.winner_is(white_test.score_counter ("black"), white_test.score_counter("white"))) self.black_score = white_test.score_counter("black") self.winner_declared = True turtle.bye() else: self.ai_move()