begin process at 2012 02 05 00:29:06
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Jeux

 > COURSE DE CHEVAUX

COURSE DE CHEVAUX


 Information sur la source

Note :
Aucune note
Catégorie :Jeux Classé sous :random, class, hasard Niveau :Débutant Date de création :12/08/2006 Date de mise à jour :12/08/2006 23:50:39 Vu :4 038

Auteur : jpountz

Ecrire un message privé
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
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

  • #! /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
#! /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



 Historique

12 août 2006 23:50:39 :
capture d'écran

 Sources du même auteur

Source avec Zip Source avec une capture IMPLÉMENTATION DE LA TORTUE LOGO, APPLICATION AUX FRACTALES
Source avec Zip Source avec une capture MISE EN ORBITE D'UN SATELLITE
Source avec une capture CONVERTISSEUR FICHIER CAML -> FICHIER HTML

 Sources de la même categorie

Source avec Zip QUESTIONNAIRE par darkanghel91
Source avec Zip Source avec une capture JEU DU PLUS OU MOINS par Iphonemax
TAQUIN 4*4 par fredericfabry
Source avec Zip Source avec une capture ASTRE2.0 CASSE-BRIQUES par Mints
Source avec Zip JEU DU NOMBRE MYSTERE EN PYTHON par messorama

 Sources en rapport avec celle ci

Source avec une capture TESTER LA FIABILITÉE DE LA FONCTION RANDRANGE AVEC INTERFACE... par xeolin
NOMBRE MYSTERE par sorcier0011
CLASSES POUR LA CONVERSION DE BASE par veracruz
LOTO par lepecheur
EXEMPLE DE THREAD par Shinji

Commentaires et avis

Commentaire de taz_iup le 14/08/2006 09:14:54

Pour rendre privé les membres d'une classe, il faut préfixé les nom de deux _
exemple :
self.__vitesse = vitesse

ainsi chevaux [0].__vitesse ne peut pas etre modifié ni lu.seule la classe peut acceder à cette propriété (self.__vitesse), ce qui évite le dopage du cheval avant le départ par exemple ;)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Random [ par tribipod08 ] Bonjour à tous, voilà  je voudrais faire une fonction random autre que celle dejà présente dans python, mais pour celà comment dois je faire ? J'ai pe Class has no attribute !?!? [ par RV2931 ] BonjourJ'ai récupéré un petit programme "Hello world" d'un tuto wxPython de développez.com que voici :# !/usr/bin/python#  -*- coding: iso885915 -*-im PYTHON TKINTER utilisation de labels [ par bichon3001 ] Bonjour, Je souhaite utiliser l'interface graphique TKinter de Python pour appeler une fonction avec un bouton, et afficher le résultat dans un label. Importer un module. [ par reveurduciel ] Bonjour Il y a quelques chose que je ne comprends pas...Voilà, j'essaie d'utiliser une fonction du module random de python... D'abord je l'essai sans Création de class [ par galgafou ] Bonjour à tous, Voila voila, ca fait quelque temps que je programme en python et j'ai rapidement compris qu'on ne pouvait pas passer à côter des clas


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,905 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales