def enter_player_piece(self): """Show selection buttons and return [player_piece, ai_piece].""" render_text("Do you want to be white or black?", colours.text, colours.bg1, center=(centerx, int(height / 2)), border=2, bcolour=colours.bg1) whitebtn = render_text("White", colours.text, colours.bg1, center=(centerx - 60, centery + 40), border=4) blackbtn = render_text("Black", colours.text, colours.bg1, center=(centerx + 60, centery + 40), border=4) while True: self.check_for_quit() button = self.get_button_click(whitebtn, blackbtn) if button == whitebtn: return [Piece(white), Piece(black)] elif button == blackbtn: return [Piece(black), Piece(white)] self.mainclock_tick()
def displayPossiblePieces(): """Display all possible pieces, mainly for testing purpose >>> Game.displayPossiblePieces() """ for c in PIECES: print(Piece(c)) print('--------------')
def make_move(self, loc): """Place new piece at `loc`, return list of captured locations.""" captured = board.get_captured(self.piece, loc) piece = Piece(self.piece.colour, board, loc) board.animate_move(captured, piece) for loc in captured: board[loc].flip() board.draw() reversi.draw_info() return captured
def get_next_board_positions(board, player): moves, n = get_valid_moves(board, player) boards = [copy.deepcopy(board) for _ in range(0, n)] i = 0 for m in moves: for position in moves[m]: boards[i].update_board( [Piece(m, position, player.color, player.piece_unicode)]) i += 1 return boards
from board import Board, Piece from player import Player from algorithms import best_move, free_knights_evaluation, euclidean_distance_evaluation, play if __name__ == "__main__": """ WK : White Knight BK : Black Knight """ p1_tokens = [ Piece("WK1", (2, 2), "white", unichr(9822)), Piece("WK2", (3, 3), "white", unichr(9822)) ] p2_tokens = [ Piece("BK1", (2, 3), "black", unichr(9816)), Piece("BK2", (3, 2), "black", unichr(9816)) ] p1 = Player(p1_tokens, "PLAYER1") p2 = Player(p2_tokens, "PLAYER2") pieces = p1_tokens + p2_tokens players = [p1, p2] b = Board(pieces, 6, players) def test_cases(test): """
def __init__(self): self.game = Game() self.Pieces = [Piece(elt) for elt in PIECES]
def drawPiece(color, name, position): square = grid[position[0]][position[1]] square.piece = Piece(color=color, name=name) square.filled = True
def next(self): """return the next piece """ num = self.rng.randint(0, len(PIECES) - 1) return (Piece(PIECES[num]), num)