如何在 Python 上创建游戏板
How to create a game board on Python
我想在 Python 中重新制作第十五场比赛,但我一直坚持绘制二维棋盘。我以前在 C 中做过这个,我尝试再次使用列表,如下所示:
numbers = d * d - 1
global blankx, blanky, board
blankx = d - 1
blanky = d - 1
for i in range(d):
for j in range(d):
board[i][j] = numbers
numbers -= 1
board[blankx][blanky] = d * d
其中d是尺寸,blankx和y是右下角空白space的坐标。但是它说:
'list index out of range' 线路板[i][j] = 数字
我不明白为什么,有什么建议吗?
board = [[i*d + j + 1 for i in range(d)] for j in range(d)]
board[blankx][blanky] = d * d
在 Python 中,访问 list
的索引不会自动将 list
扩展到所需的最小长度。您将不得不初始化一个空板,或者一起创建和填充它。我建议 list
理解:
board = [[d*d-1-i-d*j for i in range(d)] for j in range(d)]
这等效于以下显式循环,它向每个 list
和 append()
添加新项目:
board = []
for i in range(d):
row = []
for j in range(d):
row.append(d*d-1-i-d*j)
board.append(row)
我想在 Python 中重新制作第十五场比赛,但我一直坚持绘制二维棋盘。我以前在 C 中做过这个,我尝试再次使用列表,如下所示:
numbers = d * d - 1
global blankx, blanky, board
blankx = d - 1
blanky = d - 1
for i in range(d):
for j in range(d):
board[i][j] = numbers
numbers -= 1
board[blankx][blanky] = d * d
其中d是尺寸,blankx和y是右下角空白space的坐标。但是它说: 'list index out of range' 线路板[i][j] = 数字 我不明白为什么,有什么建议吗?
board = [[i*d + j + 1 for i in range(d)] for j in range(d)]
board[blankx][blanky] = d * d
在 Python 中,访问 list
的索引不会自动将 list
扩展到所需的最小长度。您将不得不初始化一个空板,或者一起创建和填充它。我建议 list
理解:
board = [[d*d-1-i-d*j for i in range(d)] for j in range(d)]
这等效于以下显式循环,它向每个 list
和 append()
添加新项目:
board = []
for i in range(d):
row = []
for j in range(d):
row.append(d*d-1-i-d*j)
board.append(row)