Как можно причесать/оптимизировать данный код?
Игра орел решка. Мой уровень знаний: ну вы сами видите чем я занимаюсь :) В общей сложности часов 6 потратил на поиск информации и попытки реализовать счетчик и заставить его корректно выводить данные в конце раунда. Что и как можно было сделать лучше?
import random
coin = ["Head", "Tail"]
invitations = ["Let's play, head or tail?", "Your choice, Head or
Tail?"]
player_prefix = "PLAYER: "
bot_prefix = "BOT: "
def toss():
print(bot_prefix + "I'm tossing a coin!")
return random.choice(coin)
def guess():
print(bot_prefix + random.choice(invitations))
return input(player_prefix)
class Counter:
def __init__(self):
self._value = 0
def new_value(self):
self._value += 1
return self._value
def display_info(self):
return self.__str__()
def __str__(self):
return self._value
player_score = Counter()
bot_score = Counter()
while True:
player_guess = guess()
coin_toss = toss()
print(bot_prefix + "Your guess is: " + player_guess)
print(bot_prefix + "The result of my toss is: " + coin_toss)
if player_guess.casefold() == coin_toss.casefold():
print("The winner is Player!")
player_score.new_value()
print(f"Player {player_score.display_info()} : {bot_score.display_info()} Bot")
else:
print("The winner is BOT!")
bot_score.new_value()
print(f"Player {player_score.display_info()} : {bot_score.display_info()} Bot")
print(bot_prefix + "Do you want to continue? Y/N?")
user_answer = input(player_prefix)
if user_answer.casefold() == "n" or user_answer.casefold() == "no":
break
Источник: Stack Overflow на русском