Как я понимаю, вам нужно 3 класса: один с методом main (начальный), класс логического массива и класс Dice.
Во-первых, давайте создадим класс Boolean Array.Он будет содержать ваш массив "b" и будет проверять, что все значения становятся истинными:
class BooleanArray {
boolean b[] = {true, false, false, false, false, false, false};
// sets value=true to array index from 1 to 6
void setTrueToIndex(int index){
// outputs every dice rolled value
System.out.println(index);
if(index > 0 && index<b.length){
b[index] = true;
}
}
// checks that Dice rolled to values 1-6 minimum one time
boolean checkThatAllTrue(){
for (boolean value : b) {
if(value == false){ // possible short-hand if(!value)
return false;
}
}
return true;
}
}
Итак, ваш начальный класс может быть переписан как:
public class DiceGame {
public static void main(String args[]){
Die dice = new Die();
BooleanArray booleanArray = new BooleanArray();
// counter for dice rolling
int howManyTimesDiceRolled = 0;
// we will roll dice until all values will be true
while(!booleanArray.checkThatAllTrue()){
int roll = dice.roll();
howManyTimesDiceRolled++;
booleanArray.setTrueToIndex(roll);
}
System.out.println("Dice rolled: " + howManyTimesDiceRolled);
}
}
Пример вывода:
Dice number: 4
Dice number: 2
Dice number: 2
Dice number: 2
Dice number: 3
Dice number: 5
Dice number: 4
Dice number: 4
Dice number: 3
Dice number: 6
Dice number: 5
Dice number: 6
Dice number: 1
Dice rolled: 13
Итак, в моей системе Dice бросил 13 раз, прежде чем все значения массива стали истинными.