Programme du jeu de la roulette
Résolu
DarkSniper
-
FiceA Messages postés 38 Statut Membre -
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.
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
Résumé de la discussion
Plusieurs participants envisagent un jeu de roulette en Python avec un nombre de joueurs dynamique, la gestion desportefeuilles et des mises. Les échanges portent sur l'utilisation de listes pour suivre joueurs, argent et choix, ainsi que sur l'adoption d'une approche orientée objet afin de structurer le code. Des exemples de code et des corrections apparaissent, notamment une solution utilisant une classe Joueur et des boucles for pour alimenter les joueurs, leurs numéros et leurs mises, puis calcul des gains. En complément, certains apportent des conseils sur Python 2 versus Python 3 et sur la vérification rigoureuse des données (argent disponible, mises valides) pour éviter les erreurs d'indexation et d'exécution.
-
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!-
-
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 fairesargent[x]
maisjoueurs[x].argent
Enfin, dans un souci d'optimisation, au lieu defor 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)+" : "))
-