第一次海报。因此,如果这样做不正确,请善待。完全公开这是一个介绍性的java类,但是我已经把这个项目转入我只是想重新设计它来修复我的错误
主要问题是理解对象和类的基础知识。该程序应该模拟 Yahtzee 5 掷骰子。我需要创建一个骰子类,然后创建 5 个骰子对象,滚动 1 到 5 之间的随机值。目前我创建了一个名为 OneDice 的类:
public class OneDice {
private int die; // variable for a dice
public OneDice() {
roll(); //constructor
}
public void roll() {// random
die = (int)(Math.random()*6) + 1;
}
public int value() {
// return the value of the die variable
return die;
}
接下来我们要创建一个 Yahtzee 类,它“容纳五个骰子对象”,这是我创建的:
public class Yahtzee {
private int dice1;
private int dice2;
private int dice3;
private int dice4;
private int dice5;
public Yahtzee(){
yahtzeeRoll(); //constructor
}
public void yahtzeeRoll(){
OneDice diceA = new OneDice();
OneDice diceB = new OneDice();
OneDice diceC = new OneDice();
OneDice diceD = new OneDice();
OneDice diceE = new OneDice();
dice1 = diceA.value();
dice2 = diceB.value();
dice3 = diceC.value();
dice4 = diceD.value();
dice5 = diceE.value();
}
public void printYahtzee(){ //prints the dices and graphics
System.out.println("dice 1 comes up= " + dice1);
System.out.println("dice 2 comes up= " + dice2);
System.out.println("dice 3 comes up= " + dice3);
System.out.println("Dice 4 comes up= " + dice4);
System.out.println("Dice 5 comes up= " + dice5);
}
现在我明白这是糟糕的编码。随着dice1 = diceA.value
等线路。如何创建可分配给每个单独骰子的 OneDice 对象的五个单独实例。我知道这确实是基本的东西。我尝试过重读我的教科书并在网上阅读内容,但就是无法弄清楚。提前致谢。我希望他的主题不要太宽泛:(
完整说明:
创建一个模拟单个六面骰子的类。骰子可以具有从 1 到 6 的值。构造函数应将骰子设置为随机值(即骰子不应以零值开始)。它应该有两种方法。其中一种称为“掷骰”,将骰子随机设置为新值。另一个称为值,返回骰子的当前值。
创建一个名为 Yahtzee 的第二个类,它包含五个骰子对象。有一个名为 roll 的方法来掷所有五个骰子。有一个名为 show 的方法,用于显示五个骰子中每个骰子的值。
你的主类应该掷五个骰子,显示结果,然后询问用户是否想再次掷骰子。
最佳答案
我会重写你的 Yhatzee 类以利用这样的数组(这假设你想保留单独的骰子实例,我个人会这样做,以便稍后我可以记忆起特定骰子的值,但是如果这永远没有必要) ,您没有具体理由这样做);
public class Yahtzee {
private Dice[] dice;
private final int DICE_COUNT=5;
public Yahtzee(){
dice=new Dice[DICE_COUNT];
for(int i =0;i<DICE_COUNT;i++)
dice[i] = new Dice();
yahtzeeRoll(); //constructor
}
public void yahtzeeRoll(){
for(int i =0;i<DICE_COUNT;i++)
dice[i].roll();
}
public void printYahtzee(){ //prints the dices and graphics
for(int i =0;i<DICE_COUNT;i++)
System.out.println("dice "+(i+1)+" comes up= " + dice[i].value());
}
}
关于java - 创建多个java对象/清理项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18004618/