1
1
import random
2
2
3
+
3
4
def pb (b ):
4
5
for r in b :
5
6
print ('|' .join (r ))
6
7
print ('-' * 5 )
7
8
9
+
8
10
def iw (b , p ):
9
11
return any (all (c == p for c in r ) for r in b ) or any (all (b [i ][j ] == p for i in range (3 )) for j in range (3 )) or all (b [i ][i ] == p for i in range (3 )) or all (b [i ][2 - i ] == p for i in range (3 ))
10
12
13
+
11
14
def id (b ):
12
15
return all (all (c != '.' for c in r ) for r in b )
13
16
17
+
14
18
def gec (b ):
15
19
return [(i , j ) for i in range (3 ) for j in range (3 ) if b [i ][j ] == '.' ]
16
20
21
+
17
22
def mm (b , d , im ):
18
23
s = {'X' : 1 , 'O' : - 1 , 'draw' : 0 }
19
24
if iw (b , 'X' ):
@@ -39,6 +44,7 @@ def mm(b, d, im):
39
44
bs = min (bs , s )
40
45
return bs
41
46
47
+
42
48
def gbm (b ):
43
49
bs = float ('-inf' )
44
50
bm = None
@@ -51,6 +57,7 @@ def gbm(b):
51
57
bm = (i , j )
52
58
return bm
53
59
60
+
54
61
def main ():
55
62
b = [['.' for _ in range (3 )] for _ in range (3 )]
56
63
p = 'X'
@@ -66,7 +73,8 @@ def main():
66
73
print ("It's a draw!" )
67
74
break
68
75
if p == 'X' :
69
- r , c = map (int , input ("Enter row and column (0-2) separated by space: " ).split ())
76
+ r , c = map (int , input (
77
+ "Enter row and column (0-2) separated by space: " ).split ())
70
78
if b [r ][c ] != '.' :
71
79
print ("Invalid move. Try again." )
72
80
continue
@@ -78,5 +86,6 @@ def main():
78
86
b [r ][c ] = 'O'
79
87
p = 'X'
80
88
89
+
81
90
if __name__ == "__main__" :
82
91
main ()
0 commit comments