Exemple #1
0
    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))
Exemple #2
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))
Exemple #3
0
    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)
Exemple #4
0
    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))
Exemple #5
0
    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())
Exemple #6
0
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: