Мне нужно создать программу yahtzee с помощью java.Упрощение очень длинных операторов if
В этой программе я должен сравнивать граничные значения каждый раз, когда кости скатываются. У меня есть ArrayList
из 5 кубиков.
Есть ли способ сравнить эти штампы без очень длинных утверждений?
Операторы if должны были бы сравнить одно значение кости с другим 4, а затем сделать это для остальных 4 также умереть. Это будет очень долго, и я уверен, что его можно упростить, но я не знаю, как это сделать. Любая помощь приветствуется с этой проблемой. Это кости класса
public class Die
{
private final int MAX = 6; // maximum face value
private int faceValue; // current value showing on the die
//-----------------------------------------------------------------
// Constructor: Sets the initial face value.
//-----------------------------------------------------------------
public Die()
{
faceValue = 1;
}
//-----------------------------------------------------------------
// Rolls the die and returns the result.
//-----------------------------------------------------------------
public int roll()
{
faceValue = (int)(Math.random() * MAX) + 1;
return faceValue;
}
//-----------------------------------------------------------------
// Face value mutator.
//-----------------------------------------------------------------
public void setFaceValue(int value)
{
faceValue = value;
}
//-----------------------------------------------------------------
// Face value accessor.
//-----------------------------------------------------------------
public int getVal()
{
return faceValue;
}
//-----------------------------------------------------------------
// Returns a string representation of this die.
//-----------------------------------------------------------------
public String toString()
{
String result = Integer.toString(faceValue);
return result;
}
}
Я установил свой код Java, чтобы включить Collections.sort
import java.util.*;
public class Yahtzee
{
public static void manin(String args[])
{
Die die1 = new Die();
Die die2 = new Die();
Die die3 = new Die();
Die die4 = new Die();
Die die5 = new Die();
Die placeholder = new Die();
int timeRolled = 0;
String myString;
Scanner scan = new Scanner(System.in);
System.out.println("Please press 'y' to play and 'n' to quit");
myString = scan.next();
if(myString == "y")
{
ArrayList<Integer> yahtzee = new ArrayList<>(5);
die1.roll();
die2.roll();
die3.roll();
die4.roll();
die5.roll();
yahtzee.add(die1.getVal());
yahtzee.add(die2.getVal());
yahtzee.add(die3.getVal());
yahtzee.add(die4.getVal());
yahtzee.add(die5.getVal());
Collections.sort(yahtzee);
}
}
}
Как бы я знать, сравнить эти значения друг с другом?
Описывать очень долго, если заявление вы имеете в виду. Некоторые из них будут довольно сложными, но, может быть, ваши могут быть улучшены. – zapl
Ну, это 'if (myString ==" y ")' не очень длинный, но очень неправильный: P ... [Как сравнить строки в Java?] (Http://stackoverflow.com/q/513832) – Tom
Это утверждение для контроля над игрой. – Todd