import java.security.SecureRandom;//这时一个摇骰子游戏public class Craps { // 创建一个安全的产生随机数的random对象 PRivate static final SecureRandom secureRandoms = new SecureRandom(); // 定义一个枚举类型类表示输赢的状态 private enum Status { CONTINUE, WON, LOST }; // 常量表示两次骰子摇到的结果判定输赢 private static final int SNAKE_EYES = 2; private static final int TREY = 3; private static final int SEVEN = 7; private static final int ELEVEN = 11; private static final int BOX_CARS = 12; public static void main(String[] args) { int myPoint = 0;// 本地变量存储第一次摇骰子得到的结果 Status gameStatus; int sumOfDice = rollDice(); switch (sumOfDice) { case SEVEN: case ELEVEN: gameStatus = Status.WON;// 第一次摇出2数之和为7或11就赢了 break; case SNAKE_EYES: case TREY: case BOX_CARS: //摇出 2|3输了 gameStatus = Status.LOST; break; default: gameStatus = Status.CONTINUE; myPoint = sumOfDice; System.out.println("我的点数:" + myPoint); break; } while (gameStatus == Status.CONTINUE) { sumOfDice = rollDice(); if (sumOfDice == myPoint) gameStatus = Status.WON; //如果和上次一样就赢了 else if (sumOfDice == SEVEN) { gameStatus = Status.LOST; } } if (gameStatus == Status.WON) { System.out.println("U Win"); } else System.out.println("U lose"); } private static int rollDice() { int die1 = secureRandoms.nextInt(6); int die2 = secureRandoms.nextInt(6); int sum = die1 + die2; System.out.printf("你摇出了%d和%d 得:%d", die1, die2, sum); System.out.println(); return sum; }}先自己理解代码,这是一个风靡于大街小巷和赌场的摇骰子游戏。阅读代码来加深对每句类型的理解。
本地变量gameStatus声明为前面定义的枚举类型,枚举类型是craps类的一个成员,因为只在这个类用到。
Status被称为枚举类型,里面定义用逗号分割开的叫做枚举常量。
枚举常量是隐式的final类型
枚举常量是饮食的static类型
枚举类型不能够通过new创建
枚举常量可以被用在任何可以使用常量的地方
一般的,我们用枚举类型来标识状态,如一上代码实例就是用来表示,摇骰子的状态。
新闻热点
疑难解答