我正在尝试构建一个简单的应用程序,完成的程序看起来像这样:
ladder-like game http://img199.imageshack.us/img199/6859/lab9a.jpg
我还必须为此实现两种不同的GUI布局。现在我想找出执行此任务的最佳方法。我的教授告诉我介绍有4种状态的元素类:
- 空的
- 不可见(在GridLayout中使用)
- 第一个字母
- 其他信件
我考虑过以下解决方案(按照List我的意思是任何类型的集合):
1.元素是单个字母,每行是Element []。游戏类将是数组Element []的数组。我猜这是最愚蠢的方式,验证可能会很麻烦
2.像之前一样,但Line是元素列表。游戏是一系列行。
像以前一样,但Game是一个行列表。
我应该选择哪一个?或许你有更好的想法?如果使用一个最好的集合是什么?
答案 0 :(得分:2)
您的网格是您的内部数据模型(除了您将使用它之外)。这就是为什么你可以选择最适合你的那个。
我更喜欢第一个带阵列的解决方案,因为代码会更具可读性(至少对我而言)。只是比较:
grid[3][4] = element;
和
grid.get(3).add(4, element);
此外,如果您想使用集合,那么您可能需要使用
Map<Integer, List<Element>> grid
其中Integer-key表示行索引。使用列表列表,插入新单词非常困难(只是想想,如何仅使用列表实现这一点)。