Python用于构建网格并填充网格的每个单元格

时间:2014-04-30 13:36:52

标签: python

希望有人可以在这里提供帮助,只需从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)

1 个答案:

答案 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