IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

debutant oriente object


Sujet :

Python

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 13
    Points : 12
    Points
    12
    Par défaut debutant oriente object
    boujour a tous

    je me debrouille relativement bien en programmation par contre mon oriente object fait dur
    jai commencer a faire un RPG en text

    ici vous avez un hopital pour soigner mon perso mais la je voulais que cette fonction (entrer) soit dans ma class Hopital mais la jai une erreur et si jai pas d'erreur rien saffiche et jai essayer return et print ....

    mais en fonction en dehors de ma class elle marche apres quelque modif ???
    code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    class Hopital:
    	entrer(self,s1,s2,s3):
    		print "argent"+" "+str(perso.argent)
    		print "vie"+" "+str(perso.vie_pts)
    		print "vous avez besoin de soin"
    		print "choisisai un traitemant"
    		print "1:soin mineur 10$"
    		print "2:soin majeur 20$"
    		print "3:soin critique 30$"
    		print "4:sortir"
    		traitement=input()
    		while traitement<>4:
    			if traitement==1:
    				self.s1()
    				if perso.vie_pts>perso.vie_max:
    					perso.vie_pts=perso.vie_max
    				else:
    					pass
     
     
    			elif traitement==2:
    				self.s2()
    				if perso.vie_pts>perso.vie_max:
    					perso.vie_pts=perso.vie_max
    				else:
    					pass
     
    			elif traitement==3:
    				self.s3()
    				if perso.vie_pts>perso.vie_max:
    					perso.vie_pts=perso.vie_max
    				else:
    					pass
     
    		else:
    			menu()
    fin code:

    voici l'erreur en question :
    File "./classe2.py", line 78
    entrer(self,s1,s2,s3):
    ^
    SyntaxError: invalid syntax

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 32
    Points : 36
    Points
    36
    Par défaut
    Il manque def devant le nom de votre fonction.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    class Hopital :
      def entrer(self,s1,s2,s3) :
        print "argent"+" "+str(perso.argent)
        ...

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par taurus-le-bien-aime
    boujour a tous

    je me debrouille relativement bien en programmation par contre mon oriente object fait dur
    jai commencer a faire un RPG en text

    ici vous avez un hopital pour soigner mon perso mais la je voulais que cette fonction (entrer) soit dans ma class Hopital mais la jai une erreur et si jai pas d'erreur rien saffiche et jai essayer return et print ....

    mais en fonction en dehors de ma class elle marche apres quelque modif ???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    class Hopital:
    	entrer(self,s1,s2,s3):
    		print "argent"+" "+str(perso.argent)
    		print "vie"+" "+str(perso.vie_pts)
    		print "vous avez besoin de soin"
    		print "choisisai un traitemant"
    		print "1:soin mineur 10$"
    		print "2:soin majeur 20$"
    		print "3:soin critique 30$"
    		print "4:sortir"
    		traitement=input()
    		while traitement<>4:
    			if traitement==1:
    				self.s1()
    				if perso.vie_pts>perso.vie_max:
    					perso.vie_pts=perso.vie_max
    				else:
    					pass
     
     
    			elif traitement==2:
    				self.s2()
    				if perso.vie_pts>perso.vie_max:
    					perso.vie_pts=perso.vie_max
    				else:
    					pass
     
    			elif traitement==3:
    				self.s3()
    				if perso.vie_pts>perso.vie_max:
    					perso.vie_pts=perso.vie_max
    				else:
    					pass
     
    		else:
    			menu()
    voici l'erreur en question :
    File "./classe2.py", line 78
    entrer(self,s1,s2,s3):
    ^
    SyntaxError: invalid syntax
    Hello,

    Pour l'erreur en question, c'est tout simplement que pour définir une fonction ou une méthode en python, on préfixe son nom du mot clé "def", ainsi tu devrais avoir ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    class Hopital:
    	def Entrer(self, s1, s2, s3):
    		...
    		...
    Voili voilou
    N'hésite pas a te plonger dans un bon tutorial pour Python, comme le Swinnen ou Plongez dans Python, ils ont chacun des parties sur l'orienté objet mais aussi plein d'autres choses intéressantes

    A bientôt,


    PierreAd


    PS: pense à la balise code la prochaine fois
    Edit: Grillé...

  4. #4
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 13
    Points : 12
    Points
    12
    Par défaut
    ouin dsl c un des essais que jai fait mais meme avec le def sa affiche rien ...
    pi je les pas vu l'erreur idiote en fait .... et aussi jai lu presque tout les tuto sur se site ....

    voici le program code moi meme (jen suis tres fier ..meme avec les erreur ) au grand complet si sa peu vous aider (dsl je les pas commenter)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
     
    #!/usr/bin/python
    from random import *
    from math import *
     
    class Personnage:
    	def __init__(self):
    		self.xp=0
    		self.lvl=1
    		self.nxp=1000+(1000+(1*2000))
    		self.argent=randrange(50,100,1)
    		self.vie_pts=randrange(20,50,1)
    		self.attack=randrange(1,5,1)
    		self.vie_max=50*self.lvl
    		while self.xp>self.nxp:
    			self.lvl=self.lvl+1
    			self.attack=self.attack+randrange(1,5,1)
    			self.nxp=1000+1000+(self.lvl*3000)
    global Monstre
    class  Monstre:
    	def __init__(self):
    		self.min_xp=perso.xp
    		self.max_xp=perso.xp+5000
    		self.xp=randrange(self.min_xp,self.max_xp,100)
    		self.nxp="????"
    		self.lvl=self.xp/1000
    		self.argent=randrange(5,15,1)*perso.lvl
    		self.vie_pts=randrange(20,50,1)*perso.lvl
    		self.attack=randrange(1,5,1)*self.lvl+perso.lvl
     
     
    def stat(qui):
    	print "les stat"
    	print "level"
    	print qui.lvl
    	print "next level dans"
    	print qui.nxp
    	print "experience:"
    	print qui.xp
    	print "vie"
    	print qui.vie_pts
    	print "attaque"
    	print qui.attack
    	print "argent"
    	print qui.argent
    def menu_p():
    	global hospital
    	hospital=Hopital()
    	print "1:nouvelle partie"
    	print "2:Retry"
    	choix=0
    	choix=input()
    	if choix==1:
    		global perso
    		perso=Personnage()
    		menu()
    	elif choix==2:
    		pass
    def menu():
    	print "Bienvenue dans ce rpg vous  avez  3 choix les voici:"
    	print "les choix offert"
    	print "1:aller combattre des montres"
    	print "2:aller a l'hopital"
    	print "3:aller au magasin "
    	print "4 vos stat"
    	menu_choix=0
    	menu_choix=input()
    	if menu_choix==1:
    		combat()
    	elif menu_choix == 2:
    		hospital.entrer
    	elif menu_choix == 3:
    		menu()
    	elif menu_choix==4:
    		stat(perso)
    		menu()
     
    class Hopital:
    	def entrer(self,s1,s2,s3):
    		print "argent"+" "+str(perso.argent)
    		print "vie"+" "+str(perso.vie_pts)
    		print "vous avez besoin de soin"
    		print "choisisai un traitemant"
    		print "1:soin mineur 10$"
    		print "2:soin majeur 20$"
    		print "3:soin critique 30$"
    		print "4:sortir"
    		traitement=input()
    		while traitement<>4:
    			if traitement==1:
    				self.s1()
    				if perso.vie_pts>perso.vie_max:
    					perso.vie_pts=perso.vie_max
    				else:
    					pass
     
     
    			elif traitement==2:
    				self.s2()
    				if perso.vie_pts>perso.vie_max:
    					perso.vie_pts=perso.vie_max
    				else:
    					pass
     
    			elif traitement==3:
    				self.s3()
    				if perso.vie_pts>perso.vie_max:
    					perso.vie_pts=perso.vie_max
    				else:
    					pass
     
    		else:
    			menu()
    	def s1():
     
    		perso.vie_pts=s1.vie_pts+perso.vie_pts
    		perso.argent=perso.argent-10
    	def s2():
    		perso.vie_pts=s2.vie_pts+perso.vie_pts
    		perso.argent=perso.argent-20
    	def s3():
    		s3=Soin_3()
    		perso.vie_pts=s3.vie_pts+perso.vie_pts
    		perso.argent=perso.argent-30
     
     
     
    def combat():
    	monster=Monstre()
    	stat(monster)
    	while perso.vie_pts>1 or monster.vie_pts>1:
    		pp=pm=1
    		while pp==pm:
    			pm=randrange(1,1000,1)
    			pp=randrange(1,1000,1)
    		else:
    			if pp>pm:
    				print "moi"
    				monster.vie_pts=monster.vie_pts-perso.attack
    			else:
    				print "monster"
    				perso.vie_pts=perso.vie_pts-monster.attack
    	else:
    		if monster.vie_pts==0 or monster.vie_pts<0:
    			perso.xp=perso.xp+(monster.xp*0.20)
    			perso.argent=perso.argent+monster.argent
    			print "xp recu"
    			print (monster.xp*0.20)
    			print "agent recu"
    			print monster.argent
    			print monster.vie_pts
    			menu()
    		else:
    			print "game over"
    			print perso.vie_pts
    			menu_p()
     
    menu_p()
    aussi jai remarque un autre probleme que monster.xp=randrange(self.min_xp,self.max_xp,100) mais quand je regarge sa valeur sa me donne des nombre comme 3588 ,1252 quand je lui est dit par step de 100 cetait pour que sa me donne comme valeur 3500,1200... c quoi que jai fait comme erreur

Discussions similaires

  1. [ ALV orienté object ] click
    Par roxanne dans le forum SAP
    Réponses: 3
    Dernier message: 05/04/2012, 12h07
  2. question sur date sous oracle oriente object
    Par PHPkoala dans le forum SQL
    Réponses: 4
    Dernier message: 22/01/2008, 23h48
  3. Orienté object : dérivation ou pas ?
    Par casafa dans le forum C++
    Réponses: 2
    Dernier message: 25/09/2007, 18h00
  4. [debutant] pb objecteering
    Par ameliepim dans le forum Autres
    Réponses: 18
    Dernier message: 27/06/2006, 01h07
  5. [C#][debutant]erreur => object reference is required for a no
    Par ChristopheOce dans le forum Windows Forms
    Réponses: 3
    Dernier message: 25/01/2006, 13h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo