from math import ceil
from random import randint

def miser(jetons_restants):
    nombre = choisir_nombre()
    mise = miser_jetons(jetons_restants)
    return nombre, mise

def choisir_nombre():
    nombre = -1
    while not (0 <= nombre <= 49):
        nombre = int(input("Choisissez un nombre (0-49) : "))
        if not (0 <= nombre <= 49):
            print("Erreur : le nombre doit être compris entre 0 et 49")
    return nombre

def miser_jetons(jetons_restants):
    mise = -1
    while not (0 < mise <= jetons_restants):
        mise = int(input(f"Choisissez votre mise (argent disponible : {jetons_restants}) : "))
        if not (0 < mise <= jetons_restants):
            print(f"Erreur : la mise doit être comprise entre 1 et {jetons_restants}")
    return mise

def tourner_la_roulette():
    numero = randint(0, 49)
    print(f"Le croupier tourne la roulette. Le numéro {numero} est le numéro gagnant !")
    return numero

def calculer_gains_couleur(mise):
    return ceil(mise*0.5)

def calculer_gains_numero(mise):
    return mise*3

def continuer_de_jouer(jetons_restants):
    if jetons_restants <= 0:
        print("Vous êtes ruiné.e. C'est la fin de la partie.")
        return False
    else:
        print(f"Il vous reste {jetons_restants} jetons")
        rejouer = input("Souhaitez-vous continuer ? (o/n)")
        if rejouer == "o" or rejouer == "O":
            return True
        else:
            print(f"Vous quittez le jeu avec {jetons_restants}")
            return False

jetons = 100
continuer = True

while continuer:
    gains = 0
    numero_misé, mise = miser(jetons)

    numero_gagnant = tourner_la_roulette()
    if numero_misé == numero_gagnant:
        gains = calculer_gains_numero(mise)
        print(f"Bravo, vous avez misé sur le numéro gagnant. Vous gagnez {gains} jetons")
    elif numero_misé % 2 == numero_gagnant % 2:
        gains = calculer_gains_couleur(mise)
        print(f"Bravo, vous avez misé sur la bonne couleur. Vous gagnez {gains} jetons")
    else:
        gains = -mise
        print(f"Dommage, vous avez perdu votre mise : {gains} jetons")

    jetons += gains
    continuer = continuer_de_jouer(jetons)