示例#1
0
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)
示例#2
0
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()