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)
Bien, programmer en mode console est très facile, cela relève des bases. C'est pour cela que dans le premier chapitre je n'expliquais pas beaucoup, puisqu'il existe déjà un tuto pour les apprendre, sur le Site du Zér0.
Hélas, programmer en mode fenêtre n'est pas aussi facile, cela relève pratiquement d'un autre monde, et, au moment où j'écris ces lignes, le tuto
Apprenons Python ! ne traite pas encore de ce mode.
Je vais donc changer de méthode et vous expliquer bien plus soigneusement comment faire ce Pierre Papier Ciseaux en mode fenêtre.
Pour être plus précis, le mode fenêtre
utilise la
P.O.O., qui est un aspect assez récent de la programmation. Nous verrons comment programmer ainsi dans la prochaine grande partie, mais pour l'instant nous ne faisons que l'
utiliser. Ainsi, vous verrez des choses nouvelles, des choses bizarres, mais que je n'expliquerai que de manière floue pour le moment, car il est difficile d'expliquer un concept que nous ne faisons qu'
utiliser, mais ne vous inquiétez pas, je vous donnerai les explications véritables en temps et en heure

.
Mais avant de commencer, j'aimerais éclaircir certains points.
Voilà une excellente question : Tkinter est-il installé ?
Je m'explique : vous avez (normalement, puisque vous êtes au chapitre 2 c'est que vous avez suivi le premier et donc que vous avez programmé avec Python) Python d'installé sur votre ordinateur.
Si ce n'est pas le cas... Jetez un coup d'oeil
ici, c'est la partie dans
Apprenons Python ! qui vous indique comment installer Python, et refaites le chapitre 1

.
Sinon, on peut continuer : avec Python, on peut utiliser des modules, ce sont des sortes d'extensions qui permettent d'utiliser des fonctions toutes faites et spécialisées dans un domaine.
Nous en avons déjà utilisé un, dans ce bout de code :
Code : Python1 | from random import randrange
|
On importait la fonction "randrange" du module
random, ce qui nous permettait de créer des nombres aléatoirement.
Pour le mode fenêtre, nous allons utiliser un nouveau module :
Tkinter !
Or, pour pouvoir l'utiliser, il faut qu'il soit installé.
Nous allons donc vérifier qu'il est bien installé avec ce code :
Code : Python
Copiez cette ligne et entrez la dans votre console.
Normalement, si rien ne se passe, c'est que c'est bon.
Sinon, si vous avez une énorme erreur qui s'affiche, c'est que vous ne l'avez pas.
Si c'est votre cas, suivez ma démarche (j'ai eu ce problème) : je me suis rendu au forum Autres langages, et j'ai posté
ce message.
Je suis sous Mac OS X, je ne sais donc pas quelle démarche suivre pour les autres systèmes, mais je suis sûr que si vous postez dans le forum, vous trouverez des solutions

.
Pour les Mac : le lien donné dans le forum fait télécharger un logiciel : MacPython, vous n'utiliserez désormais plus le Terminal, mais ce logiciel assez simple (bien qu'il soit en anglais).
Petites explications d'utilisation : double-cliquez sur IDLE, le programme se lance et une fenêtre "Python Shell" s'ouvre.
C'est en somme votre Terminal.
J'ai essayé d'y glisser un fichier .py mais ça n'a pas marché, je suis allé dans File => Open... et j'ai essayé d'ouvrir un fichier .py (enregistré avec Smultron) et ça n'a pas non plus marché.
Voici donc ce que je fais : je vais dans File => New Window et j'y colle mon programme (avec un copié-collé). Ensuite je vais dans Run => Run Module et le programme se lance.
Les erreurs sont affichées dans le Python Shell.
Voilà, ceci étant fait, nous pouvons continuer.
Maintenant, voici un rappel de ce que nous avons fait :
Un
PPC avec compteur,
I.A., et avec des statistiques, en mode console.
Si vous avez lu l'Annexe, la partie sur L'Intelligence Artificielle 2, alors vous avez bien fait

