经过长时间试图解决这个难题但没有成功,我不得不寻求帮助。到目前为止,我设法使用 python 构建了网格,但在对角线上插入了一个字符串,这超出了我对语言的理解。请看我下面的代码:board = []for x in range(0,5): board.append(["O"] * 5)print(board)def print_board(board): for row in board: print(" ".join(row))print_board(board)O O O O OO O O O OO O O O OO O O O OO O O O O从这里开始,我尝试逐行执行并弹出每行的最后一个,然后交替插入 x,例如。但是,我失败了:我需要得到以下结果:x O O O OO x O O OO O x O OO O O x OO O O O x
3 回答
跃然一笑
TA贡献1826条经验 获得超6个赞
为什么不只是
size = 5
board = []
for row in range(size):
board.append(["O"]*row + ["X"] + ["O"]*(size-row-1))
墨色风雨
TA贡献1853条经验 获得超6个赞
如果您确定您的板是正方形,则对角线元素将是行号和列号相同的地方。您可以通过 row = board[rowNum] 访问每一行,然后 row[colNum] 将为您提供一个元素。如果 rowNum == colNum 你在对角线上。您可以像我在下面所做的那样将两者挤压在一起(board[i][i])。
注意:如果你的板子是一个列表(可变对象),在这样的函数中调用它会改变传递给 boardObject 的变量的内容,即使没有返回“boardObject”,所以请注意那个。
def replace_diag(boardObject, replacement):
for i in range(len(boardObject)):
boardObject[i][i] = replacement
www说
TA贡献1775条经验 获得超8个赞
board = [] for x in range(0,5): board.append(["O"] * 5)
印刷(板)
def print_board(board): for i,row in enumerate(board): row[i]="X"
印刷板(板)
添加回答
举报
0/150
提交
取消