谁可以帮助使用Die.java创建PairOfDice类

问题描述 投票:-8回答:1

我认为我的问题出在PairOfDice类上,因为我只需要在EyesHaveIt类中使用包含两个骰子值的对象。我不断收到类似的错误:PairOfDice.java:16:错误:预期使用类,接口或枚举公共诠释getDie1()^

PairOfDice.java:19:错误:预期的类,接口或枚举}^

PairOfDice.java:21:错误:预期的类,接口或枚举公共诠释getDie2()^

PairOfDice.java:24:错误:预期的类,接口或枚举}^

EyesHaveIt.java:44:错误:找不到符号int die1 = dieOne.getDieOneValue();^符号:方法getDieOneValue()位置:变量dieOne类型为PairOfDiceEyesHaveIt.java:45:错误:找不到符号

这是我尝试修复的尝试。谢谢!

这是我的模具课:

import java.util.Random;

public class Die

{

public static Random generator = new Random();

public int roll ()

{

      return generator.nextInt(6) + 1;  // Randome # dice between 1-6

}

}

\\Here's my PairOfDice class:

public class PairOfDice
{
   private int die1Value;
   private int die2Value;

   public PairOfDice()
   {
      Die die1 = new Die();
      Die die2 = new Die();

      die1Value = die1;
      die2Value = die2;
    }
}   
   public int getDie1()
   {
      return die1;
   }

   public int getDie2()
   {
      return die2;
   } 

}

这里是EyesHaveIt类,我正在尝试使用该代码:

import java.util.Scanner;

public class EyesHaveIt
{
   Scanner kb = new Scanner(System.in);
   private int turnScore;
   private int computerTotalScore;
   private int playerTotalScore;
   private int computerTurnNumber;
   private int playerTurnNumber;
   public int roundPoints;
   private String userName;

   public void init(String name)
   {
      userName = name;
   }

   public void playGame()
   {
      computerTurn();
   }

   public void computerTurn()
   {
      turnScore = 0;
      System.out.println("Computer Turn: ");
      while (turnScore < 20)
      {
         rollTheDice();
      }
   }

   public void rollTheDice()
   {
      PairOfDice dieOne = new PairOfDice();
      PairOfDice dieTwo = new PairOfDice();
      int die1 = dieOne.getDieOneValue();
      int die2 = dieTwo.getDieOneValue();
      System.out.println("Rolled: " + die1 + " and " + die2);
   }

此类将是一对物理的标准六面骰子的抽象。EyesHaveIt对象将创建此类的一个对象,并在整个两位玩家的游戏。您应该将此对象视为一对骰子。当玩家在回合中滚动,该玩家正在滚动PairOfDice对象。玩家从不掷骰子直。 PairOfDice类的客户端将滚动PairOfDice对象,获取的值该类应具有两个属性:的两个对象。上课死这是唯一使用Die类的类。

java dice
1个回答
0
投票

Die类的方式很好:

import java.util.Random;

public class Die {

    public static Random generator = new Random();

    // Roll of a 'Single Die'
    public int roll() {
        return generator.nextInt(6) + 1;  // Random # dice roll between 1-6
    }
} 

但是,在当前的PairOfDice类中,您有两个特定的类全局实例成员变量(属于[[int数据类型),分别为die1Valuedie2Value。在相同的类中,声明两个Diedie1die2)并将它们分别分配给die1Valuedie2Value

public PairOfDice() { Die die1 = new Die(); Die die2 = new Die(); die1Value = die1; die2Value = die2; }
您不能执行此操作,因为

die1

die2不是int,它们是Die。另外,die1die2也应该已声明为实例成员变量。应该做的是: public class PairOfDice { private int die1Value; private int die2Value; private final Die die1 = new Die(); private final Die die2 = new Die(); // PairOfDice Constructor... public PairOfDice() { this.die1Value = die1.roll(); this.die2Value = die2.roll(); } public int getDie1() { return this.die1Value; } public int getDie2() { return this.die2Value; } // Roll of a 'Pair Of Dice' public void roll() { this.die1Value = die1.roll(); this.die2Value = die2.roll(); } }
现在,

die1Value

die2Value实际上被分配了int(每个骰子的随机掷骰值)。我对称为

EyesHaveIt

的游戏一无所知,但我真的不想研究它,但看一下代码,我确定它玩两套骰子(4个骰子-PairOfDice的每个声明都包含两个骰子)。 我认为用于玩游戏的一对骰子应声明为类成员变量,而不是每次需要掷骰子时都声明一组新的骰子。通过在

PairOfDice

类中添加roll()方法,您可以无限期地使用同一对骰子。这是使用这两个类的简单示例,我们将掷一个pair骰子10次:public class JustADemo { private final PairOfDice dice = new PairOfDice(); private int dice1; private int dice2; public static void main(String args[]) { // Done this way to avoid the need for statics. new EyesHaveIt().startGame(); } private void startGame(String[] args) { // Roll a Pair of dice 10 times... for (int i = 0; i < 10; i++) { System.out.println("Roll #" + (i + 1) + ":"); rollTheDice(); System.out.println(); } } private void rollTheDice() { dice.roll(); dice1 = dice.getDie1(); dice2 = dice.getDie2(); System.out.println("Face of Die 1: --> " + dice1); System.out.println("Face of Die 2: --> " + dice2); } }
© www.soinside.com 2019 - 2024. All rights reserved.