我正在尝试创建一副纸牌,以便从中进行选择。我有16张卡,有两种不同的类型。
我首先上课有一个枚举:
package Game;
public class Terrain {
public static enum Ter{
DESERT, MOUNTAIN
}
}
现在我有一个地图类:
package Game;
import Game.Terrain.Ter;
public class Map {
Ter mapPieces[] = {Ter.DESERT, Ter.DESERT, Ter.DESERT, Ter.DESERT,
Ter.DESERT, Ter.DESERT, Ter.DESERT, Ter.DESERT,
Ter.MOUNTAIN, Ter.MOUNTAIN, Ter.MOUNTAIN, Ter.MOUNTAIN,
Ter.MOUNTAIN, Ter.MOUNTAIN, Ter.MOUNTAIN, Ter.MOUNTAIN};
}
这是我制作数组的方式吗?有一个更好的方法吗?看起来太可怕了...
最佳答案
假设您要创建一个表示瓦片的地图,每个瓦片都是您的Terrain枚举之一,通常的做法是将String甚至XML解析为List。例如,您可能有“ DDDDDDDDMMMMMMMMMM”,然后为每个D添加一个Ter.DESERT到您的列表中,依此类推。
对于您的简单情况,循环也是有意义的。只需将8 Ter.DESERT和8 Ter.MOUNTAIN添加到列表中,然后将其转换为数组即可。如果您不想使用列表,则可以遍历数组并使所有偶数元素DESERT和奇数元素成为MOUNTAIN。
有很多不同的方法可以做到这一点。您提供的方式应该有效,但是我同意这看起来很可怕。