Beispiel #1
0
 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()
Beispiel #2
0
 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()
Beispiel #3
0
def test_score_counter():
    r = Records(2, [0, 0], Board(2))
    r.plays_used = [[0, 0, "white"], [0, 1, "black"], [1, 1, "white"]]
    assert (r.score_counter("white") == 2)
    assert (r.score_counter("black") == 1)
    assert (r.score_counter("red") == 0)