예제 #1
0
 def test_check_return_border_fields_correctly(self):
     player = AbstractPlayer()
     player.setTypeOfAssignedMark(O_MARK)
     player.setStateOfGameField(
        np.array([['X', 'O', ' ', ' ', 'X'], 
             ['X', 'O', ' ', ' ', 'X'], 
             ['X', 'O', ' ', ' ', 'X'], 
             ['X', 'O', ' ', ' ', 'X'], 
             ['X', 'O', ' ', ' ', 'X']]),
     )
     border_fields = list(player.allPossibleBorderFields())
     expected = [(0, 1, O_MARK),(0, 2, EMPTY_FIELD), (0, 3, EMPTY_FIELD), (4, 1, O_MARK), (4,2, EMPTY_FIELD), (4,3, EMPTY_FIELD)]
     self.assertSequenceEqual(border_fields, expected)
예제 #2
0
 def test_check_player_won_row(self):
     player = AbstractPlayer()
     player.setStateOfGameField(
         np.array([['X', 'O', 'O', ' ', 'X'], ['O', 'O', 'O', 'O', 'O'],
                   ['O', 'O', ' ', ' ', 'O'], [' ', ' ', ' ', ' ', ' '],
                   ['X', 'O', 'O', ' ', 'X']]), )
     self.assertTrue(
         player.check_if_player_won_row(player.gameField, O_MARK))
     self.assertFalse(
         player.check_if_player_won_row(player.gameField, X_MARK))
예제 #3
0
 def test_simulate_state_after_move_push_right_3(self):
     player = AbstractPlayer()
     player.setTypeOfAssignedMark(X_MARK)
     player.setStateOfGameField(
        np.array([
             [' ', ' ', ' ', ' ', ' '], 
             [' ', ' ', ' ', ' ', ' '], 
             ['X', 'O', 'X', 'X', 'O'], 
             [' ', ' ', ' ', ' ', ' '], 
             [' ', ' ', ' ', ' ', ' ']]))
     move = Move(X_MARK, 2, 0, PUSH_RIGHT)
     expected = np.array([
             [' ', ' ', ' ', ' ', ' '], 
             [' ', ' ', ' ', ' ', ' '], 
             ['O', 'X', 'X', 'O', 'X'], 
             [' ', ' ', ' ', ' ', ' '], 
             [' ', ' ', ' ', ' ', ' ']])
     new_state = player.simulate_state_after_move(player.gameField, move)
     self.assertTrue(np.array_equal(expected, new_state))
예제 #4
0
 def test_get_position_based_on_coordinates(self):
     player = AbstractPlayer()
     player.setTypeOfAssignedMark(X_MARK)
     player.setStateOfGameField(
        np.array([
             ['X', 'O', 'O', ' ', 'X'], 
             ['O', 'O', ' ', ' ', 'O'], 
             ['O', 'O', ' ', ' ', 'O'], 
             [' ', 'O', ' ', ' ', ' '], 
             ['X', 'O', 'O', ' ', 'X']]),
     )
     border_fields = list(player.allPossibleBorderFields())
     field_position = list(map(lambda field : player.getPositionBasedOnCoordinates(field[0], field[1]),
                         border_fields))
     zipped = list(zip(border_fields, field_position))
     expected = [((0, 0, X_MARK), BorderFieldPossibleMoves.LEFT_TOP_CORNER),
                 ((0, 3, EMPTY_FIELD), BorderFieldPossibleMoves.TOP_ROW),
                 ((0, 4, X_MARK), BorderFieldPossibleMoves.RIGHT_TOP_CORNER),
                 ((3, 0, EMPTY_FIELD), BorderFieldPossibleMoves.LEFT_COLUMN),
                 ((3, 4, EMPTY_FIELD), BorderFieldPossibleMoves.RIGHT_COLUMN),
                 ((4, 0, X_MARK), BorderFieldPossibleMoves.LEFT_BOTTOM_CORNER),
                 ((4, 3, EMPTY_FIELD), BorderFieldPossibleMoves.BOTTOM_ROW),
                 ((4, 4, X_MARK), BorderFieldPossibleMoves.RIGHT_BOTTOM_CORNER)]
     self.assertSequenceEqual(zipped, expected)