------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
通过一段时间的java基础学习,了解了一些有关Random类的一些使用方法,Random类的方法实际上是基于复杂的数学计算生成伪随机数——看似
随机的一个数字序列,生成伪随机数的计算,利用了当天的时间作为种子值,以改变序列值的起始点。每个新的Random对象,都会基于创建这个对象时
的计算机系统时钟来为自己设置种子值,使得程序的每次执行都会生成不同的随机数序列,所以就可以生成了1——6的不同时间产生了不同的数字,就可
以达到模仿摇骰子的效果。下面是一小段代码可参考:
package ZaneLeo.DarkHorseProgrammers;
import java.util.Random;
public class Craps {
/**
* 游戏规则:(共两个骰子) 1.玩家第一次出现的点数为:7,11,则玩家获胜。 2.玩家第一次出现的点数为:2,3,12,则玩家输。
* 3.玩家第一次现现的点数为:4,5,6,8,9,10,则游戏继续并需要记住刚才的那个点数,后面摇到那个点数时,
* 则玩家获胜,如果摇到了7,则玩家输。
*/
// 创建了对象randomValues,用于获得随机数
final static Random randomValues = new Random();
// 设置游戏中的状态,用枚举的方式表示。
enum Status {
WIN, LOSE, CONTUNE
};
final static int TWO = 2;
final static int THREE = 3;
final static int SEVEN = 7;
final static int ELEVEN = 11;
final static int TWELVE = 12;
public static void main(String[] args) {
// 设置程序的入门函数
init();
}
public static void init() {
// 初始化玩家的点数
int myPoint = 0;
// gameStatus的状态只能是WIN,LOSE,CONTUNE
Status gameStatus;
// 开始第一次摇骰子
int sumOfDice = rollDice();
// 确定游戏的状态和点数
switch (sumOfDice) {
case SEVEN:
case ELEVEN:
gameStatus = Status.WIN;
break;
case TWO:
case THREE:
case TWELVE:
gameStatus = Status.LOSE;
break;
default:
gameStatus = Status.CONTUNE;
myPoint = sumOfDice();
System.out.printf("Point is %d\n", myPoint);
break;
}
while (gameStatus == Status.CONTUNE) {
sumOfDice = rollDice();
if (sumOfDice == myPoint)
gameStatus = Status.WIN;
else if (sumOfDice == SEVEN)
gameStatus = Status.LOSE;
}
if (gameStatus == Status.WIN)
System.out.printf("You Winner");
else
System.out.printf("You Loses");
}
private static int sumOfDice() {
return 0;
}
public static int rollDice() {
int dicePoint1 = 1 + randomValues.nextInt(6);
int dicePoint2 = 1 + randomValues.nextInt(6);
int sum = dicePoint1 + dicePoint2;
System.out.printf("Player rolled %d+%d=%d\n", dicePoint1, dicePoint2,
sum);
return sum;
}
}
如上有什么不合理的地方,请指出以便修改!