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)
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))
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))
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)