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)
Pour vous aider et vous guider, voici les petits plus.
Tout d'abord, notre joueur jouera contre l'ordinateur !
Ne vous inquiétez pas, nous n'allons pas programmer une Intelligence Artificielle, du moins, pas pour tout de suite

.
Pour l'ordinateur, son choix se fera au hasard...
Code : Python1
2
3
4
5 | from random import randint
# Importe la fonction randint, qui permet de choisir un chiffre au hasard.
# Fonctionnement de la fonction randint :
randint(x,y) # Avec x le nombre le plus petit qu'on souhaite choisir et y le nombre le plus grand.
|
Ensuite, on risque d'utiliser dans notre script des "é", caractère bizarre pour notre console, on met donc tout en haut :
Code : Python
Et voilà pour les petits plus.
Ici, je vous guide pour la structure du programme.
Sachez que vous n'êtes pas obligés de faire comme moi : je ne suis pas parfait, et il existe des millions de possibilités

.
- commencez d'abord par vous demander quelles seront les boucles du programme : qu'est-ce qui se répète, etc... ;
- ensuite réfléchissez à l'affichage : que va-t-on afficher au joueur ? Comment va-t-on lui demander de choisir tel élément ? ;
- puis vient les conditions : quelles sont les conditions que l'on va exploiter, pourquoi, que vont-elles faire ? ;
- enfin, les variables : quelles seront les différentes variables utilisées, leur utilité, leurs valeurs...
Voilà, je vous laisse réfléchir là-dessus !
La correction est juste en dessous, mais n'y allez que si vous ne savez vraiment pas quoi faire... ou que si vous avez fini.
Sinon, il existe le forum (évitez de poster dans les commentaires, ils ne sont pas faits pour ça

).
Au pire des cas, envoyez moi un
M.P. !
Voici l'une des corrections possibles (d'abord le code en entier, ensuite les explications) :
Code : Python 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 | # -*- coding: utf-8 -*-
from random import randrange
fin = 0
while fin == 0:
ordi = randrange(1,3)
choix = 0
joueur = 0
print "\n 1.Pierre", "\n 2.Papier", "\n 3.Ciseaux"
while joueur == 0:
entree = raw_input()
joueur = int(entree)
if joueur != 1 and joueur != 2 and joueur != 3:
print "\n Tapez un chiffre entre 1 et 3"
joueur = 0
if joueur == 1:
print "\n Vous : Pierre"
if ordi == 1:
print "\n Ordi : Pierre", "\n Egalité"
elif ordi == 2:
print "\n Ordi : Papier", "\n Perdu"
elif ordi == 3:
print "\n Ordi : Ciseaux", "\n Gagné"
elif joueur == 2:
print "\n Vous : Papier"
if ordi == 1:
print "\n Ordi : Pierre", "\n Gagné"
elif ordi == 2:
print "\n Ordi : Papier", "\n Egalité"
elif ordi == 3:
print "\n Ordi : Ciseaux", "\n Perdu"
elif joueur == 3:
print "\n Vous : Ciseaux"
if ordi == 1:
print "\n Ordi : Pierre", "\n Perdu"
elif ordi == 2:
print "\n Ordi : Papier", "\n Gagné"
elif ordi == 3:
print "\n Ordi : Papier", "\n Egalité"
while choix != 1:
print "\n 1.Recommencer", "\n 2.quitter"
entree2 = raw_input()
analyse = int(entree2)
if analyse !=1 and analyse != 2:
print "\n Tapez un chiffre entre 1 et 2"
elif analyse == 1:
choix = 1
elif analyse == 2:
choix = 1
fin = 1
|
Pour commencer : on indique qu'on va utiliser des caractères français (ici, des "é") et on importe la fonction randrange, qui génère des chiffres au hasard (enfin, à peu près, on ne peut reproduire le hasard :
pour en savoir plus) :
Code : Python1
2 | # -*- coding: utf-8 -*-
from random import randrange
|
Ensuite, on va créer une première boucle, ce sera celle du programme, si on sort de cette boucle, alors le programme est terminé. Pour cela, on crée une variable "fin" qu'on initialisera au début, ainsi, si "fin" prend une autre valeur que 0 (1 par exemple), la boucle du programme est terminée :
Code : Python
Maintenant commence le début du programme, on initialise les variables qu'on utilisera : la variable "ordi" contiendra un chiffre entre 1 et 3, 1 représentera Pierre, 2 Papier et 3 Ciseaux.
Ensuite la variable "joueur" qui prendra par la suite une valeur entre 1 et 3, valeur qu'aura choisi le joueur et comme pour "ordi", 1 représentera Pierre, 2 Papier et 3 Ciseaux.
Enfin la variable "choix" nous permettra par la suite de savoir si le joueur veut recommencer ou s'il veut quitter le programme.
On affiche ensuite le choix au joueur :
Code : Python1
2
3
4 | ordi = randrange(1,3)
choix = 0
joueur = 0
print "\n 1.Pierre", "\n 2.Papier", "\n 3.Ciseaux"
|
Ensuite on crée une boucle. Cette boucle va servir à récupérer le choix du joueur, on va donc continuer cette boucle tant que "joueur" = 0. Pour récupérer ce que le joueur va taper, on utilise
raw_input(), mais pour être sûr que le joueur va bien entrer un nombre, on ajoutera la fonction
int() :
Code : Python1
2
3
4 | while joueur == 0:
entree = raw_input()
joueur = int(entree)
|
Toujours dans cette boucle, on va vérifier que le joueur entre bien 1, 2 ou 3 et non pas 9, 45 ou 7, on utilise donc une condition, si elle n'est pas remplie, on réinitialise la variable "joueur" :
Code : Python1
2
3
4 | if joueur != 1 and joueur != 2 and joueur != 3:
print "\n Tapez un chiffre entre 1 et 3"
joueur = 0
|
Ceci étant fait, on commence la véritable partie de ce programme : la comparaison des éléments et le résultat, pour cela rien de plus simple, on utilise encore une fois les conditions, et on affiche les éléments du joueur et de l'ordinateur ainsi que le résultat :
Code : Python 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 | if joueur == 1:
print "\n Vous : Pierre"
if ordi == 1:
print "\n Ordi : Pierre", "\n Egalité"
elif ordi == 2:
print "\n Ordi : Papier", "\n Perdu"
elif ordi == 3:
print "\n Ordi : Ciseaux", "\n Gagné"
elif joueur == 2:
print "\n Vous : Papier"
if ordi == 1:
print "\n Ordi : Pierre", "\n Gagné"
elif ordi == 2:
print "\n Ordi : Papier", "\n Egalité"
elif ordi == 3:
print "\n Ordi : Ciseaux", "\n Perdu"
elif joueur == 3:
print "\n Vous : Ciseaux"
if ordi == 1:
print "\n Ordi : Pierre", "\n Perdu"
elif ordi == 2:
print "\n Ordi : Papier", "\n Gagné"
elif ordi == 3:
|
Enfin, on crée une boucle qui va demander au joueur s'il veut continuer ou recommencer, comme pour le choix des éléments, on propose au joueur de répondre par 1 ou par 2, on vérifie qu'il a bien entré 1 ou 2, si il a choisi 1, il veut recommencer : on donne à la variable "choix" la valeur 1, afin de sortir de la boucle, sinon c'est qu'il veut partir, donc on passe les variables "choix" et "fin" à 1 afin de sortir de la boucle où on est et de celle du programme :
Code : Python 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 | while choix != 1:
print "\n 1.Recommencer", "\n 2.quitter"
entree2 = raw_input()
analyse = int(entree2)
if analyse !=1 and analyse != 2:
print "\n Tapez un chiffre entre 1 et 2"
elif analyse == 1:
choix = 1
elif analyse == 2:
choix = 1
fin = 1
|
Ce programme est largement optimisable, et améliorable...
Pour l'optimisation, je vous laisse faire

.
Pour l'amélioration, c'est ce qu'on va voir ensuite.