回答編集履歴

3

追加

2017/08/03 13:00

投稿

_Victorique__
_Victorique__

スコア1392

test CHANGED
@@ -113,3 +113,95 @@
113
113
  super(TicTacToe, self).mousePressEvent(event)
114
114
 
115
115
  ```
116
+
117
+
118
+
119
+ ###追記3
120
+
121
+
122
+
123
+ ```python
124
+
125
+ a = TicTacToe()
126
+
127
+ a.Check_winner()
128
+
129
+ ```
130
+
131
+ これでは新しいBoardのインスタンスを作成しているので初期状態なのは当たり前。
132
+
133
+ 以下のように書けばいいです。
134
+
135
+ ```python
136
+
137
+ self.Check_winner()
138
+
139
+ ```
140
+
141
+
142
+
143
+ ```python
144
+
145
+ def mousePressEvent(self, event):
146
+
147
+ pos = event.pos()
148
+
149
+ #self.select(int(pos.x()/100), int(pos.y()/100))
150
+
151
+
152
+
153
+ hantei_ryouiki_satan = int(self.goban_left_top_x - int(self.length_of_between / 2))
154
+
155
+ x_from_hantei_ryouiki_satan = int(pos.x()) - hantei_ryouiki_satan
156
+
157
+
158
+
159
+ hantei_ryouiki_joutan = int(self.goban_left_top_y - int(self.length_of_between / 2))
160
+
161
+ y_from_hantei_ryouiki_joutan = int(pos.y()) - hantei_ryouiki_joutan
162
+
163
+
164
+
165
+ x = int(x_from_hantei_ryouiki_satan / self.length_of_between) +1
166
+
167
+ y = int(y_from_hantei_ryouiki_joutan / self.length_of_between) +1
168
+
169
+ print("x = {}, y = {}\n".format(x, y))
170
+
171
+ self.select(x,y)
172
+
173
+
174
+
175
+
176
+
177
+ ###これでは初期状態のインスタンスなので盤面は初期で当たり前
178
+
179
+ a = TicTacToe()
180
+
181
+ a.Check_winner()
182
+
183
+ ###
184
+
185
+
186
+
187
+ ###正しくは以下
188
+
189
+ self.Check_winner()
190
+
191
+ ###
192
+
193
+
194
+
195
+ self.update()
196
+
197
+
198
+
199
+ super(TicTacToe, self).mousePressEvent(event)
200
+
201
+ #追加メソッド
202
+
203
+ def Check_winner(self):
204
+
205
+ print(self.board)
206
+
207
+ ```

2

修正

2017/08/03 13:00

投稿

_Victorique__
_Victorique__

スコア1392

test CHANGED
@@ -44,7 +44,7 @@
44
44
 
45
45
 
46
46
 
47
- ###追記###
47
+ ###追記
48
48
 
49
49
  こうすればboardクラスから他のクラスに盤の情報を渡す必要がありませんよね?
50
50
 
@@ -65,3 +65,51 @@
65
65
  #処理
66
66
 
67
67
  ```
68
+
69
+
70
+
71
+ ###追記2
72
+
73
+ TicTacToeクラスに勝敗判定メソッドを記述し、mousePressEvent()メソッド内で呼び出しましょう。勝敗判定をした後にどういう処理にするかは自分で好きなようにしてください。
74
+
75
+
76
+
77
+ ```python
78
+
79
+ def mousePressEvent(self, event):
80
+
81
+ pos = event.pos()
82
+
83
+
84
+
85
+ hantei_ryouiki_satan = int(self.goban_left_top_x - int(self.length_of_between / 2))
86
+
87
+ x_from_hantei_ryouiki_satan = int(pos.x()) - hantei_ryouiki_satan
88
+
89
+
90
+
91
+ hantei_ryouiki_joutan = int(self.goban_left_top_y - int(self.length_of_between / 2))
92
+
93
+ y_from_hantei_ryouiki_joutan = int(pos.y()) - hantei_ryouiki_joutan
94
+
95
+
96
+
97
+ x = int(x_from_hantei_ryouiki_satan / self.length_of_between) +1
98
+
99
+ y = int(y_from_hantei_ryouiki_joutan / self.length_of_between) +1
100
+
101
+ print("x = {}, y = {}\n".format(x, y))
102
+
103
+ self.select(x, y)
104
+
105
+ self.update()
106
+
107
+ #
108
+
109
+ #ここに勝敗判定メソッドを入れる
110
+
111
+ #
112
+
113
+ super(TicTacToe, self).mousePressEvent(event)
114
+
115
+ ```

1

修正

2017/08/03 11:34

投稿

_Victorique__
_Victorique__

スコア1392

test CHANGED
@@ -39,3 +39,29 @@
39
39
  return #勝者
40
40
 
41
41
  ```
42
+
43
+
44
+
45
+
46
+
47
+ ###追記###
48
+
49
+ こうすればboardクラスから他のクラスに盤の情報を渡す必要がありませんよね?
50
+
51
+ ```python
52
+
53
+ """main"""
54
+
55
+ from filename import Board
56
+
57
+ b = Board()
58
+
59
+ while 1:
60
+
61
+ #処理
62
+
63
+ if b.is_gameover():
64
+
65
+ #処理
66
+
67
+ ```