Programme du jeu de la roulette

Résolu/Fermé
DarkSniper - 8 avril 2015 à 19:13
FiceA Messages postés 34 Date d'inscription jeudi 28 mai 2015 Statut Membre Dernière intervention 24 août 2016 - 26 mars 2016 à 18:13
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

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
Zephirr Messages postés 317 Date d'inscription mardi 30 décembre 2014 Statut Membre Dernière intervention 6 novembre 2015 100
11 avril 2015 à 17:19
Tu utilise python 2 ou 3?
0
Zephirr Messages postés 317 Date d'inscription mardi 30 décembre 2014 Statut Membre Dernière intervention 6 novembre 2015 100
11 avril 2015 à 17:27
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