-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgomoku.py
More file actions
126 lines (120 loc) · 3.42 KB
/
gomoku.py
File metadata and controls
126 lines (120 loc) · 3.42 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
'''
Ce jeu a été fait par higraoid, higraaaa sur discord
si il y a des bugs, merci de m'en faire part
Le but du jeu de gomoku c'est d'aligner 5 pion à la
verticale, diagonale ou horizontale.
Au début y'a quelques règles si vous voulez vrm jouer,
je vous laisser regarder ça sur internet
'''
def grille():
return [[0 for i in range(19)] for j in range(19)]
#a = ligne, b=colonne
def affichage(g):
n = len(g)
w = len(str(n))
symbole = {0: ".", 1: "X", 2: "O"}
for j in range(n):
row = [symbole[x] for x in g[n-1-j]]
print(str(n-j).rjust(w) + " " + " ".join(s.rjust(w) for s in row))
print(" " * (w+1) + " ".join(str(i+1).rjust(w) for i in range(n)))
def verif(a, b, g):
ap, bp = a-1, b-1
if (ap<0 or ap>len(g)-1) or (bp<0 or bp>len(g)-1):
return False
elif g[ap][bp] == 0:
print(g)
print("ct gab")
return True
return False
def joue(a, b, g, j):
a = a-1
b = b-1
if verif(a+1, b+1, g) == True:
g[a][b] = j%2+1
return g
def gagner(a, b, g, j):
nb = 0
a, b = a-1, b-1
for i in range(5):
nb = 0
for k in range(5):
ap, bp = a-i, b-i
try:
if g[ap+k][bp+k] == (j%2+1):
nb += 1
if nb == 5:
return True
except IndexError:
None
for i in range(5):
nb = 0
for k in range(5):
ap, bp = a-i, b-i
try:
if g[ap-k][bp+k] == (j%2+1):
nb += 1
if nb == 5:
return True
except IndexError:
None
for i in range(5):
nb = 0
for k in range(5):
ap = a-i
try:
if g[ap+k][b] == (j%2+1):
nb += 1
if nb == 5:
return True
except IndexError:
None
for i in range(5):
nb = 0
for k in range(5):
bp = b-i
try:
if g[a][bp+k] == (j%2+1):
nb += 1
if nb == 5:
return True
except IndexError:
None
# fin = False
joueur = 0
gr = grille()
affichage(gr)
while True:
if joueur%2 == 0:
a = int(input("Joueur 1 : ligne "))
b = int(input("Joueur 1 : colonne "))
if verif(a, b, gr) == True:
print("vérifié j1")
gril = joue(a, b, gr, joueur)
print(gr)
print("vérifié j1")
affichage(gril)
if gagner(a, b, gril, joueur) == True:
print("Le joueur 1 à gagné")
break
else:
joueur += 1
gr = gril
elif verif(a, b, gril) == False:
print("T'es bête ou quoi mon frr")
elif joueur%2 == 1:
a = int(input("Joueur 2 : ligne "))
b = int(input("Joueur 2 : colonne "))
if verif(a, b, gr) == True:
print("vérifié j2")
gril = joue(a, b, gr, joueur)
print(gril)
print("vérifié j2")
affichage(gril)
if gagner(a, b, gril, joueur) == True:
print("Le joueur 2 à gagné")
break
else:
joueur += 1
gr = gril
elif verif(a, b, gril) == False:
print("T'es bête ou quoi mon frr")