回答編集履歴

1

コード修正

2019/08/17 01:07

投稿

can110
can110

スコア38266

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(3):
35
+ for r in range(N):
32
36
 
33
37
  bs, fs = [], []
34
38
 
35
- for c in range(3):
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(3):
59
+ for r in range(N):
56
60
 
57
- for c in range(3):
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(3):
95
+ for r in range(N):
92
96
 
93
- for c in range(3):
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/)