@AnKus

Как корректно исправить код игры Рулетка на Python?

Добрый день. Есть такой код (простая пока игра в Рулетку). Отрабатывает не корректно (если запустите, увидите что происходит). При каждом запуске просит закупить фишки, а по идее должен закупить первый раз и играть пока есть деньги. Если денег не хватает, запросить новую закупку. Возможно поместить в цикл white true ? Порекомендуйте, пожалуйста, как исправить код

import random
from random import randint
from time import sleep
from fuzzywuzzy import fuzz
import re


def our_chips(): # покупка фишек
    print('How many chips do you want to buy ?')
    start_money = input()
    return start_money
    

def get_value():
    with open('values.txt') as f: #поля рулетки
        lines = f.readlines()
    number = random.choice(lines).strip()
    print('Roulette spin ... and 3, 2, 1')
    sleep(randint(1, 3))
    print('Roulette stops and a number comes up:', number)
    return number
    

def your_bet():
    values = [] # выпало на рулетке
    all_my_money = [] # общее к-во денег в кошельке на момент вращения рулетки
    my_start_money = our_chips()
    all_my_money.append(my_start_money)
    print('Place your bets !')
    print('Enter a number or field')
    selected_field = input()
    print('How much do you want to bet ? (Only numeric values are allowed)')
    bet_money = int(input())
    win_number = bet_money * 36 # коэфициент совпадения числа
    win_place_rb = bet_money * 2 # коэфициент совпадения поля красное/черное
    if int('_'.join(all_my_money)) > int(bet_money) > 0: # На этом этапе список all_my_money пуст на сколько я понимаю (как минимум на первой итерации), т.к. он наполняется далее, в строках if else. 
        value = str(get_value()) # крутим рулетку
        values.append(value)
        value_number = ''.join(re.findall('[0-9]+', str(values))) # число
        if fuzz.ratio(selected_field, value_number) == 100: # совпадение числа
            print('Сongratulations! You win and your payout is:', win_number, '$')
            win_money_number = my_start_money - bet_money + win_number # мой кошелек, если совпало число
            all_my_money.append(win_money_number)
        else:
            value_place_rb = ''.join(filter(str.islower, str(values))) # поле красное/черное
            if fuzz.ratio(selected_field, value_place_rb) == 100: # совпадения полей красное/черное
                print('Сongratulations! You win and your payout is:', win_place_rb, '$')
                win_money_place = my_start_money - bet_money + win_place_rb # мой кошелек, если совпало поле
                all_my_money.append(win_money_place)
            else: print('You lose !')
    else:
        print('There are not enough funds in your account. Please, top up your account')
        our_chips()
        

if __name__ == "__main__":
    your_bet()
  • Вопрос задан
  • 332 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

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