【问题标题】:Creating classes in Real Time?实时创建课程?
【发布时间】:2011-03-21 14:19:21
【问题描述】:

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

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

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

【问题讨论】:

    标签: objective-c class-design shuffle


    【解决方案1】:

    我认为您不理解向您建议的解决方案。您可以动态地实例化一个类的对象(这完全正常)

    ,而不是动态生成类
    1. 您的问题列表是“扁平化”的,只是约定保证每组 6 个相邻项目对应一个问题。取而代之的是,创建一个问题数组(其中每个问题都是一个问题元素数组),然后您就可以对外部数组进行洗牌,而无需担心。

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

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

    【讨论】:

    • 是的,这很有意义,我会尝试一下。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 2016-08-07
    相关资源
    最近更新 更多