class WordsmushGameDriver(object): def __init__(self): self.player1, self.player2 = self.get_players() self.game = WordsmushGame(self.player1, self.player2) turn_player = cycle([self.player1, self.player2]) while not self.game.is_game_over(): player = next(turn_player) self.get_turn(player) if self.game.resigned: winner = self.player1 if self.game.resigned == self.player2 else self.player2 loser = self.game.resigned self.game_over(winner, loser) elif self.game.scores[self.player1] == self.game.scores[self.player2]: self.game_draw() else: (winner, winner_score), (loser, loser_score) = \ sorted(self.game.scores.items(), key=lambda i: -i[1]) self.game_over(winner, loser) def get_turn(self, player): player.take_turn(self.game)
def get_board(letters): """Creates a board from a list of letters""" if not isinstance(letters, Iterator): letters = iter(letters) player1 = WordsmushPlayer() player2 = WordsmushPlayer() game = WordsmushGame(player1, player2, board_width=5, board_height=5) board = ([[WordsmushTile(game, x, y, next(letters)) for x in range(game.board_width)] for y in range(game.board_height)]) game.board = board return game