本文通过实现一个简单的“石头剪刀布”程序,熟悉Java枚举类型(enum)多路分发的使用。
需要用到的类主要是以下四个:
- 游戏主体RoShamBo:包括ROCK,SCISSORS,PAPER三种动作;
- 对战结果Outcome:包括WIN,LOSE,DRAW三种对战结果;
- 对战接口Competitor:包括对战方法compete();
- 逻辑验证RoShamBoSample:随机生成对战数据,验证对战结果。
1,Outcome.java:
package com.sample.roshambo;
public enum Outcome {
WIN, LOSE, DRAW;
}
2,Competitor.java:
package com.sample.roshambo;
public interface Competitor<T extends Competitor<T>> {
Outcome compete(T competitor);
}
3,RoShamBo.java:
package com.sample.roshambo;
public enum RoShamBo implements Competitor<RoShamBo> {
ROCK(Outcome.DRAW, Outcome.WIN, Outcome.LOSE), SCISSORS(Outcome.LOSE, Outco