2010-05-16 2 views
2

Je suis en train de construire une application simple, avec le programme fini qui ressemble à ceci:Choix de la méthode de conception pour mot comme échelle jeu

ladder-like game http://img199.imageshack.us/img199/6859/lab9a.jpg

je vais également mettre en œuvre deux mises en page de l'interface graphique différentes pour ce. Maintenant, j'essaie de trouver la meilleure méthode pour effectuer cette tâche. Mon professeur m'a dit d'introduire la classe Element avec 4 états:
- vide
- invisible (utilisé dans GridLayout)
- première lettre
- autre lettre

J'ai pensé à des solutions suivantes (par la liste I signifie n'importe quelle sorte de collection):
1. L'élément est une seule lettre et chaque ligne est l'élément []. La classe de jeu sera un tableau d'éléments de tableau []. Je suppose que c'est la façon la plus stupide, et la validation pourrait être gênante.
2. Comme précédemment, Line est une liste d'éléments. Le jeu est un tableau de lignes.
3. Comme précédemment, Game est une liste de lignes.

Lequel dois-je choisir? Ou peut-être avez-vous de meilleures idées? Quelle collection serait la meilleure pour en utiliser une?

Répondre

2

Votre grille est votre modèle de données interne (c'est-à-dire, sauf si vous l'utilisez). C'est pourquoi vous pouvez choisir celui qui vous conviendra le mieux.

Je préférerais la première solution avec des tableaux parce que le code sera un peu plus lisible (du moins pour moi). Il suffit de comparer:

grid[3][4] = element; 

et

grid.get(3).add(4, element); 

De plus, si vous voulez utiliser les collections, alors vous avez probablement besoin d'utiliser

Map<Integer, List<Element>> grid 

où Entier clé représente l'index de la ligne. Avec la liste des listes, il est très difficile d'insérer de nouveaux mots (pensez simplement, comment implémenteriez-vous cela avec des listes seulement).

Questions connexes