希望有人可以在这里提供帮助,只需从Python开始,并想知道我是否在正确的轨道上进行以下操作。
我已经定义了一类名为Cell的对象......
class Cell(object):
def __init__(self, name):
self.name=name
self.location=(col, row)
self.value=string
这些Cell将有一个网格,我想通过网格中的每个Cell工作,并为每个Cell的self.value分配1到18范围内的随机值。我正在考虑使用(col,row)作为网格的X轴和Y轴,因此每个Cell都有一个(col,row)列表。
那么,Grid应该由填充的Cell组成,在这里定义构建Grid的过程是正确的吗? (我知道'询问用户尺寸'是不正确的,只需输入它以注意'尺寸'来自哪里)
class Grid(object):
def __init__(self, name, col, row, value):
#ask user for size
for row in range(size):
for col in range(size):
Cell(value) = random.randint(1,18)
答案 0 :(得分:0)
我认为有几种方法可以设置它,但它非常依赖于您对输出的要求。您是否需要修改单元格,移动单元格,向每个单元格添加内容等等,在开始设计之前,您需要提出所有问题。
这是一个示例,其中每个单元格都有一个由列和网格编号组成的唯一名称。也许,如果每个人都需要一个随机属性作为value
,你可以在每个单元格的构造函数中分配它,然后在Grid
类中创建另一个用这些值填充的列表?这实际上取决于您的要求以及您如何选择访问这些属性。
class Cell(object):
def __init__(self, name):
self.name = name
class Grid(object):
def __init__(self, col_amount, row_amount):
self.cell_list = [] # empty list to hold all cells
for col in range(col_amount):
for row in range(row_amount):
# create each cell as instance of Cell,
# with the concatenated col and row numbers
# as the name, then add the cell.name to cell_list
cell = Cell(str(col) + '_' + str(row))
self.cell_list.append(cell.name)
grid = Grid(10,10) # make an instance of Grid with size 10x10
print grid.cell_list