Course de chevaux

Contenu du snippet

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

A voir également

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.