Example #1
0
 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)
Example #2
0
 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)])
Example #3
0
    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))))