你会如何用Python代表MineSweeper网格?
发布时间:2020-12-20 12:39:17 所属栏目:Python 来源:网络整理
导读:您将在 Python中使用什么数据结构来表示MineSweeper网格的内部状态? 每个x,y位置将保持一个数值,表示其当前的单元状态(未探测,我的,标志,?). 我应该使用嵌套列表吗?这似乎是最接近2D数组的东西,它是我可能在任何其他语言中使用的(2d数组). 我不熟悉Python
您将在
Python中使用什么数据结构来表示MineSweeper网格的内部状态?
每个x,y位置将保持一个数值,表示其当前的单元状态(未探测,我的,标志,?). 我应该使用嵌套列表吗?这似乎是最接近2D数组的东西,它是我可能在任何其他语言中使用的(2d数组). 我不熟悉Python,所以有人可以给我一个建议吗? 解决方法
使用嵌套列表.它很容易设置:
field = [([None] * height) for x in range(width)] field[x][y] = "*" 最清楚的事情可能是一个新类: class MineField(object): class _SingleField(object): mine = False flagged = False covered = True width = None height = None def __init__(self,width,height): super(MineField,self).__init__() self.width = width self.height = height self._field = [[self._SingleField() for y in range(height)] for x in range(width)] self.init_field(10) def init_field(self,minecount): pass def __getitem__(self,index): x,y = index return self._field[x][y] 要像这样使用: > m = MineField(10,10) > m[4,9].mine False (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |