-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtic_tac_toe.py
More file actions
162 lines (124 loc) · 3.59 KB
/
tic_tac_toe.py
File metadata and controls
162 lines (124 loc) · 3.59 KB
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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
'''
Le but est d'effectuer un programme pour jouer tic-tac-toe entre deux joueurs.
[ 1 | 2 | 3 ]
[1] [ . | . | . ]
[2] [ . | . | . ]
[3] [ . | . | . ]
Le joueur pourra choisir une ligne et une colonne pour affecter le caractère "x" ou "o"
Par exemple, si un joueur choisi la ligne 3 colonne 2 l'affichage sera comme suit :
[ 1 | 2 | 3 ]
[1] [ . | . | . ]
[2] [ . | . | . ]
[3] [ . | x | . ]
La plupart des fonctionnalités sont codées, vous avez à compléter le code, ou utiliser les fonctions déjà faites.
Vous allez coder la fonction choisirCase qui prend en paramètre un tableau, un joueur qui sera sous forme d'un nombre 0 ou 1 et caractère 'x' ou 'o'
Vous allez aussi appeler les fonctions pour compléter le jeu.
Vous allez remarquer que le programme affiche seulement le tableau vide, à vous de jouer ;)
Bon courage
'''
import random
tableau = [['.', '.','.'],
['.', '.','.'],
['.', '.','.']]
def afficherTableau(tableau):
print(" [ 1 | 2 | 3 ]")
print()
for i,case in enumerate(tableau):
print("[" +str(i+1) +"]", "[" , end = " ")
for j , element in enumerate(case) :
print(element, end="")
if j != len(tableau)-1:
print(" |", end=" ")
print(" ]")
print()
def verifierEgalite(tableau):
for i in range(len(tableau)):
for j in range(len(tableau)):
if tableau[i][j]=='.':
return False
return True
def verifierLignes(tableau):
#verifier colonnes
for i in range(0, len(tableau)):
gagnant=True
for j in range(0 , len(tableau)):
if j==2 :
continue
if tableau[i][j] == '.' :
gagnant = False
break
if tableau[i][j] != tableau[i][j+1]:
gagnant = False
if gagnant ==True:
return gagnant
#verifier lignes
for i in range(0, len(tableau)):
gagnant=True
for j in range(0 , len(tableau)):
if j==2 :
continue
if tableau[j][i] == '.' :
gagnant = False
break
if tableau[j][i] != tableau[j+1][i]:
gagnant = False
if gagnant ==True:
return gagnant
#verifier la diagonale
gagnant=True
for i in range(0, len(tableau)):
if i==2 :
continue
if tableau[i][i] == '.' :
gagnant = False
break
if tableau[i][i] != tableau[i+1][i+1]:
gagnant = False
if gagnant ==True:
return gagnant
tab = [tableau[2][0] , tableau[1][1] , tableau[0][2]]
gagnant=True
for i in range (0 , len(tab)) :
if i ==2 :
continue
if tab[i] == ".":
return False
if tab[i]!=tab[i+1]:
return False
return gagnant
def choisirCase(tableau, joueur , caractere):
input()
#Demandez à l'utilisateur de choisir une ligne et une colonne.
#==>
#Verifiez que la ligne et la colonne est bien un chiffre entre 1 et 3.
#==>
#Verifiez que la case n'est pas remplie. pour accéder à une case d'un tableau vous utiliserez la syntaxe suivante : variable = tableau[ligne-1][colonne-1]
#==>
#Affecter le caractère passé en paramètre au tableau[ligne-1][colonne-1]
#==>
pass
def jouer(tableau):
#le joueur et le caractère sont choisis aléatoirement sous forme d'un entier (1 ou 2) et un char ('x' ou 'o')
joueur = random.randint(1,2)
caractere = random.choice(["x" , "o"])
while True :
#Affichez le joueur en utilisant un print.
#==>
print()
afficherTableau(tableau)
choisirCase(tableau , joueur , caractere)
gagnant = verifierLignes(tableau)
if gagnant :
print("joueur " , joueur , "à gagné, Bravo !")
afficherTableau(tableau)
return
if verifierEgalite(tableau) :
print("Egalité :\\")
afficherTableau(tableau)
return
#Changez le tours des joueurs
#==>
#Changez caractère
#==>
#Appel à la fonction principale
jouer(tableau)