实时创建课程?

时间:2011-03-21 14:19:21

标签: objective-c class-design shuffle

我在Objective-C中制作一个匹配的游戏,我试图找出一种方法来在它们被洗牌后保留数组的值。

从'plist'文件填充三个不同的数组,它们各自的元素相互对应(即第一个数组中的第n个元素与第二个和第三个数组中的第n个元素匹配)。
然后对阵列进行洗牌和显示。然而,在改组过程中,我失去了在元素之间找到匹配的能力,因为它们现在是随机顺序。

可以在此page找到此问题的解决方案。用户“chrisL”建议为每个问题/答案匹配进行课程。这是一个合理的解决方案,但我需要使这个游戏变得灵活,以便有人可以添加任意数量的匹配元素,而无需触摸任何代码。
我觉得这样做的唯一方法就是确定有多少匹配的项目,并为它们实时创建类,但这听起来像编程不切实际。
任何人都可以向我发一些指示来解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

我认为您不明白向您建议的解决方案。你可以动态地实例化类的对象(完全正常的事情),而不是动态地生成类

  1. 您的问题列表是“扁平的”,只是约定保证每组6个相邻的项目对应一个问题。相反,这样做会创建一个问题数组,(每个问题都是一个问题元素数组),然后你就可以洗掉外部数组而不用担心。

    [Q1, a1, b1, c1, Q2, a2, c2] --> [[Q1, a1, b1, c1], [Q2, a2, b2, c2]]
    
  2. 下一点是使用数组来表示问题,通过约定第一个元素是问题文本而下一个元素是选项是糟糕的编程习惯。不使用此表示形式,而是创建一个Question类,然后实例化Question对象以填充问题列表。 这种面向对象的方法有两个主要的好处:

    • 您可以在访问问题时使用正确的名称和方法,而不是ad-hoc索引。
    • 后面添加不同类型的问题会变得更容易。