###前提・実現したいこと
随時更新されていくリストの情報を他のクラスに渡したい
###発生している問題・エラーメッセージ
今現在三目並べのプログラムを作っていますが、盤の情報を
self.board = [[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1]
としており
def select(self, x, y): if x < 1 or y < 1 or x > 3 or y > 3: return if self.board[y][x] == -1: if self.turn == 1: self.turn = self.siro elif self.turn == -2: self.turn = self.kuro else: self.turn = self.kuro self.goban[y][x] = self.turn self.board[y][x] = self.turn else: print("そこには置けません")
碁を置いたときにこのselectメソッドが呼び出され盤の情報が更新されていくのですが、この更新されていくself.boardのリストの情報を
新たに作る勝敗判定のクラスに上手く渡せなく、このselect内でインスタンスを作って勝敗判定のクラスを呼んできても、上記の初期状態のself.boardのリストのまま渡され困っています。
どうしたら更新されていくリストの情報を他のクラスに渡せるのでしょうか?
###追記
新たにメソッドを作りmousePressEvent()メソッドで呼ぶようにしてみたのですが
def mousePressEvent(self, event): pos = event.pos() #self.select(int(pos.x()/100), int(pos.y()/100)) hantei_ryouiki_satan = int(self.goban_left_top_x - int(self.length_of_between / 2)) x_from_hantei_ryouiki_satan = int(pos.x()) - hantei_ryouiki_satan hantei_ryouiki_joutan = int(self.goban_left_top_y - int(self.length_of_between / 2)) y_from_hantei_ryouiki_joutan = int(pos.y()) - hantei_ryouiki_joutan x = int(x_from_hantei_ryouiki_satan / self.length_of_between) +1 y = int(y_from_hantei_ryouiki_joutan / self.length_of_between) +1 print("x = {}, y = {}\n".format(x, y)) self.select(x,y) ###追加したコード a = TicTacToe() a.Check_winner() ### self.update() super(TicTacToe, self).mousePressEvent(event) #追加メソッド def Check_winner(self): print(self.board)
とりあえずCheck_winner()メソッドの方はprint文出力だけにしてるのですが
やはりmousePressEvent()の方で呼び出してもself.boardの情報が更新されておらず
初期状態として呼び出してしまうのですが、やはりどこか間違っているのでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。