Il s'agit d'un petit programme très simple en mode texte dont le but est de parier sur le cheval vainqueur. Pour ceci, il suffit de donner son numéro.
Pour l'explication du code, cf. commentaires.
Peut-être intéressant pour les débutants.
Commentaires, conseils et autres remarques sont extrèmement bienvenues! :-)
Source / Exemple :
#! /usr/bin/python
# -*- coding:Utf-8 -*-
from random import *
def note():
#détermine une note entière au hasard entre 1 et 20
return int(1+20*random())
class cheval:
def __init__(self,numero=0,nom=None,vitesse=10,regularite=10):
self.numero=numero
self.nom=nom
self.vitesse=vitesse
self.regularite=regularite
self.chance=random()
def __repr__(self):
return "Numéro : %d\nNom du Cheval : %s\nVitesse : %d\nRégularité : %d\n" %(self.numero,self.nom,self.vitesse,self.regularite)
def eval(self):
return self.vitesse+self.regularite*self.chance
def __cmp__(self,autre_cheval):
# relation d'odre par évaluation (foncction eval croissante)
if self.eval()>autre_cheval.eval():
return -1
else:
return 1
noms=["Éclipse","Tonnerre","Night and Day","Éclair","Tornade","Furioso","Hand in Glove"]
if __name__=='__main__':
while 1:
#possibilité d'aller au delà de 7 en ajoutant des noms à 'noms'
n=input("Combien de partants? (entre 1 et 7)")
#tableau des concurrents
chevaux=[]
for i in range(n):
chevaux.append(cheval(i+1,noms[i],note(),note()))
print chevaux[i]
choix=input("Sur quel cheval pariez vous?")
#on trie le tableau par évaluation croissante (l'index d'un élément est alors égal au classement - 1)
chevaux.sort()
print "Ça y est, la course est finie. Voici le classement définitif.\n"
for i in range(n):
print chevaux[i],"Classement : %d\n" %(i+1)
#Victoire | Défaite
if choix==chevaux[0].numero:
print "Félicitations! Vous avez gagné!"
elif choix==chevaux[1].numero:
print "Dommage, c'est vraiment pas passé loin!"
else:
print "Raté, retentez votre chance!"
continuer=raw_input("Voulez vous continuer? (O/n)")
if continuer in ['n','N']:
#Y en a marre!
break
else:
#Une autre, une autre! ...
continue
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.