Игра «Последнюю не брать!». Python

def display_balls(balls):
    return " ".join(["-О-"] * balls)

def play_game():
    balls = 21  # Начальное количество "шариков"
    
    print("Добро пожаловать в игру '21 шарик'!")
    print("Правила: вы можете взять 1 или 2 шарика за ход. Проигрывает тот, кто заберет последний шарик.")
    
    while True:
    
        if balls == 1:
            print(f"Остался последний шарик и значит вы проиграли игру. {display_balls(balls)}")
            break
        
        print(f"Осталось {display_balls(balls)}")
        player_choice = input("Возьмите 1 или 2 шарика: ")
        
        if player_choice not in ("1", "2"):
            print("Пожалуйста, выберите 1 или 2 шарика.")
            continue
        
        player_choice = int(player_choice)
        
        if player_choice >= balls:
            print("Вы не можете взять столько шариков. Пожалуйста, выберите 1 или 2.")
            continue
        
        balls -= player_choice
        
        if balls == 0:
            print(f"Вы забрали последний шарик и проиграли игру. {display_balls(balls)}")
            break
        
        # Компьютер выбирает оптимальное количество шариков
        computer_choice = (balls - 1) % 3
        if computer_choice == 0:
            computer_choice = 1
        print(f"Компьютер взял {computer_choice} шарика(ов). {display_balls(balls)}")
        balls -= computer_choice
        
        if balls == 0:
            print(f"Компьютер забрал последний шарик и вы выиграли игру. {display_balls(balls)}")
            break

if __name__ == "__main__":
    play_game()

Last modified: Friday, 10 November 2023, 1:53 AM