Skip to content

Commit 91ec571

Browse files
committed
update source.py
1 parent d3e35e7 commit 91ec571

File tree

1 file changed

+22
-18
lines changed

1 file changed

+22
-18
lines changed

MiniMax/source.py

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,27 @@ def __init__(self):
88
def reset(self):
99
self.game_space = [[None for _ in range(self.game_dim)] for _ in range(self.game_dim)]
1010
self.player_turn = 0
11-
12-
# turn this into calc_score function coz in 'NycharanXOGame' winner gets the more score than other player
13-
14-
def calc_score(self):
15-
pass
16-
17-
def check_xo(self):
11+
12+
def fetch_game(self):
13+
def calc_score(line):
14+
for i in range(len(line) - 1):
15+
score = 0
16+
counter = 0
17+
18+
if line[i] == line[i + 1] == self.player_turn:
19+
counter += 1
20+
else:
21+
if counter > 2:
22+
score += (counter - 2) + (counter - 3)
23+
return score
24+
1825
for i in range(self.game_dim):
19-
if all(self.game_space[i][j] == self.game_space[i][0] for j in range(1,self.game_dim)) and self.game_space[i][0] != None:
20-
return self.game_space[i][0]
21-
if all(self.game_space[j][i] == self.game_space[0][i] for j in range(1,self.game_dim)) and self.game_space[0][i] != None:
22-
return self.game_space[0][i]
26+
calc_score(self.game_space[i])
27+
calc_score([j[i] for j in self.game_space])
2328

24-
if all(self.game_space[j][j] == self.game_space[0][0] for j in range(1,self.game_dim)) and self.game_space[0][0] != None:
25-
return self.game_space[0][0]
26-
if all(self.game_space[j][i] if i+j == (self.game_dim - 1) else -1 == self.game_space[0][(self.game_dim - 1)] for j in range(1,self.game_dim)) and self.game_space[0][(self.game_dim - 1)] != None:
27-
return self.game_space[0][(self.game_dim - 1)]
29+
for k in range(2*self.game_dim -1):
30+
calc_score([self.game_space[i][j] for i in range(self.game_dim) if 0 <= (j := k - i) < self.game_dim])
31+
calc_score([self.game_space[i][j] for i in range(self.game_dim) if 0 <= (j := i + k - self.game_dim + 1) < self.game_dim])
2832

2933
for row in self.game_space:
3034
if None in row:
@@ -52,7 +56,7 @@ def minimax(game_space, maximize):
5256
return 0
5357

5458
if maximize:
55-
max_score = -1
59+
max_score = float('-inf')
5660
for i in range(self.game_dim):
5761
for j in range(self.game_dim):
5862
if game_space[i][j] == None:
@@ -62,7 +66,7 @@ def minimax(game_space, maximize):
6266
max_score = max(max_score, score)
6367
return max_score
6468
else:
65-
max_score = -1
69+
max_score = float('-inf')
6670
for i in range(self.game_dim):
6771
for j in range(self.game_dim):
6872
if game_space[i][j] == None:
@@ -72,7 +76,7 @@ def minimax(game_space, maximize):
7276
max_score = min(max_score, score)
7377
return max_score
7478

75-
max_score = -1
79+
max_score = float('-inf')
7680
max_move = (-1, -1)
7781
for i in range(self.game_dim):
7882
for j in range(self.game_dim):

0 commit comments

Comments
 (0)