我正在尝试创建一副纸牌,以便从中进行选择。我有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。

有很多不同的方法可以做到这一点。您提供的方式应该有效,但是我同意这看起来很可怕。

09-10 12:51