Задать вопрос
@bakeryolo

Построение игры в монетку с вариативностью и возможностью выбора на Python?

Приветствую, в процессе обучения нашел референс: 6751693b9636e238000181.png
И решил, а что если:
1) Будет построение выбора (Орел/Решка)
2)Будет возврат к выбору после каждого круга
результат вышел такой:
import random
HEADS = "Орел"
TAILS = "Решка"
COIN_VALUES = ["Орел","Решка"]
n = str(input("Ваша ставка,(Минимальная ставка 1) : "))
y = str(input("о/р "))
def flip_coin():
    return random.choice(COIN_VALUES)
def coin_flip(starting_balance: int, min_bet: int,):
    current_balance = starting_balance
    starting_balance=100
    min_bet=1
    current_bet = n
    while current_balance > 0:
        print("======")
        print(f"Текущий баланс: {current_balance}", f" Текущая ставка: {current_bet}")
        flipped_coin_value = flip_coin()
        print(f"flipped_coin_value: {flipped_coin_value}")
        if (COIN_VALUES=="Орел") and (y=="о" or y=="О"):
            print("You wim")
            return print(input(y))
        else:
            print("You lose")
            return print(input(y))
        if (COIN_VALUES=="Решка") and (y=="р" or y=="Р" ):
            print("You win")
            return print(input(y))
        else:
            (print("You lose"))
            return print(input(y))


print(coin_flip(starting_balance=100,min_bet=1))

Очевидно, не рабочий, прошу не выдать готовое решение, а подтолкнуть к правильному построению,если конечно это не затруднит
  • Вопрос задан
  • 162 просмотра
Подписаться 1 Простой 6 комментариев
Решения вопроса 2
Vindicar
@Vindicar
RTFM!
Ошибки две. Первая, вместо двух отдельных if тебе нужна цепочка if-elif-else, а лучше - одна пара if-else с правильно написанным условием победы. Второе, ввод догадки пользователя должен быть ПЕРЕД проверкой, а не после и не внутри неё.
Ну и пока что нет изменения баланса, но это ты уже допишешь.
Ответ написан
Комментировать
@bakeryolo Автор вопроса
Допилил, вдруг кому будет интересно
import random

COIN_VALUES = ["Орел","Решка"]

def flip_coin():
    return random.choice(COIN_VALUES)

def play_game(starting_balance):
    current_balance = starting_balance
    min_bet=1

    while True:
        while current_balance > 0:
            while True:
                try:
                    n = int(input("Ваша ставка : "))
                    if n < min_bet:
                        print("Минимальная ставка - 1.")
                        continue
                    if n > current_balance:
                        print("Недостаточно средств для этой ставки.")
                        continue
                    break
                except ValueError:
                    print("Неверный ввод. Введите число.")
            while True:
                y = input("о/р (орёл/решка): ").lower()
                if y in ["о","р"]:
                    break
                print("Неверный ввод. Введите 'о' или 'р'.")

            print("========")
            current_balance -= n
            print(f"Текущий баланс: {current_balance}", f" Текущая ставка: {n}")
            flipped_coin_value = flip_coin()
            print(f"Выпадает: {flipped_coin_value}")

            if (y=="о" and flipped_coin_value=="Орел") or (y=="р" and flipped_coin_value=="Решка"):
                win = n * 2
                current_balance += win
                print(f"Ваш Выйгрыш: {win},баланс: {current_balance}")
            else:
                current_balance -= n
                print(f"Вы проиграли: {n}, баланс: {current_balance}")
        while True:
            play_again = input("Хотите начать новую игру? (да/нет): ").lower()
            if play_again in ["да", "нет"]:
                break
            print("Неверный ввод. Введите 'да' или 'нет'.")

        if play_again == "да":
            current_balance = starting_balance
            print("Новая игра начата! Балан: 100")
        else:
            break
play_game(100)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы