class DiceGame(object): def __init__(self, player1, player2): # Private variables (Start "__") self.__players = [] self.__players.append(player1) self.__players.append(player2) self.__the_dices = Dice() self.__random_value = self.__the_dices.get_total_number() class_name = self.__class__.__name__ print(""" ************************ {class_name}, created ************************ """.format(class_name=class_name)) def info_game(self): return """ ******************************* Game Started {player} began to edge game. Players 1. Player = {player1} 2. Player = {player2} Random Value {random_value} ******************************* """.format(player=self.__players[0], player1=self.__players[0], player2=self.__players[1], random_value=self.__random_value) def get_players(self): return self.__players def select_player(self): random_player = [] random_player.append(random.choice(self.__players)) list_difference = list(set(self.__players) - set(random_player)) random_player += list_difference return random_player def start_game(self): self.__players = self.select_player() self.info_game() def get_winner_player(self): player1_diff = abs(self.__random_value - self.__players[0].get_sum_of_dices()) player2_diff = abs(self.__random_value - self.__players[1].get_sum_of_dices()) if player1_diff == player2_diff: return None return self.__players[0] if player1_diff < player2_diff else self.__players[1] def game_report(self): self.__winner_player = self.get_winner_player() print(""" ***************************** Winner {winner_player} Random Value {random_value} Player's Value {player1} = {player1_value} {player2} = {player2_value} ***************************** """.format(winner_player=self.__winner_player if self.__winner_player else "Draw", random_value=self.__random_value, player1=self.__players[0].__str__(), player2=self.__players[1].__str__(), player1_value=self.__players[0].get_sum_of_dices(), player2_value=self.__players[1].get_sum_of_dices())) @staticmethod def __str__(): return "Dice Game" def __del__(self): class_name = self.__class__.__name__ print(""" ************************ {class_name}, deleted ************************ """.format(class_name=class_name))
def throw_dices(self): self.__sum_of_dices = Dice.get_total_number() return self.__sum_of_dices