def testWhenAPlayerCannotMoveThenOtherPlayerWins(self): player1 = Player() player2 = Player() rules = MoveRules() game = Game(player1, player2, rules) move = Move.simpleMove(game.board, self.blackPiece(), Coordinate(2,0), Coordinate(3,1)) rules.getMovesForColor = MagicMock(side_effect=[[move], []]) winner = game.play() self.assertEqual(player1, winner)
def testRedMovesAfterBlack(self): player1 = Player() player2 = Player() rules = MoveRules() game = Game(player1, player2, rules) move = Move.simpleMove(game.board, self.blackPiece(), Coordinate(2,0), Coordinate(3,1)) rules.getMovesForColor = MagicMock(side_effect=[[move], []]) game.play() rules.getMovesForColor.assert_has_calls([call(Color.BLACK, game.board), call(Color.RED, game.board)])
def getSimpleMoves(board, piece, coordinate, coordProducer): isValid = lambda c: board.isValidPosition(c) and board[c] is None toMove = lambda c: Move.simpleMove(board, piece, coordinate, c) return list(map(toMove, filter(isValid, coordProducer(coordinate))))