我正在用Java实现井字游戏,并且有一个这样声明的枚举:
public enum Player{X,O};
做出动作后,我需要交换给其他玩家,并且这样做:
this.nextPlayer = ((this.nextPlayer == Player.X)?Player.O:Player.X);
有没有一种方法可以自动“递增”枚举结构的下一个元素?我想知道有5个或6个不同的值,并且想在其中交换而不需要大量代码(并且不实现单独的方法)。
最佳答案
您可以将枚举的ordinal()方法与模运算符一起使用以实现以下目的:
this.nextPlayer = (nextPlayer.ordinal() + 1) % Player.values().length;