Programme du jeu de la roulette

Résolu
DarkSniper -  
FiceA Messages postés 38 Statut Membre -
Bonjour à tous les zéros,
voilà mon soucis, avec un ami, nous aimerons programmer le jeu de la roulette(celui que l'on retrouve dans les casinos) en langage python. Le problème est que: on a du mal a structurer notre programme car on a rajouter une difficulté qu'y est le choix du nombre de joueur à la partie.
Je vous explique le programme qu'on veut créer:

Déroulement d'une partie: "Introduction":

-On choisit le nombre de joueur

-On assigne un nom à chaque joueur (ex: le 1er sera joueur1, le 2eme sera joueur2,...)

-On indique ensuite leur montant de leur portefeuille (ex: 1000€ chacun)

-Puis la mise minimale ainsi que de la mise maximale

Le jeux (à faire en boucle):

-On demande au joueur, chacun à leur tour, de choisir un numéro entre 0 et 36, puis le montant de leur mise

-Lorsque les mises sont faites, le programme génère un nombre aléatoire entre 0 et 36

-Puis on affiche ce numéro gagnant, et pour chaque joueur, on affiche leurs gains ou leurs pertes.

-On affiche, ensuite, le montant de leur portefeuille (actualiser)

-Si il y a une Banqueroute (c'est à dire, si l'un des joueurs n'a plus d'argent dans son portefeuille), la partie s'arrête

-Pour finir, on demande si ils veulent faire une autre manche ou quitter

Voila le programme que nous aimerons concevoir.

Nous nous sommes tournés sur l'utilisation des listes/tableaux avec l'utilisation de la boucle For, qui je pense être la manière la plus simple de faire ce programme. Mais ayant quelques lacunes sur l'utilisation de ces listes/tableaux, nous avons décidé de vous demander un peu d'aide.

Toutes les idées sont les bienvenues, merci par avance pour l'aide que vous aurez apporté à ce sujet.

3 réponses

  1. DarkSniper
     
    Voici le programme avec chaque partie, mais j'ai un petit soucis avec la partie des gains et pertes car:
    1- lorsque je donne le bon numéro, il affiche rien

    2- et ensuite j'ai ce message d'erreur:
    File "C:\Users\victor\Desktop\Test roulette.py", line 44, in <module>
    if sargent[x] <= 0:
    TypeError: 'int' object is unsubscriptable

    Je pense que j'ai oublié plusieurs trucs mais je sais pas où... ça doit être un truc tout "con"...

    from random import randrange
    
    class Joueur:
    
        def __init__(self, nom, argent):
            self.nom = str(nom)
            self.argent = int(argent)
            self.numero = 0
            self.mise = 0
    
    
    nbJoueurs = int(input("Nombre de joueurs : "))
    joueurs = []
    
    sargent = input("Argent de départ  : ")
    
    continuer_partie = True
    
    while continuer_partie:
        
        for x in range(0, nbJoueurs):
            joueurs.append(Joueur(input(("Numero choisit du joueur "+str(x+1)+" : ")), sargent))
    
        for x in range(0, nbJoueurs):
            joueurs[x].mise = int(input("Mise du joueur "+str(x+1)+" : "))
    
    
        #Affichage du numero gagnant (aléatoirement)
        numero_gagnant = randrange(1)
        print "La roulette tourne,...... tourne, ...... tourne, ...... tourne, et s'arrete sur le numero", numero_gagnant
    
        for x in range(0, nbJoueurs):
            if joueurs[x] == numero_gagnant:
                print "Felicitation, votre numero est le bon, vous obtenez ",  joueurs[x].mise*35, "euros!"
                sargent[x] = sargent[x] + joueurs[x].mise*35
           
            else:
                print "Desoler l'ami, c'est pas pour cette fois. Vous perdez votre mise qui est de", joueurs[x].mise, "euros"
                sargent[x] =sargent[x] - joueurs[x].mise
    
    
        # On interrompt la partie si le joueur est ruine
        for x in range(0, nbJoueurs):
            if sargent[x] <= 0:
                print("Vous etes ruine! C'est la fin de la partie.")
                continuer_partie = False           
            else:
                # On affiche l'argent du joueur
                print("Le joueur"+str(x+1)+"a desormais", sargent[x], "euros")
                quitter = input("Souhaitez-vous quitter le casino (o/n) ? ")
                if quitter == "o" or quitter == "O":
                    print("Vous quittez le casino avec vos gains.")
                    continuer_partie = False


    Merci de votre aide et de votre patience!
    3
    1. Zephirr Messages postés 320 Date d'inscription   Statut Membre Dernière intervention   100
       
      Tu utilise python 2 ou 3?
      0
    2. Zephirr Messages postés 320 Date d'inscription   Statut Membre Dernière intervention   100
       
      Tu n'as apparemment pas compris
      sargent
      :
      c'est l'argent de départ pour tous les joueurs (s pour start) qui est un int.

      Pour accéder à l'argent d'un des joueur, il ne faut pas faire
      sargent[x]
      mais
      joueurs[x].argent


      Enfin, dans un souci d'optimisation, au lieu de
      for x in range(0, nbJoueurs):
           joueurs.append(Joueur(input(("Numero choisit du joueur "+str(x+1)+" : ")), sargent))
      
      for x in range(0, nbJoueurs):
           joueurs[x].mise = int(input("Mise du joueur "+str(x+1)+" : "))

      met plutôt:
      for x in range(0, nbJoueurs):
           joueurs.append(Joueur(input(("Numero choisit du joueur "+str(x+1)+" : ")), sargent))
           joueurs[x].mise = int(input("Mise du joueur "+str(x+1)+" : "))
      0