布尔独特的骰子

时间:2018-05-08 03:30:30

标签: java arrays boolean

我有一个骰子类,可以从1-6中滚动随机数。我想创建另一个实现所有数字检查的类,并在所有唯一数字滚动一次时停止滚动。不知道我将如何使用getFace和boolean方法。考虑从错误开始的每个数字,并且一旦出现数字,结果为真。

public class Die {

public final int MAX = 6; //max 6
private int faceValue; //current value showing on die

//constructor
public Die() {
   faceValue = 1;
   }

public int roll(){
  faceValue = (int)(Math.random()*MAX)+1;
  return faceValue;
  }

public void setFaceValue(int value){
  if(value> 0 && value <=MAX)
     faceValue=value;
  }

public int getFaceValue(){
  return faceValue;
  }

public String toString(){
  String result = Integer.toString(faceValue);
  return result;
  }
}

2 个答案:

答案 0 :(得分:0)

time = 3.15978

我认为代码就是这样的。有点不接触java。

答案 1 :(得分:0)

逻辑: 创建一个集合S.继续滚动并将结果添加到该集合。当集合的大小为6时停止。(Set仅包含唯一元素。)

import java.util.HashSet;
import java.util.Set;

public class Play {

    public static void main(String[] args) {

        Die die = new Die();
        Set<Integer> set = new HashSet<>();
        int outcome = 0;

        //Keep rolling until set size is 6.
        while(set.size() != 6) {
            outcome = die.roll();
            set.add(outcome);
        }

        System.out.println(set);

    }

}

class Die {

    public final int MAX = 6; //max 6
    private int faceValue; //current value showing on die

    //constructor
    public Die() {
        faceValue = 1;
    }

    public int roll(){
        faceValue = (int)(Math.random()*MAX)+1;
        return faceValue;
    }

    public void setFaceValue(int value){
        if(value> 0 && value <=MAX)
            faceValue=value;
    }

    public int getFaceValue(){
        return faceValue;
    }

    public String toString(){
        String result = Integer.toString(faceValue);
        return result;
    }
}