回答編集履歴
1
コード修正
test
CHANGED
@@ -11,6 +11,10 @@
|
|
11
11
|
from pygame.locals import *
|
12
12
|
|
13
13
|
import sys
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
N = 5 # マス目の数
|
14
18
|
|
15
19
|
|
16
20
|
|
@@ -28,11 +32,11 @@
|
|
28
32
|
|
29
33
|
buttons, flags = [], []
|
30
34
|
|
31
|
-
for r in range(
|
35
|
+
for r in range(N):
|
32
36
|
|
33
37
|
bs, fs = [], []
|
34
38
|
|
35
|
-
for c in range(
|
39
|
+
for c in range(N):
|
36
40
|
|
37
41
|
bs.append( pygame.Rect(r*45,c*45,40,40))
|
38
42
|
|
@@ -52,9 +56,9 @@
|
|
52
56
|
|
53
57
|
# ボタン描画
|
54
58
|
|
55
|
-
for r in range(
|
59
|
+
for r in range(N):
|
56
60
|
|
57
|
-
for c in range(
|
61
|
+
for c in range(N):
|
58
62
|
|
59
63
|
|
60
64
|
|
@@ -88,9 +92,9 @@
|
|
88
92
|
|
89
93
|
elif event.type == pygame.MOUSEBUTTONDOWN:
|
90
94
|
|
91
|
-
for r in range(
|
95
|
+
for r in range(N):
|
92
96
|
|
93
|
-
for c in range(
|
97
|
+
for c in range(N):
|
94
98
|
|
95
99
|
if buttons[r][c].collidepoint(event.pos):
|
96
100
|
|
@@ -110,4 +114,6 @@
|
|
110
114
|
|
111
115
|
|
112
116
|
|
113
|
-
縦の各ライン、横の各ライン、対角線の2つのラインについて、いずれかのラインがすべてTrueなら勝ちと判定すればよいです。コードは長くなるので省略しますがfor文を使えば比較的短く書けます。
|
117
|
+
縦の各ライン、横の各ライン、対角線の2つのラインについて、いずれかのラインがすべてTrueなら勝ちと判定すればよいです。コードは長くなるので省略しますがfor文と`numpy`を使えば比較的短く書けます。
|
118
|
+
|
119
|
+
参考:[Python implementation of automatic Tic Tac Toe game using random number](https://www.geeksforgeeks.org/python-implementation-automatic-tic-tac-toe-game-using-random-number/)
|