黑马程序员—小游戏(caps)

------- <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;
	}
}

如上有什么不合理的地方,请指出以便修改!



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值