我正在尝试创建一个代表棋盘的列表。我有这个代码:
#possible list items
EMPTY = "-"
ROOK = "ROOK"
KNIGHT = "KNIGHT"
BISHOP = "BISHOP"
QUEEN = "QUEEN"
KING = "KING"
PAWN = "PAWN"
board = []
royal_row = [] #list for row containing king
pawn_row = []#list for pawn row
row = [] #generic row
#setting the board
for i in range(8):
if i == 0 or 7:
royal_row = [ROOK,KNIGHT,BISHOP,QUEEN,KING,BISHOP,KNIGHT,ROOK]
board.append(royal_row)
elif i == 1 or 6:
pawn_row = [PAWN for i in range(8)]
board.append(pawn_row)
else:
row = [EMPTY for i in range(8)]
board.append(row)
for i in range(8):
print(board[i], end = "\n")
当我运行此代码时,它只会打印:
['ROOK', 'KNIGHT', 'BISHOP', 'QUEEN', 'KING', 'BISHOP', 'KNIGHT', 'ROOK']
['ROOK', 'KNIGHT', 'BISHOP', 'QUEEN', 'KING', 'BISHOP', 'KNIGHT', 'ROOK']
['ROOK', 'KNIGHT', 'BISHOP', 'QUEEN', 'KING', 'BISHOP', 'KNIGHT', 'ROOK']
['ROOK', 'KNIGHT', 'BISHOP', 'QUEEN', 'KING', 'BISHOP', 'KNIGHT', 'ROOK']
['ROOK', 'KNIGHT', 'BISHOP', 'QUEEN', 'KING', 'BISHOP', 'KNIGHT', 'ROOK']
['ROOK', 'KNIGHT', 'BISHOP', 'QUEEN', 'KING', 'BISHOP', 'KNIGHT', 'ROOK']
['ROOK', 'KNIGHT', 'BISHOP', 'QUEEN', 'KING', 'BISHOP', 'KNIGHT', 'ROOK']
['ROOK', 'KNIGHT', 'BISHOP', 'QUEEN', 'KING', 'BISHOP', 'KNIGHT', 'ROOK']
我的预期输出是:
['ROOK', 'KNIGHT', 'BISHOP', 'QUEEN', 'KING', 'BISHOP', 'KNIGHT', 'ROOK']
['PAWN', 'PAWN', 'PAWN', 'PAWN', 'PAWN', 'PAWN', 'PAWN', 'PAWN']
['-', '-', '-', '-', '-', '-', '-', '-']
['-', '-', '-', '-', '-', '-', '-', '-']
['-', '-', '-', '-', '-', '-', '-', '-']
['-', '-', '-', '-', '-', '-', '-', '-']
['PAWN', 'PAWN', 'PAWN', 'PAWN', 'PAWN', 'PAWN', 'PAWN', 'PAWN']
['ROOK', 'KNIGHT', 'BISHOP', 'QUEEN', 'KING', 'BISHOP', 'KNIGHT', 'ROOK']
如果我将 1、0、6 和 7 与它们自己的 elif 子句分开,那么它会正确打印,但我想了解为什么原始代码没有
您决定更改 if 并放入:i == 0 or i == 7
和i == 1 or i == 6
#possible list items
EMPTY = "-"
ROOK = "ROOK"
KNIGHT = "KNIGHT"
BISHOP = "BISHOP"
QUEEN = "QUEEN"
KING = "KING"
PAWN = "PAWN"
board = []
royal_row = [] #list for row containing king
pawn_row = []#list for pawn row
row = [] #generic row
#setting the board
for i in range(8):
if i == 0 or i == 7:
royal_row = [ROOK,KNIGHT,BISHOP,QUEEN,KING,BISHOP,KNIGHT,ROOK]
board.append(royal_row)
elif i == 1 or i == 6:
pawn_row = [PAWN for i in range(8)]
board.append(pawn_row)
else:
row = [EMPTY for i in range(8)]
board.append(row)
for i in range(8):
print(board[i], end = "\n")
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句