Partage
  • Partager sur Facebook
  • Partager sur Twitter

[TP COURS] problème Exercice Casino

TypeError: can't multiply

11 novembre 2018 à 16:25:53

Bonjour,

J'essaye de réaliser l'exercice du casino, de ce cours : 

https://openclassrooms.com/fr/courses/235344-apprenez-a-programmer-en-python/231735-tp-tous-au-zcasino

Je n'arrive pas à corriger mon erreur qui fait que j'obtiens ce message

"line 44, in <module>

    argent += ceil(0.5 * mise)

TypeError: can't multiply sequence by non-int of type 'float'"

"""
Jeu de la roulette de casino.

Le joueur commence avec 1 000$
Le joueur choisit un nombre entre 0 et 49
Il choisit combien il veut miser
L'ordinateur mime la roulette et choisit au hasard le nb gagnant
            si le nb est gagnant ==> mise + 3x la mise
            si le nb est de même couleur ==> mise + 50% de la mise
            sinon => - la mise
Le jeu s'arrête quand le joueur n'a plus d'argent
"""

import os
from random import randrange
from math import ceil

#argent du joueur
argent = 1000

#booléen qui est vrai quand la partie doit continuer
continuer_partie = True

    
print(f"Bonjour ! Bienvenue dans le jeu de la roulette russe ! Vous démarrez avec {argent} $.")

while continuer_partie:
    nb_choisi = input("Choisis un nombre entre 0 et 49 : ")
    print(f"{nb_choisi}, c'est noté !")
    
    mise = input("Tu possèdes 1000$, combien souhaites-tu miser ?  Ecris-le ici : ")
    print(f"{mise}, très bien!")
    
    nb_gagnant = randrange(50)
    print(f"La roulette tourne... Et le numéro gagnant est le {nb_gagnant}")

    noire = [i for i in range(50) if i % 2 == 0] #La couleur des nombres pairs est noir

    if nb_choisi is nb_gagnant:
        argent += 3*mise
        print(f"Bravo, tu as trouvé ! tu gagnes 3 fois ta mise. \
tu possèdes maintenant {argent}")
    elif (nb_choisi and nb_gagnant) in noire:
        argent += ceil(0.5 * mise)
        print(f"Pas mal, même couleur, il te reste {argent}")
    elif (nb_choisi and nb_gagnant) not in noire:
        argent += ceil(0.5 * mise)
        print(f"Pas mal, même couleur, il te reste {argent}")
    else:
        argent -= mise
        print(f"perdu, il te reste {argent}")
    
    if argent <= 0:
        print("game over")
        continuer_partie = False
    else:
        print(f"Vous avez {argent}")


os.system("pause")

Avez-vous une idée ?

Merci !

  • Partager sur Facebook
  • Partager sur Twitter
11 novembre 2018 à 16:50:29

La variable mise n'est pas un int puisque input retourne un str. Du coup, à la place de mise = input(...), écris mise = int(input(...)). Je pense que c'est ça.
  • Partager sur Facebook
  • Partager sur Twitter
15 janvier 2019 à 13:22:39 - Message modéré pour le motif suivant : Toute forme de publicité est interdite