这个问题是关于处理信息的数组,我有很多方法可以做到这一点,但是我希望有更多经验的程序员提供一些意见,我知道我想做什么,而不是如何以最好的方式组织信息而且目标-C真的让我思考这个,我不想让100个小时的工作做出决定,哎呀这浪费了野兽的方式来做到这一点。所以这里:
我有一个网格,我正在模拟一个比赛场地,每个网格我称之为一个单元格。细胞每个都有大约20个不同的值,所有整数,没什么花哨的。对单元格的更改将通过玩家输入,或通过不同的算法发生或通过周围的单元格进行。
转弯完成后,细胞会发生变化,因此不是实时的。现在,我甚至不确定用MutableArrays,普通数组或纯矩阵来做这件事。数组很好地保留了一个维度的信息,但是如果你必须处理一批10,000个这样的单元格,我会想象会变得非常麻烦。另一方面,简单的矩阵可能不那么优雅,但可能更容易使用。
非常感谢任何见解。
答案 0 :(得分:0)
我在这里有两个选择:
1)使用标准容器
假设游戏区域的大小不变,那么你可以创建一个x * y大小的可变数组,并用可变的字典填充它。通过在第二个可变字典键中提供所有内容,您可以查询和设置它们的属性(当然所有对象,因此在NSNumbers中包装内容等)。对于索引,请使用宏INDEX_FROM_ROW_COL(row,col)并应用相应的代码进行乘法/加法。
2)创建一个从NSObject子类化的辅助对象。它将如上所述管理可变对象,但您可以使用特定于您的应用程序的功能加载它。您可以提供具有“row:”和“col:”参数的方法。根据某些条件更改或设置每个单元格属性的方法。就个人而言,我认为这是一个更好的主意,因为你可以在这里填充逻辑并使其界面更高层次。这样可以更容易记录最新情况。