Jenny Jiang Ответов: 2

Что не так с кодом?


Using the Die class defined in Chapter 4, write a class called PairOfDice, composed of two Die objects. Include a constructor, methods to set and get each of the individual die values, a method to roll the two die, and a method that returns the current sum of the two die values.


Что я уже пробовал:

public class PairOfDice {
    Die die1 = new Die();
    Die die2 = new Die();
    
    public int getDie1Value() {
        return die1Value;
    }
    public int getDie2Value() {
        return die2Value;
    }
    public void setDie1Value(int die1) {
        die1Value = value;
    }
    public void setDie2Value(int die2) {
        die2Value = value;
    }
    public PairOfDice() {
        roll();
    }
    public int total() {
        return die1+die2;
}
}

0x01AA

1.) "Глава 4" чего?
2.) не могли бы Вы описать, в чем заключается проблема? Например, что вы делаете-чего вы ожидаете-что вы получаете?
В противном случае единственное, что я вижу, - это отметить это как "не вопрос" ...

Jenny Jiang

общественный класс умирает
{
private final int MAX = 6; // Максимальное номинальное значение

private int faceValue; // текущее значение, отображаемое на штампе

//-----------------------------------------------------------------
// Конструктор: устанавливает начальное номинальное значение.
//-----------------------------------------------------------------
публичная смерть()
{
faceValue = 1;
}

//-----------------------------------------------------------------
// Бросает кубик и возвращает результат.
//-----------------------------------------------------------------
общественная int ролл()
{
faceValue = (int)(Math.random() * MAX) + 1;

return faceValue;
}

//-----------------------------------------------------------------
// Номинальная стоимость мутатора.
//-----------------------------------------------------------------
public void setFaceValue(int value)
{
faceValue = значение;
}

//-----------------------------------------------------------------
// Доступ к номинальной стоимости.
//-----------------------------------------------------------------
public int getFaceValue()
{
return faceValue;
}

//-----------------------------------------------------------------
// Возвращает строковое представление этого штампа.
//-----------------------------------------------------------------
публичная строка toString()
{
String result = Integer.toString(faceValue);

возвращаемый результат;
}
}

это код из главы 4

0x01AA

А теперь? Какие у вас с этим проблемы?
И кстати. если приведенный выше код важен, лучше обновите свой вопрос с помощью "улучшить вопрос" и добавьте его ;)

Patrice T

Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.

2 Ответов

Рейтинг:
1

CPallini

Постарайтесь удовлетворить эти требования:

public class PairOfDice
{
  Die die1, die2;

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

  public int getFirstDieFaceValue()
  {
    return die1.getFaceValue();
  }

  public int getSecondDieFaceValue()
  {
    return die2.getFaceValue();
  }

  private int clamp(int value)
  {
    if ( value < 1) // here a public Die.MIN would have been useful
      value = 1;
    else if (value > 6) // here a public Die.MAX would have been useful
      value = 6;
    return value;
  }

  public void setFirstdDieFaceValue(int value)
  {
    die1.setFaceValue(clamp(value));
  }
  public void setSecondDieFaceValue(int value)
  {
    die2.setFaceValue(clamp(value));
  }

  public int roll()
  {
    return ( die1.roll() + die2.roll());
  }

  public int sumOfValues()
  {
    return (die1.getFaceValue() + die2.getFaceValue());
  }
  public static void main( String arg[] )
  {
    PairOfDice pod = new PairOfDice();
    System.out.printf("rolling the dices...\nResult = %d\n", pod.roll());
  } 
} 


Рейтинг:
0

Richard MacCutchan

Ваши методы set пытаются установить (и получить) переменную, которая нигде не определена. Вы должны использовать setFaceValue и getFaceValue методы ваших индивидуальных объектов умирают.

[редактировать]
Кроме того, ваш конструктор вызывает roll метод, а не создание двух кубиков, и roll метод нигде не определен, так что это вызовет проблемы. Наконец, ваш total метод пытается сложить два объекта Die вместе, а не их значения.
[/редактировать]