骰子游戏
我觉得这个选题很不错,用一个主类调用我们设计的骰子类,实现了简单的类的调用。对于我来说比较难(把以前学的东西差不多忘了吧),我计划用2个小时,实际用了至少4个小时吧;但这是一个很好锻炼自己的机会,通过参考网上和同学的代码,最后根据自己的理解单独做了一遍,收获很大。老师说可以单独创建一个骰盅类,可是我想了好久也觉得没有必要,可能是因为水平不够吧,哪位大佬知道的可以指点一下的。
设计实现:
我设计的UML图如上,共设计了两个类(一个骰子类,一个Test类):
1、骰子类有三个属性和5个方法,roll()方法用来产生随机数,setMaxNumber()和setBadNumber()方法分别用来产生最大值和不希望出现的值,setOutPut()方法用来输出随机产生的value,而choose()方法用来输出玩家是赢还是输了。
2、Test类通过for循环设计不同的骰子,并调用骰子类中的方法。
代码说明:
package 面向对象作业;
public class Dices {
private int value;
private int maxvalue;
private int badnumber;
public void roll() {
value=(int)(Math.random()*maxvalue+1);
}
public void setMaxValue(int maxvalue) {
this.maxvalue=maxvalue;
}
public void setOutPut() {
System.out.println("value is: "+value);
}
public void setBadNumber(int badnumber) {
this.badnumber=badnumber;
}
public void choose() {
if(value==badnumber) {
System.out.println("sorry!you are the loser");
}
else {
System.out.println("congratulation,you are winning!");
}
}
}
//骰子类
package 面向对象作业;public class DiceTest { public static void main(String[] args) {
Dices dice= new Dices();
int dicenumber=5;
for(int i=1;i<=dicenumber;i++) {
dice.setMaxValue(5);
dice.setBadNumber(3);
dice.roll();
dice.setOutPut();
dice.choose();
}
}
}
//主类,调用骰子类中的方法
测试运行:
说明:我的目标是实现一个主类调用骰子类,用for循环设计多个骰子,然后输出每个骰子的值并且与预定值相比判断是否赢得比赛。
小结:
这次我花的时间挺多的,大部分时间花在java语言的基础知识以及写代码之前的准备过程,我觉得主要是以前写的代码太少了,学过之后就忘了,所以一个假期过后我就全忘了,所有东西要重新学习;经过这次的实践,我觉得自己应该勤奋一点,在自己的空余时间多写代码。非常感谢老师提供这样的机会!我会加油的//
https://edu.cnblogs.com/campus/jmu/OOM16A/homework/1031