一.项目目标:
丢下两个骰子,若数值的总值为7点,则赢;否则输。
二.项目分析:
项目的操作过程如下:
- 定义一个表示骰子的类,能掷出数字及获取当前掷出的数。
- 定义另一个类,在此类中建立骰子类的两个对象,当掷出时判断两个骰子的数值的总值是否为7,来确定是否成功。
- 定义第三个类,对以上操作进行测试。
三.代码思路及实现:
1.代码思路
(1) 定义Die类
Die类表示一个骰子有一个faceValue属性,为整型。在DIe类中有roll()方法和getFaceValue()方法。roll()方法功能使faceValue属性设置为1~6中的一个随机值,没有返回值。getFaceValue()方法功能为取出faceValue值。
在本类中使用到了Math.random()方法,此方法可以实现取随机数的功能,返回值为double类型,值的范围为0.0~1.0。
(2)定义DieGame类
DieGame类有die1、die2两个属性,类型分别为Die类类型,有一个play()方法。play()方法返回一个布尔类型,true表示丢下两个骰子的数值和为7,否则为false。
(3) 编写一个测试类DieTest,对上面定义的类进行测试
main()方法中产生DieGame对象,执行play()方法后显示出输赢。
代码实现
1.Die类
package 掷骰子;
import java.util.Random;
public class Die {
private int faceValue;
public void roll() {
Random random = new Random();
this.faceValue = Math.abs(random.nextInt()) % 6 + 1; //取1~6间任意整数
}
public int getFaceValue() {
return this.faceValue;
}
}
2.DieGame类
package 掷骰子;
public class DieGame {
public Die die1 = new Die();
public Die die2 = new Die();
public boolean play() {
boolean flag = false;
die1.roll();
die2.roll();
System.out.println(die1.getFaceValue());
System.out.println(die2.getFaceValue()); //输出本次掷的骰子数
int num = die1.getFaceValue() + die2.getFaceValue();
if (num == 7) {
flag =true;
} else {
flag = false;
}
return flag;
}
}
3.测试类DieTest类
package 掷骰子;
public class DieTest {
public static void main(String[] args) {
DieGame dieGame = new DieGame();
if (dieGame.play()) {
System.out.println("你赢了!");
} else {
System.out.println("你输了,再接再厉!");
}
}
}