骰子作业
意思理解
我觉得使用java构建一个骰子类并不困难,再用Test类进行调用摇骰子,两节课就能完成。但扩展中要使用多个骰子,只能想到循环的方法。而使某个数字不出现也只能实现单独数字,多数字的方法还写不出来。
设计实现
一、Dice类有面值、最大值以及不想出现的值三个属性,而函数方面主要是random产生随机数赋值给面值,以及给剩下两个属性赋值的set函数。
二、Test类主函数,类似于掷骰子,调用骰子类中的方法。
三、Cup类控制骰子的数量,实现多个骰子。
代码说明
package game;
public class Test {
public static void main(String[] args){
Dice a = new Dice();
int i;
int diceNumber=5;
for(i=0;i<diceNumber;i++){
a.setMaxValue(6);
a.setBadnumber(4);
a.roll();
a.outValue();
}
}
}
//主方法
package game;
import java.util.Random;
import java.util.Scanner;
public class Dice {
private int faceValue;
private int maxValue;
private int badNumber;
public void roll() {
this.faceValue = (int) (Math.random()*maxValue+1);
}
public void setMaxValue(int maxValue){
this.maxValue = maxValue;
}
public void outValue(){
System.out.println(faceValue);
}
public void setBadnumber(int badNumber){
this.badNumber = badNumber;
}
}
//骰子类
package game;
import java.util.*;
import java.util.Scanner;
public class Cup {
private int diceNumber;
public void setDiceNumber(){
this.diceNumber = diceNumber;
}
}
//控制骰子数量
测试运行
小结
构建骰子不是特别的困难。但是,在扩展部分花了很多时间也没能按要求实现,后面的实现排除一些不想摇出的数字,本来想用数组但是由于数量不是定值放弃了,后来想要排除单个数字由于if函数的一些问题也没能实现。还有想要实现多个骰子的情况构建的Cup类无法控制数量,最后只能在Test类中直接用循环方法实现五个骰子的情况。原来想用Scanner函数键入来实现控制骰子数量,但是因为语法(?)问题没能实现。