je dois créer un programme puis le présenter, j'ai choisis de créer un casino avec 2 jeux: roulette et machine a sous.
pouvez-vous m'aidez s'il vous plaît ? pour le moment le principale problème est que je n'arrive pas a utiliser l'argent que l'utilisateur peut gagner dans les jeux dans les fonctions, lorsque je change de fonction l'argent disparaît par exemple je n'arrive pas à passer de l'accueil a un jeux et inversement sans perdre l'argent.
import random
def entre(mot_de_passe):
for i in range(3):
mdp=input("veuillez entrer votre mdp:")
if mdp==mot_de_passe:
print("welcome to the python casino !")
return casino()
else:
print("mauvaise réponse")
print("avez-vous oubliez votre mdp?")
réponse=input()
if réponse=="oui":
mot_de_passe=input("veuillez crée un mdp:")
return entre(mot_de_passe)
else:
return entre(mot_de_passe)
def machine(budget):
jeu=True
oui=True
compteur=100
groslot=0
while jeu==True:
compteur=compteur+10
jeu=input("voulez-vous lancer la machine ? ")
if jeu=='oui':
jeu = True
if jeu==True:
if budget>=25:
budget=budget-25
print("Vous commencez avec",budget, "$")
groslot=groslot+25
chance=random.randint(0, compteur)
print(chance)
if chance==0:
print("vous gagnez un endettement a vie je rigole...regarde ton compte quand meme au cas ou")
return machine(budget)
elif chance==1:
print("vous gagnez 1$")
budget=budget+1
return machine(budget)
elif chance==5:
print("vous gagnez 5$")
budget=budget+5
return machine(budget)
elif chance==10:
print("vous gagnez 10$")
budget=budget+10
return machine(budget)
elif chance==25:
print("vous gagnez 25$")
budget=budget+25
return machine(budget)
elif chance==50:
print("vous gagnez 50$")
budget=budget+50
return machine(budget)
elif chance==100:
print("vous gagnez 100$")
budget=budget+100
return machine(budget)
elif chance==1000:
print("vous gagnez le gros lot!")
budget=budget+100000
return machine(budget)
elif chance==999:
print("vous gagnez le VRAIS gros lot!")
budget=budget+groslot
print("fin de partie")
return casino(portemonnaie)
else:
print("vous ne gagnez rien")
else:
jeu=False
print("veuillez investir le montant nécessaire")
return casino(portemonnaie)
def roulette():
jeu=input("voulez-vous lancer la roulette de la mort ? ")
if jeu=='oui':
chance=random.randint(0, 100)
print(chance)
if chance<11:
print("vous gagnez une voiture ! et plus précisément une twingo")
return casino(portemonnaie)
elif chance==0:
print("C'EST PARTI POUR LA ROULETTE RUSSE, *bruit de revolver* ah bah zut ta perdu... ")
return casino(portemonnaie)
elif chance<16:
print("vous gagnez un séjour en amazonie ")
return casino(portemonnaie)
elif chance>31:
print("vous gagnez une moto miniature !")
return casino(portemonnaie)
elif chance>50:
print("vous gagnez une villa en australie")
return casino(portemonnaie)
elif chance>100:
print("vous gagnez le trophé de la perte de temps")
return casino(portemonnaie)
elif chance==100:
print("vous gagnez 1 000 000 000 $... dans vos rêves. ")
return casino(portemonnaie)
else:
print("vous gagnez un séjour au goulag :D")
else:
return casino(portemonnaie)
def argent(quantite):
choix=input("voulez-vous mettre de l'argent?")
if choix=="oui":
budget=int(input("mettez de l'argent:"))
quantite=quantite+budget
print("voici votre solde actuelle:", budget)
return quantite
else:
return quantite
def casino(portemonnaie):
joue = True
while joue==True:
print("À quel jeux voulez-vous jouer?")
print("1.machine à sous")
print("2.roulette")
print("3.mettre de l'argent sur son compte",portemonnaie, "$")
reponse=int(input("quel est votre choix ?"))
if reponse==1:
return machine(portemonnaie)
elif reponse==2:
return roulette()
elif reponse==3:
portemonnaie = argent(portemonnaie)
else:
reponse=input("voulez-vous arreter ?")
if reponse=="oui":
print('Au revoir')
return
def programme():
mot_de_passe=input("veuillez crée un mdp:")
entre(mot_de_passe)
programme()
quand tu entre dans le jeu tu devrais avoir une erreur normalement puisque a la ligne 8, lorsque tu appelle ta fonction casino, tu ne lui donne aucun argument alors que ta fonction a besoin de l'argument "portemonnaie". En ce qui concerne ton problème, tu dois definir un porte monnaie global, que tu ne définit pas dans tes fonctions m'est au début du programme. Voici a quoi pourrait ressembler le code avec cela:
import random
argent_global = 100 #exemple
def entre(mot_de_passe):
for i in range(3):
mdp=input("veuillez entrer votre mdp:")
if mdp==mot_de_passe:
print("welcome to the python casino !")
return casino()
else:
print("mauvaise réponse")
print("avez-vous oubliez votre mdp?")
réponse=input()
if réponse=="oui":
mot_de_passe=input("veuillez crée un mdp:")
return entre(mot_de_passe)
else:
return entre(mot_de_passe)
def machine():
global argent_global # pour pouvoir modifier celui ci
jeu=True
oui=True
compteur=100
groslot=0
while jeu==True:
compteur=compteur+10
jeu=input("voulez-vous lancer la machine ? ")
if jeu=='oui':
jeu = True
if jeu==True:
if argent_global>=25:
argent_global-=25 # c'est plus rapide que argent_global = argent_global-25
print("Vous commencez avec",argent_global, "$")
groslot=groslot+25
chance=random.randint(0, compteur)
print(chance)
if chance==0:
print("vous gagnez un endettement a vie je rigole...regarde ton compte quand meme au cas ou")
return machine(budget)
elif chance==1:
print("vous gagnez 1$")
argent_global+=1 # meme chose
return machine()
elif chance==5:
print("vous gagnez 5$")
argent_global+=5
return machine()
elif chance==10:
print("vous gagnez 10$")
argent_global+=10
return machine()
elif chance==25:
print("vous gagnez 25$")
argent_global+=25
return machine()
elif chance==50:
print("vous gagnez 50$")
argent_global+=50
return machine()
elif chance==100:
print("vous gagnez 100$")
argent_global+=100
return machine()
elif chance==1000:
print("vous gagnez le gros lot!")
argent_global+=100000
return machine(budget)
elif chance==999:
print("vous gagnez le VRAIS gros lot!")
argent_global+=groslot
print("fin de partie")
return casino()
else:
print("vous ne gagnez rien")
else:
jeu=False
print("veuillez investir le montant nécessaire")
return casino()
def roulette():
# tu n'as meme pas besoin de global argent_global puisque tu ne l'utilise pas
jeu=input("voulez-vous lancer la roulette de la mort ? ")
if jeu=='oui':
chance=random.randint(0, 100)
print(chance)
if chance<11:
print("vous gagnez une voiture ! et plus précisément une twingo")
return casino()
elif chance==0:
print("C'EST PARTI POUR LA ROULETTE RUSSE, *bruit de revolver* ah bah zut ta perdu... ")
return casino()
elif chance<16:
print("vous gagnez un séjour en amazonie ")
return casino()
elif chance>31:
print("vous gagnez une moto miniature !")
return casino()
elif chance>50:
print("vous gagnez une villa en australie")
return casino()
elif chance>100:
print("vous gagnez le trophé de la perte de temps")
return casino()
elif chance==100:
print("vous gagnez 1 000 000 000 $... dans vos rêves. ")
return casino()
else:
print("vous gagnez un séjour au goulag :D")
else:
return casino()
def argent():
global argent_global
choix=input("voulez-vous mettre de l'argent?")
if choix=="oui":
budget=int(input("mettez de l'argent:"))
argent_global+=budget
print("voici votre solde actuelle:", argent_global)
def casino():
joue = True
while joue==True:
print("À quel jeux voulez-vous jouer?")
print("1.machine à sous")
print("2.roulette")
print("3.mettre de l'argent sur son compte",portemonnaie, "$")
reponse=int(input("quel est votre choix ?"))
if reponse==1:
return machine()
elif reponse==2:
return roulette()
elif reponse==3:
argent()
else:
reponse=input("voulez-vous arreter ?")
if reponse=="oui":
print('Au revoir')
return
def programme():
mot_de_passe=input("veuillez crée un mdp:")
entre(mot_de_passe)
programme()
comme tu as un argent_global tu n'as pas besoin de mettre d'argument dans tes fonctions. Si tu ne comprend les quelques modification que j'ai faites n'hésite pas a me demander
PS: plus tard tu pourrais t'intéresser a un système de stockage d'argent dans un fichier txt avec plusieurs personne et t'intéresser au module numpy pour avoir des chance moins élevé avec tes jeux d'avoir le gros lots
je ne l'ai pas trop fait mais tu pourra bien sur optmiser ton code parce qu'il y a beaucoup de fonction répétitive
j'ai appliquer vos conseils mais le problème est que lorsque j'utilise l'argent hors de la fonction lorsque je tape argent_debut après avoir tester la fonction la variable reste toujours égal à 0 du coup je ne peux pas appliquer le résultat dans d'autres fonctions.
j'ai finis par régler le problème de l'argent mais j'ai un autre problème:
def machine(argent_debut):
jeu=True
oui=True
compteur=100
groslot=0
lot=0
while jeu==True:
compteur=compteur+10
groslot=groslot+lot
jeu=input("voulez-vous lancer la machine ? ")
if jeu=='oui':
if argent_debut>=25:
argent_debut=argent_debut-25
print("Vous commencez avec",argent_debut, "$")
jeu = True
if jeu==True:
groslot=groslot+25
chance=random.randint(0, compteur)
print(chance)
if chance==0:
print("vous gagnez un endettement a vie je rigole...regarde ton compte quand meme au cas ou")
elif chance==1:
print("vous gagnez 1$")
lot=lot+1
elif chance==5:
print("vous gagnez 5$")
lot=lot+5
elif chance==10:
print("vous gagnez 10$")
lot=lot+10
elif chance==25:
print("vous gagnez 25$")
lot=lot+25
elif chance==50:
print("vous gagnez 50$")
lot=lot+50
elif chance==100:
print("vous gagnez 100$")
lot=lot+100
elif chance==1000:
print("vous gagnez le gros lot!")
lot=lot+100000
elif chance==999:
print("vous gagnez le VRAIS gros lot!")
argent_debut=argent_debut+groslot
print("fin de partie")
return argent_debut
else:
print("vous ne gagnez rien")
else:
print("veuillez investir le montant nécessaire")
if lot==None:
lot=0
argent_debut=argent_debut+lot
return argent_debut
je ne sais pas pourquoi mais si je ne gagne à aucun moment de l'argent lorsque j'arrête la fonction, il me retourne None au lieu de la valeur de argent_debut+lot ou de la valeur initial de argent_debut.
Python c'est bon, mangez-en.
j'ai appliquer vos conseils mais le problème est que lorsque j'utilise l'argent hors de la fonction lorsque je tape argent_debut après avoir tester la fonction la variable reste toujours égal à 0 du coup je ne peux pas appliquer le résultat dans d'autres fonctions.
Blond, bouclé, toujours le sourire aux lèvres...
Blond, bouclé, toujours le sourire aux lèvres...