sinon, ce n'est pas grave, en fait, je vais reprendre le code élaboré là-bas, la seule chose qui change par rapport à ce qu'on a vu chapitre 1, c'est que l'
I.A. a été améliorée.
Voici donc le code :
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146 | # -*- coding: utf-8 -*-
from random import randrange
fin = 0
compteur = 0
debut = 0
nb_pierre = 0
nb_papier = 0
nb_ciseaux = 0
dernier_gagne = 0
while fin == 0:
if debut == 0:
ordi = 2
debut = 1
elif nb_pierre > nb_papier and nb_pierre > nb_ciseaux:
ordi = 2
elif nb_papier > nb_ciseaux and nb_papier > nb_pierre:
ordi = 3
elif nb_ciseaux > nb_pierre and nb_ciseaux > nb_papier:
ordi = 1
else:
if dernier_gagne == 1:
ordi = 2
elif dernier_gagne == 2:
ordi = 3
elif dernier_gagne == 3:
ordi = 1
else:
ordi = randrange(1,3)
choix = 0
joueur = 0
print "\n 1.Pierre", "\n 2.Papier", "\n 3.Ciseaux", "\n 4.Fin" ,"\n Score =", compteur
while joueur == 0:
entree = raw_input()
joueur = int(entree)
if joueur != 1 and joueur != 2 and joueur != 3 and joueur != 4:
print "\n Tapez un chiffre entre 1 et 4"
joueur = 0
if joueur == 1:
print "\n Vous : Pierre"
nb_pierre = nb_pierre + 1
if ordi == 1:
print "\n Ordi : Pierre", "\n Egalité"
compteur = compteur + 1
dernier_gagne = 0
elif ordi == 2:
print "\n Ordi : Papier", "\n Perdu"
compteur = compteur - 2
dernier_gagne = 0
elif ordi == 3:
print "\n Ordi : Ciseaux", "\n Gagné"
compteur = compteur + 2
dernier_gagne = 1
elif joueur == 2:
print "\n Vous : Papier"
nb_papier = nb_papier + 1
if ordi == 1:
print "\n Ordi : Pierre", "\n Gagné"
compteur = compteur + 2
dernier_gagne = 2
elif ordi == 2:
print "\n Ordi : Papier", "\n Egalité"
compteur = compteur + 1
dernier_gagne = 0
elif ordi == 3:
print "\n Ordi : Ciseaux", "\n Perdu"
compteur = compteur - 2
dernier_gagne = 0
elif joueur == 3:
print "\n Vous : Ciseaux"
nb_ciseaux = nb_ciseaux + 1
if ordi == 1:
print "\n Ordi : Pierre", "\n Perdu"
compteur = compteur - 2
dernier_gagne = 0
elif ordi == 2:
print "\n Ordi : Papier", "\n Gagné"
compteur = compteur + 2
dernier_gagne = 3
elif ordi == 3:
print "\n Ordi : Papier", "\n Egalité"
compteur = compteur + 1
dernier_gagne = 0
elif joueur ==4:
print "\n Score = ", compteur, "\n Nombre de Pierre =", nb_pierre, "\n Nombre de Papier =", nb_papier, "\n Nombre de Ciseaux =", nb_ciseaux, "\n Appuyez sur la touche 1 pour quitter le programme"
while choix != 1:
entree2 = raw_input()
analyse = int(entree2)
if analyse !=1:
print "\n Tapez 1 pour quitter"
elif analyse == 1:
choix = 1
fin = 1
|
Voilà, nous allons nous baser, non pas sur le code (car il va falloir tout refaire à partir de Zér0) mais sur la structure, ou plutôt les fonctionnalités : ce que nous voulons faire, c'est un
PPC en mode fenêtre aussi bien et donc avec les même fonctionnalités que celui en mode console.
C'est parti !