class TestBoardBase(unittest.TestCase): def setUp(self): self.board = Board() def add_piece(self, colour, location): self.add_many_pieces(1, colour, location) def add_many_pieces(self, number_of_pieces, colour, location): self.board.add_many_pieces(number_of_pieces, colour, location) def assert_piece_at(self, piece_location, move): piece = self.board.get_piece_at(piece_location) die_roll = move[0] expect_move_possible = move[1] self.assertEqual(self.board.is_move_possible(piece, die_roll), expect_move_possible) def assert_location(self, location, pieces_count): self.assertEqual(len(self.board.pieces_at(location)), pieces_count) def move_piece_at(self, location, roll): piece_to_move = self.board.get_piece_at(location) self.board.move_piece(piece_to_move, roll)
import json from src.board import Board from src.colour import Colour from src.strategy_factory import StrategyFactory if __name__ == '__main__': s = input('Paste move info:\n') data = json.loads(s) strategy = StrategyFactory.create_by_name(data['strategy']) board = Board() for location, value in data['board'].items(): board.add_many_pieces(value['count'], Colour.load(value['colour']), int(location)) strategy.move( board=board, colour=Colour.load(data['colour_to_move']), dice_roll=data['dice_roll'], make_move=lambda l, r: board.move_piece(board.get_piece_at(l), r), opponents_activity={}) board.print_board()