私はtik-tak-toeゲームを作成しています。ネストしたセットの反復でインデックス外エラーが発生する
def check_win(self,mark):
return ((self.bd[1]==self.bd[2]==self.bd[3]==mark) or
(self.bd[4] ==self.bd[5] ==self.bd[6] ==mark) or
(self.bd[7]==self.bd[8]==self.bd[9] ==mark) or
(self.bd[1] ==self.bd[4] ==self.bd[7] ==mark) or
(self.bd[2] ==self.bd[5] ==self.bd[8] ==mark) or
(self.bd[3] ==self.bd[6] ==self.bd[9]==mark) or
(self.bd[1] ==self.bd[5] ==self.bd[9]==mark) or
(self.bd[3] ==self.bd[5] ==self.bd[7]==mark)
)
小さなコードを使用したいのですが、インデックスエラーで私を逃してしまいます。
win_comb = ((1,2,3),(4,5,6),(7,8,9),(1,4,7),(2,5,6),(3,6,9),(1,5,9),(3,5,7))
def check_win(self,mark):
#pdb.set_trace()
for elem in self.win_comb:
if self.win_comb[elem[0]]== self.win_comb[elem[1]]== self.win_comb[elem[2]]==mark:
return True
else:
return False
ERROR:
if self.win_comb[elem[0]]== self.win_comb[elem[1]]== self.win_comb[elem[2]]==mark:IndexError: tuple index out of range
あなたはすでに 'win_comb'の個々のタプルをループし、それらの要素で' win_comb'のインデックスを作成しようとしています( 'win_comb [elem]')。単に 'elem [0]'を直接使用してください。 – Evert