def test_is_square_not_empty(self): rows = 9 columns = 9 board = Board(rows, columns) board.create_pieces(PieceFactory(), Color.WHITE) self.assertFalse(board.is_square_empty(0, 0))
def test_is_square_occupied_by_friendly(self): rows = 9 columns = 9 board = Board(rows, columns) board.create_pieces(PieceFactory(), Color.WHITE) self.assertTrue(board.is_square_occupied_by_friendly( 0, 0, Color.WHITE))
def test_get_piece_in_square(self): rows = 9 columns = 9 board = Board(rows, columns) board.create_pieces(PieceFactory(), Color.WHITE) piece = Pawn(Color.WHITE) board.get_grid()[0][0].set_piece(piece) self.assertEqual(board.get_piece_in_square(0, 0), piece)
def test_add_captured(self): rows = 9 columns = 9 board = Board(rows, columns) game = Game(board, PieceFactory()) game.start_game() self.assertEqual([], game.get_captured_by_color(Color.WHITE)) self.assertEqual([], game.get_captured_by_color(Color.BLACK)) pawn = Pawn(Color.BLACK) game.add_captured(Color.WHITE, pawn) self.assertEqual([pawn], game.get_captured_by_color(Color.WHITE)) self.assertEqual([], game.get_captured_by_color(Color.BLACK))
def test_next_turn(self): rows = 9 columns = 9 board = Board(rows, columns) game = Game(board, PieceFactory()) game.start_game() self.assertEqual(1, game.get_turn()) self.assertEqual(Color.WHITE, game.get_current_player()) game.next_turn() self.assertEqual(2, game.get_turn()) self.assertEqual(Color.BLACK, game.get_current_player()) game.next_turn() self.assertEqual(3, game.get_turn()) self.assertEqual(Color.WHITE, game.get_current_player())
from Domain.Exceptions.CoordinatesOutOfBoundsException import CoordinatesOutOfBoundsException from Domain.Exceptions.DestinationSquareOccupiedException import DestinationSquareOccupiedException from Domain.Exceptions.InvalidMovementForPieceException import InvalidMovementForPieceException from Domain.Exceptions.OriginSquareContainsEnemyPieceException import OriginSquareContainsEnemyPieceException from Domain.Exceptions.OriginSquareEmptyException import OriginSquareEmptyException from Domain.Entities.Game import Game from Application.Services.MovePieceService import MovePieceService from Domain.Entities.PieceFactory import PieceFactory from Infrastructure.Clients.CommandLineClient import CommandLineClient ROWS = 9 COLUMNS = 9 CAPTURED_ROW_INDEX = 9 board = Board(ROWS, COLUMNS) piece_factory = PieceFactory() drop_piece_service = DropPieceService() move_piece_service = MovePieceService() move_and_capture_piece_service = MoveAndCapturePieceService() validate_coordinates_service = ValidateCoordinatesService() command_line_client = CommandLineClient(Game(board, piece_factory)) command_line_client.get_game().start_game() while not command_line_client.get_game().is_finished(): command_line_client.show_game_state() color = command_line_client.get_game().get_current_player() captured = None while True: try: