Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les tutoriels > Non-Officiels > Programmation > Python > Apprenons Python ! > Le début, la base de tout... > Tp : Plus ou Moins > Lecture du tutoriel

Tp : Plus ou Moins

Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Auteurs : Communauté Pythonienne, iPoulet et Pmol
Note : 17 / 20 (7 votes)
Visualisations : 32 166

Plus d'informations Plus d'informations
Vous allez réaliser votre premier vrai "projet".
Ce sera un mini-jeu de Plus ou Moins
Rassurez-vous, vous connaissez tout ce qu'il faut savoir pour réaliser ce TP.

Si vous avez lu les parties qui précèdent avant le 17 Juillet, merci de les relire, c'est indispensable :euh:
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

Présentation du jeu

Le jeu de Plus ou Moins est un des jeux les plus présentés en programmation.
Son principe est très simple. Vous devrez trouver un nombre que l'ordinateur a tiré au hasard. A chaque essai, il vous dira si le nombre que vous avez donné est supérieur ou inférieur au nombre caché. Le but du jeu étant de trouver ce nombre caché le plus vite possible. :)
Code : Console
Entrez un nombre compris entre 0 et 100 : 50

Le nombre cache est plus grand

Entrez un nombre compris entre 0 et 100 : 75

Le nombre cache est plus grand

Entrez un nombre compris entre 0 et 100 : 85

Le nombre cache est plus petit

Entrez un nombre compris entre 0 et 100 : 80

Vous avez trouve le nombre cache !

Ce dont vous aurez besoin

Vous savez demander à Python de vérifier un nombre par rapport à un autre, vous savez utiliser les boucles, comment sortir des boucles...

Mais comment tirer un nombre au hasard ! :euh:
Rassurez-vous, c'est très simple (et heureusement ! :) )

Nous allons utiliser une des forces de Python : les modules. Nous n'allons pas détailler l'importation des modules, nous le ferons plus tard. Sachez juste qu'un module est comme un carton que nous allons déballer, pour sortir l'outil dont nous avons besoin.
Ici, nous allons avoir besoin d'ouvrir le carton random, dont nous n'allons sortir qu'une seule fonction : randrange.
Regardez comment faire :
Code : Python
1
from random import randrange

C'est très simple. from indique le "carton" d'où on va importer la fonction randrange.
Après, pour utiliser cette fonction que l'on vient de donner au programme, il suffit de l'appeler :
Code : Python
1
a = randrange(0,100)

Nous n'avions jamais rencontré ce cas pour l'instant : randrange est une fonction qui prend deux arguments. C'est à dire que, pour qu'elle fonctionne, vous devez lui donner deux valeurs dans les parenthèses (ici, deux entiers). Pour les séparer, on utilise la virgule (voilà pourquoi elle est remplacée par le point dans les "nombres à virgules" ;) ). Ici, Python va tirer un nombre au hasard entre 0 et 100 et l'attribuer à la variable a.

On peut lui demander de tirer un nombre au hasard entre 100 et 150, par exemple :
Code : Python
1
randrange(100, 150)

Ça marche aussi avec des variables :
Code : Python
1
2
3
4
a = 25
b = 2729
nombre = randrange(a, b)
print nombre


Voilà. Vous savez maintenant tout ce qu'il faut savoir pour réaliser ce Tp. :)

Élaborons l'algorithme de notre programme

Avant de foncer tête baissée et de coder (ce qui est voué à l'échec), il faut d'abord définir précisément ce que va faire notre programme.
Par quelles étapes va passer notre programme ? Comment fera-t-il ? Que de questions ! :D


Vous savez tout ce qu'il faut savoir, vous savez ce que va faire le programme, il est temps de passer au codage ! :zorro:

Correction !

Vous n'y arrivez pas ? Recommencez encore une fois ! :)
Vous n'y arrivez toujours pas ? Prenez un bout de papier et marquez l'algorithme du programme avec vos mots à vous. Et recommencez ;)
Vous n'y arrivez encore pas ? Je vois déjà vos yeux bouffis à minuit en train d'essayer de coder ce jeu. :p Essayez demain, la tête froide, et tout sera plus clair (généralement, inutile de vous énerver devant un programme : ça ne fait pas avancer le schmilblick. Allez prendre l'air !)

J'espère que vous avez au moins réfléchi à ce petit programme, que vous avez essayé de coder quelque chose, ou que vous y êtes arrivé.
Parce que, quoi qu'il en soit, il est temps de passer à la correction !
Secret (cliquez pour afficher)
Code : Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# On importe la fonction
from random import randrange

# On tire un nombe au hasard entre 0 et 100
nombre_cache = randrange(0, 100)
nombre_utilisateur = -1

# Tant que l'utilisateur n'a pas trouve le nombre cache
while nombre_utilisateur != nombre_cache:
    # On demande a l'utilisateur un nombre
    nombre_utilisateur = input("Entrez un nombre compris entre 0 et 100 : ")
    # On compare avec le nombre cache
    if nombre_utilisateur > nombre_cache:
        print "Le nombre cache est plus petit"
    elif nombre_utilisateur < nombre_cache:
        print "Le nombre cache est plus grand"

print "Vous avez trouve le nombre cache !"

Mais, pourquoi affecter à la variable nombre_utilisateur -1 ?
C'est une ruse de programmeur ;)
On demande à Python de tirer un nombre au hasard entre 0 et 100. On ne rentre dans la boucle que si nombre_utilisateur est différent de nombre_cache. or, si par le plus grand des hasards, ces deux variables sont égales, on nous dit qu'on a trouvé le nombre caché !
Il faut donc donner à nombre_utilisateur une valeur dont on est sûr qu'elle ne sera pas atteinte en tirant le nombre au hasard ;)

Idées d'améliorations

Vous voilà avec un jeu de Plus ou Moins tout à fait respectable.
Mais vous pouvez certainement l'améliorer ! :)

Correction-bis

Vous n'arrivez pas à demander au joueur s'il veut rejouer ?
Voici une correction spécialisée :)

Secret (cliquez pour afficher)
Code : Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
# On importe la fonction
from random import randrange

recommencer = 0 # 0 si on veut recommencer, 1 si on veut arreter

while recommencer == 0:
    # Tant que l'utilisateur n'a pas trouve le nombre cache
    # On tire un nombe au hasard entre 0 et 100
    nombre_cache = randrange(0, 100)
    nombre_utilisateur = -1
    while nombre_utilisateur != nombre_cache:
        # On demande a l'utilisateur un nombre
        nombre_utilisateur = input("Entrez un nombre compris entre 0 et 100 : ")
        # On compare avec le nombre cache
        if nombre_utilisateur > nombre_cache:
            print "Le nombre cache est plus petit"
        elif nombre_utilisateur < nombre_cache:
            print "Le nombre cache est plus grand"
    
    print "Vous avez trouve le nombre cache !"
    print "Voulez-vous recommencer ?"
    recommencer = input("0. Oui\n1. Non\n")


Toute l'astuce est dans la grande boucle qui entoure le code que nous avons écrit avant :) En effet, tant que l'utilisateur rentre 0, cette grande boucle est exécutée. Elle est donc utile pour vérifier s'il veut rejouer (s'il rentre 0 à la fin de la boucle, la condition n'est plus remplie, et tout se termine)


Avant d'aller plus loin...

Stop ! Vous croyez que je ne vous avais pas vus ? Vous êtes sur le point de passer au chapitre suivant sans avoir réellement fini celui là ? C'est très malhonnête :o

Êtes vous réellement prêts pour la suite, vous qui lisez ce cours ? Il n'y a que vous qui puissiez le savoir. Vérifions nos acquis :


Bien, bien, pas mal... Si tout ce qui est là ne vous pose réellement aucun problème, vous pouvez passer à la suite. Sinon, pourquoi ne pas relire ce qui vous semble difficile ?

De toute façon, je vous conseille de faire une pause, à ce stade, et de parler à d'autres personnes qui s'intéressent à la programmation, de leur poser des questions, d'essayer de faire vos programmes... et de vous plonger dans le chapitre 8, qui n'est pas des moindres, avec ardeur et intelligence ^^

Emus ? Voici votre premier vrai programme :o
Chapitre précédent Sommaire Chapitre suivant
Retour en haut Retour en haut


Créé : le 02/07/2006 à 19:20:11
Modifié : le 22/08/2008 à 15:53:37
Avancement : 0%
Licence : Copie non autorisée

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 353 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.4114s (0.3963s)