我想创建一个拥有20x30字段的游戏,我首先想到的是每个字段都是一个列表(因为有时一些字段包含多个对象),但在阅读了几个关于通用数组的问题之后列表,我意识到这不是一个好的解决方案。
游戏将是一个非常简单的Raft版本,在控制台中使用“左”这样的命令播放它,这样角色就会向左移动一个字段。 那么你能推荐一个好的容器或其他东西来设计这些领域吗?
游戏插图: http://imgur.com/a/8YpeA
答案 0 :(得分:1)
如果您要实现固定大小的矩形“播放曲面”,那么我建议Cell[][]
Cell
类型是一个自定义类,表示曲面上单元格的状态。
此处不需要使用泛型......除非您尝试实现可在许多游戏中使用的抽象。
此外,不需要类似列表的功能。您不会删除或添加单元格。你可以将棋子/玩家/任何东西从一个牢房移动到另一个牢房。
(如果您的电路板不是基于谨慎的单元,您将需要使用其他方法。但任何具有有限数量的离散单元的2D播放表面都可以以某种方式映射到Java阵列。)
那么你能推荐一个好的容器或者设计领域的东西吗?
图书馆和工具的建议是OFF-TOPIC。
答案 1 :(得分:1)
有两种方法可以创建通用数组:
创建类型的私有静态内部类:
transient Node<K, V>[] table;
public MyHashMap(int limit) {
this.limit = limit;
table = (Node<K, V>[]) new Node[limit];
}
使用Array.newInstance(类,大小)
此外,使用泛型进行自定义实现并不是一个好选择。