Posté le 14/02/2016 18:23
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 113 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 20/02/2016 16:31 | #
Euh... RTFM. La c'est du tkinter, c'est pas non plus la complexité même. Cherche un peu l'information.
Citer : Posté le 20/02/2016 16:32 | #
Et je plussoie Lephe.
Citer : Posté le 21/02/2016 11:36 | #
En bleu, c'est ce qu'il faut que tu changes pour adapter à tes besoins.
Est-ce-qu'il y a une autre solution parce que ça ne marche pas.
Labyrinthe : un jeu de réflexe unique, élu Jeu Du Mois !!!
Citer : Posté le 21/02/2016 11:50 | #
J'en sais rien, je pratique très peu Tkinter, je te conseille d'aller chercher sur des forums plus spécialisés
Citer : Posté le 21/02/2016 19:13 | #
Hello, Je trouve que mon code ci-dessous commence à être un peu bordélique alors si vous avez des conseils je suis tout ouïe .
import os
import random
import sys
def achat_nouriture (nb_conserve) :
global nouriture
global argent
if nb_conserve*10 <= argent :
for c in range(nb_conserve) :
nouriture += 20
argent -= 10
def achat_aquarium (nb_aquariums, aquariums) :
global argent
if nb_aquariums*30 <= argent :
for a in range(nb_aquariums) :
argent -= 30
aquarium.pop_max += 20
def efface_ecran () :
if sys.platform.startswith("win") :
os.system("cls")
else :
os.system("clear")
class Poisson :
def __init__ (self):
self.age = 0
self.sexe = random.randint(1,2)
self.capacite_reproduction = 0
self.besoin_nourriture = 1
self.vie = 1
def temps (self):
self.age += 1
if self.age > 6 or self.besoin_nourriture == 1:
global nb_poisson_m
nb_poisson_m += 0
self.vie = 0
self.capacite_reproduction = 1
self.besoin_nourriture = 1
def reproduction (self):
self.capacite_reproduction = 0
def repas (self) :
self.besoin_nourriture = 0
class Aquarium :
def __init__ (self ):
self.pop = []
self.pop_max = 20
poisson = Poisson()
poisson.sexe = 1
self.nouveau_poisson(poisson)
poisson = Poisson()
poisson.sexe = 2
self.nouveau_poisson(poisson)
def reproduction (self ):
print("1")
nb_p_m_adulte = 0
nb_p_f_adulte = 0
for poisson in self.pop :
if poisson.age > 0 and poisson.sexe == 1:
nb_p_m_adulte += 1
if poisson.age > 0 and poisson.sexe == 2:
nb_p_f_adulte += 1
if nb_p_m_adulte > nb_p_f_adulte :
nb_couple = nb_p_f_adulte
else :
nb_couple = nb_p_m_adulte
for i in range(nb_couple) :
nb_enfant = random.randint(5,10)
for i in range(nb_enfant) :
poisson = Poisson()
self.nouveau_poisson(poisson)
def vente (self, nb_poissons ) :
poisson_mature = 0
for poisson in self.pop :
if poisson.age > 0 :
poisson_mature += 1
if poisson_mature < nb_poissons :
nb_poissons = poisson_mature
global argent
for p in range(nb_poissons) :
argent += 1.5
del self.pop[1]
def repas (self) :
global nouriture
for poisson in self.pop :
if nouriture > 0 :
nouriture -= 1
poisson.repas()
else :
global nb_poisson_m
nb_poisson_m += 1
def nouveau_poisson (self , poisson):
if len(self.pop) < self.pop_max :
self.pop.append(poisson)
else :
global nb_poisson_m
nb_poisson_m += 1
def temps (self ) :
for poisson in self.pop :
poisson.temps()
if poisson.vie == 0 :
self.pop = [poisson for poisson in self.pop if poisson.vie]
argent = 200
nouriture = 20
nb_conseil = 0
aquarium = Aquarium()
nb_poisson_m = 0
def validation () :
global texte_aquarium
global texte_conserve
global texte_poisson
global texte_conseil
global texte
global argent
global nb_conseil
global nb_poisson_m
poissons = len(aquarium.pop)
try :
nb_aquariums = int(texte_aquarium.get())
except ValueError :
nb_aquariums = 0
try :
nb_conserves = int(texte_conserve.get())
except ValueError :
nb_conserves = 0
try :
nb_poissons = int(texte_poisson.get())
except ValueError :
nb_poissons = 0
try :
nb_conseils = int(texte_poisson.get())
except ValueError :
nb_conseils = 0
if nb_conseils*20 < argent :
nb_conseil += nb_conseils
argent -= 20*nb_conseils
if nb_aquariums > 0 :
achat_aquarium (nb_aquariums, aquarium)
if nb_conserves > 0 :
achat_nouriture (nb_conserves)
if nb_poissons > 0 :
aquarium.vente(nb_poissons)
if argent < 0 or aquarium.pop == 0 :
print ("Perdu")
os.system("pause")
efface_ecran()
nb_poisson_m = 0
aquarium.repas()
aquarium.temps()
aquarium.reproduction()
texte_aquarium.set("Combiens d'aquariums voulez-vous acheter")
texte_conserve.set("Combiens de conserve voulez-vous acheter")
texte_poisson.set("Combiens de poissons voulez-vous vendre")
texte_conseil.set("Combiens de conseils voulez-vous acheter")
texte.set("{} poissons sont morts le mois dernier.\n \nVous possédez :\n -{} $\n -{} poissons\n -{} aquariums\n -{} rations de nouritures\n -{} conseils".format(nb_poisson_m, argent, poissons, int(aquarium.pop_max / 20), nouriture, nb_conseil))
fenetre = Tk()
fenetre.title("Elevage de gupies")
fenetre.geometry("300x350+500+250")
fenetre["bg"] = "blue"
texte = StringVar()
poissons = len(aquarium.pop)
texte.set("{} poissons sont morts le mois dernier.\n \nVous possédez :\n -{} $\n -{} poissons\n -{} aquariums\n -{} rations de nouritures\n -{} conseils".format(nb_poisson_m, argent, poissons, int(aquarium.pop_max / 20), nouriture, nb_conseil))
message_donnees = Label(fenetre, textvariable=texte, justify="left")
message_donnees.place(x=0, y=0)
message_donnees.pack()
texte_aquarium = StringVar()
texte_aquarium.set("Combiens d'aquariums voulez-vous acheter")
question_aquarium = Entry(fenetre, textvariable=texte_aquarium, width=40)
question_aquarium.focus_set()
question_aquarium.pack(padx = 5, pady = 5)
texte_conserve = StringVar()
texte_conserve.set("Combiens de conserve voulez-vous acheter")
question_conserve = Entry(fenetre, textvariable=texte_conserve, width=40)
question_conserve.focus_set()
question_conserve.pack(padx = 5, pady = 5)
texte_poisson = StringVar()
texte_poisson.set("Combiens de poissons voulez-vous vendre")
question_poisson = Entry(fenetre, textvariable=texte_poisson, width=40)
question_poisson.focus_set()
question_poisson.pack(padx = 5, pady = 5)
texte_conseil = StringVar()
texte_conseil.set("Combiens de conseils voulez-vous acheter")
question_conseil = Entry(fenetre, textvariable=texte_conseil, width=40)
question_conseil.focus_set()
question_conseil.pack(padx = 5, pady = 5)
boutton_valider = Button(fenetre, text="Valider", fg="blue", command = validation)
boutton_valider.pack(side="left")
boutton_quitter = Button(fenetre, text="Quitter", fg="red", command=fenetre.quit)
boutton_quitter.pack(side="right")
fenetre.mainloop()
Ajouté le 22/02/2016 à 19:43 :
Est-ce-que je peux optimiser ceci :
verification_deplacement(robot.position[0], robot.position[1]+1)
verification_deplacement(robot.position[0]-1, robot.position[1])
verification_deplacement(robot.position[0]+1, robot.position[1])
Ajouté le 22/02/2016 à 20:40 :
De même :
En sachant que lab est une liste constitué de chaîne de caractère.
Labyrinthe : un jeu de réflexe unique, élu Jeu Du Mois !!!
Citer : Posté le 22/02/2016 20:59 | #
Le premier est difficile à optimiser. Cette méthode est probablement la plus lisible.
Le second peut s'écrire :
Citer : Posté le 22/02/2016 21:04 | #
Ok merci
Ajouté le 23/02/2016 à 11:04 :
Quel est l’équivalent du getkey de la calculatrice en python.
Labyrinthe : un jeu de réflexe unique, élu Jeu Du Mois !!!
Citer : Posté le 23/02/2016 11:08 | #
Quel est l’équivalent du getkey de la calculatrice en python.
Il n'y en a pas. Il faut soit utiliser des input() de terminal, soit utiliser les propriétés événementielles de ta bibliothèque graphique. En général, tu devras paramétrer un gestionnaire pour les événements clavier pour un widget donné et récupérer la touche pressée dans les données de l'événement. Mais c'est pas toujours facile d'obtenir le caractère représenté et la touche précise en même temps.
Citer : Posté le 23/02/2016 11:10 | #
Et où est-ce-que j'apprends à faire ça.
Labyrinthe : un jeu de réflexe unique, élu Jeu Du Mois !!!
Citer : Posté le 23/02/2016 11:11 | #
Ben tu lis des tutos sur ta bibliothèque graphique... ou la doc.
Citer : Posté le 23/02/2016 11:12 | #
Donc si je suis dans ma console Python de base je suis obligé d'utiliser Input.
Labyrinthe : un jeu de réflexe unique, élu Jeu Du Mois !!!
Citer : Posté le 23/02/2016 11:14 | #
Oui.
Citer : Posté le 23/02/2016 11:19 | #
Dommage
Labyrinthe : un jeu de réflexe unique, élu Jeu Du Mois !!!
Citer : Posté le 23/02/2016 11:28 | #
Il existe des versions de getch() mais c'est pas cross-compatible.
Citer : Posté le 23/02/2016 11:37 | #
C'est à dire
Labyrinthe : un jeu de réflexe unique, élu Jeu Du Mois !!!
Citer : Posté le 23/02/2016 11:42 | #
Cherche un peu. Tu peux pas poser des questions sans creuser ce qu'on te donne, parce que d'une part tu n'apprends rien et d'autre part on va finir par te répondre STFW parce qu'on a pas envie de tout chercher à ta place.
getch() est une fonction C héritée de MS-DOS qui récupère une pression de touche dans un terminal sans écrire le caractère récupéré.
Chercher python getch sur DuckDuckGo me donne déjà le lien vers la doc de la fonction pour l'API VC++, et la même recherche sur Google me donne une question StackOverflow pour Linux.
Citer : Posté le 23/02/2016 16:18 | #
Je ne comprends pas :
global robot
choix_enregistrement = input("Voulez-vous enregistrer la partie?")
if choix_enregistrement.upper() == "O" :
data = str("{} {} {} {} {}".format(robot.position[0], robot.position[1], self.niveau[5], robot.vie, robot.argent))
with open("enregistrement.txt", "w") as fichier :
mon_depickler = pickle.Pickler(fichier)
mon_depickler.dump(data)
Et j'ai :
Pourtant, data est bien un string
Labyrinthe : un jeu de réflexe unique, élu Jeu Du Mois !!!
Citer : Posté le 23/02/2016 16:22 | #
Pas besoin de caster le résultat de format() en str, normalement ça doit fonctionner sans
Tu te casses un peu la tête pour le fichier non ?
fp.write(data)
C'est tout !
Citer : Posté le 23/02/2016 16:47 | #
Ahh oui c'est plus simple et en plus ça marche
Labyrinthe : un jeu de réflexe unique, élu Jeu Du Mois !!!
Citer : Posté le 23/02/2016 19:53 | # | Fichier joint
J'ai ça : fichier joint
Labyrinthe : un jeu de réflexe unique, élu Jeu Du Mois !!!
Citer : Posté le 23/02/2016 19:54 | # | Fichier joint
Mais je voudrais avoir ça : fichier joint
Ajouté le 23/02/2016 à 19:56 :
Est-ce-qu'il y a une solution.
Labyrinthe : un jeu de réflexe unique, élu Jeu Du Mois !!!