大家好,我有一个计算机科学课的作业,我必须模仿不同版本的康威生命游戏:https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life
(简而言之,用户输入一组带有'alive'单元格的坐标,然后用户输入电路板的大小,然后输入程序迭代的次数。对于每次迭代,死细胞变为活着如果它被一定数量的细胞包围,并且如果活细胞没有被一定数量的活细胞包围,它就会死亡。
我的想法是实现一个带有两个键的字典:坐标,接收坐标列表和状态,接收字符串(“直播”或“死”)但我很难实现这一点。首先,我必须创建一个用户输入的电路板大小的字典,其中包含n行和m列。其次,我的词典的第一个关键词“坐标”必须接收棋盘的所有坐标。
这种方法是否可行?提前谢谢。
答案 0 :(得分:0)
您可以使用此方法获取输入
m=5
n=5
#Generate m*n board with all cells Dead
board=[["Dead" for x in range(m)] for y in range(n)]
#Input list with alive cells
alivelist=[[0,0],[2,3],[4,4]]
print board
# [['Dead', 'Dead', 'Dead', 'Dead', 'Dead'],
# ['Dead', 'Dead', 'Dead', 'Dead', 'Dead'],
# ['Dead', 'Dead', 'Dead', 'Dead', 'Dead'],
# ['Dead', 'Dead', 'Dead', 'Dead', 'Dead'],
# ['Dead', 'Dead', 'Dead', 'Dead', 'Dead']]
#Block to mark cells Alive
for x in alivelist:
board[x[0]][x[1]]="Alive"
print board
# [['Alive', 'Dead', 'Dead', 'Dead', 'Dead'],
# ['Dead', 'Dead', 'Dead', 'Dead', 'Dead'],
# ['Dead', 'Dead', 'Dead', 'Alive', 'Dead'],
# ['Dead', 'Dead', 'Dead', 'Dead', 'Dead'],
# ['Dead', 'Dead', 'Dead', 'Dead', 'Alive']]