2011-03-21 5 views
0

Je fais un jeu de correspondance en Objective-C et j'essaie de trouver un moyen de conserver les valeurs d'un tableau après leur mélange.Création de classes en temps réel?

Trois tableaux différents sont peuplés à partir de fichiers «plist» avec leurs éléments respectifs correspondant les uns aux autres (à savoir, le nième élément du premier tableau correspond au nième élément dans les deuxième et troisième rangées).
Les tableaux sont ensuite mélangés et affichés. Pendant le processus de brassage cependant, je perds la capacité de trouver une correspondance entre les éléments, car ils sont maintenant dans un ordre aléatoire. Une solution à ce problème peut être trouvée sur cette page. L'utilisateur "chrisL" suggère de créer une classe pour chaque correspondance de question/réponse. C'est une solution raisonnable mais j'ai besoin de rendre ce jeu flexible afin que quelqu'un puisse ajouter autant d'éléments correspondants qu'il le souhaite sans avoir à toucher de code.
Je pense que la seule façon de le faire est de déterminer le nombre d'éléments correspondants et de créer des classes pour eux en temps réel, mais cela ressemble à une impossibilité de programmation.
Quelqu'un peut-il me tirer quelques conseils pour contourner ce problème?

Répondre

2

Je pense que vous n'avez pas compris la solution qui vous a été suggérée. Au lieu de cours générer dyynamically, vous instancier dynamiquement des objets d'une classe (quelque chose de tout à fait normal de le faire)

  1. Votre liste de questions est « aplatis » et juste convention garantit que chaque groupe de 6 éléments adjacents correspond à une question. Au lieu de cela, créez un tableau de questions, (où chaque question est un tableau d'éléments de question) et vous pouvez alors mélanger le tableau externe sans vous inquiéter.

    [Q1, a1, b1, c1, Q2, a2, c2] --> [[Q1, a1, b1, c1], [Q2, a2, b2, c2]] 
    
  2. Le point suivant est que l'utilisation d'un tableau pour représenter une question, par la convention que le premier élément est le texte de la question et que l'élément suivant sont les options est une mauvaise pratique de programmation. Au lieu d'utiliser cette représentation, créez une classe Question, puis instanciez les objets Question pour remplir votre liste de questions. Cette approche orientée objet donne 2 avantages majeurs:

    • Vous pouvez utiliser des noms propres et des méthodes pour accéder à une question, au lieu d'index ad hoc.
    • Il devient plus facile d'ajouter différents types de Question sur ce dernier.
+0

Oui, cela fait beaucoup de sens que je vais essayer. Je vous remercie! – user550323