Beispiel #1
0
class GameService:
    def __init__(self):
        self.__game_dao = GameDao()
        self.__board = 0
        self.__dice = Dice()

    def initialize_board(self, board_size, players_list):

        self.__game_dao.set_ladders()
        self.__game_dao.set_snakes()
        self.__board = Board(board_size)

        for player in players_list:
            self.__game_dao.add_player(player)

    def play_game(self):

        while True:

            dice_num = self.__dice.roll_dice()
            player = self.__game_dao.get_player()

            print(f'{player.get_name()} turn, dice number: {dice_num}')
            position = player.get_position()
            new_position = dice_num + position
            if new_position > self.__board.get_size():
                self.__game_dao.add_player(player)
                continue
            if new_position == self.__board.get_size():
                print(f'{player.get_name()} wins')
                player.set_is_won(True)
                break

            if self.__game_dao.get_snakes(new_position) != None:
                new_position = self.__game_dao.get_snakes(new_position)
                print(f'Snake bits, new position is {new_position}')
            elif self.__game_dao.get_ladders(new_position) != None:
                new_position = self.__game_dao.get_ladders(new_position)
                print(f'Ladder Climbed, new position is {new_position}')
            else:
                print(f'new position is {new_position}')

            player.set_position(new_position)
            self.__game_dao.add_player(player)