我的程序是类似于connect 4的游戏,但它是一个15x15的主板。获胜条件是5个相邻的部分。如果有5个,则该方法应返回True,否则返回False。现在这是我的水平检查,但它只是跳过我的for循环并返回None。我真正需要的是关于如何让for循环工作的一些建议,因为它们被忽略了
Carbon @1233769590 {#219 ▼
date: 2009-02-04 17:46:30.0 Europe/London (+00:00)
}
DateTime @1233446400 {#217 ▼
date: 2009-02-01 00:00:00.0 Europe/London (+00:00)
}
答案 0 :(得分:1)
您在for循环中呼叫return False
。你真的只想在真实案例中这样做。
您还应该查看for:else:construct。
在整个矩阵中搜索后返回False。这就是你的逻辑应该是这样的:
def current_player_is_winner(self):
''' Depending on the win_count parameter once that many pieces are adjacendt a winer is declared'''
print(self.__current_player)
piece = GoPiece(self.__current_player)
print(piece)
win_count = 0
#Horizontal test
row = 0
col = 0
for col in range(self.__board_size):
for row in (range(self.__board_size)):
if self.__go_board[row][col] == piece:
win_count += 1
col += 1
print(win_count)
if win_count == 5:
return True
else:
row+=1
win_count = 0
return False