私がそのようなリストを持っているとしましょう:
board =
[[0, 0, 0, 0, 0,],
[0, 0, 0, 0, 0,],
[0, 0, 0, 0, 0,],
[0, 0, 0, 0, 0,],
[0, 0, 0, 0, 0,]
これは、2Dボード上のスペースを表します。
プレイヤー1が行くと、1に変わります。
プレイヤー2が行くと、2に変わります。
勝利条件は次のとおりです。行または列が完全に埋められているか、斜めになっている場合。
水平または垂直の勝者のための私の関数は次のとおりです。
def horizontal_winner(board, boxes):
'''
function will find if the horizontal win conditions apply
given 2 inputs. the board, a list and the number of boxes
- board - the 2D board of the game
- boxes - number of boxes per side
'''
for i in range(boxes):
player_1 = 0
player_2 = 0
for j in range(boxes):
if board[i][j] == 1:# first iteration - [1, 0, 0, 0, 0]
player_1 += 1
print("p1: " + str(player_1))
elif board[i][j] == 2:# first iteration - [2, 0, 0, 0, 0]
player_2 += 1
print("p2: " + str(player_2))
if player_1 == boxes:
return True
elif player_2 == boxes:
return False
def vertical_winner(board, boxes):
'''
function will find if the vertical win conditions apply
given 2 inputs. the board, a list and the number of boxes per side
- board - the 2D board of the game
- boxes - number of boxes per side
'''
for i in range(boxes):
player_1 = 0
player_2 = 0
for j in range(boxes):
if board[j][i] == 1:# first iteration - [1, 0, 0, 0, 0]
player_1 += 1
elif board[j][i] == 2:# first iteration - [2, 0, 0, 0, 0]
player_2 += 1
if player_1 == boxes:
return True
elif player_2 == boxes:
return False
斜めにチェックするにはどうすればよいですか?