Java 一类三个
我正在编写一个名为isThreeOfAKind()的方法来分析5个整数的值。 此方法应返回布尔值。 我不知道如何把它转换成代码,这样它就能知道5个整数中是否有3个是相等的 该程序的一些背景是,它在开始时生成5个新的随机数,这些随机数被分配给整数。比如我有Java 一类三个,java,methods,boolean,if-statement,Java,Methods,Boolean,If Statement,我正在编写一个名为isThreeOfAKind()的方法来分析5个整数的值。 此方法应返回布尔值。 我不知道如何把它转换成代码,这样它就能知道5个整数中是否有3个是相等的 该程序的一些背景是,它在开始时生成5个新的随机数,这些随机数被分配给整数。比如我有 public YahtzeeRoll(){ int input; for (int i=5;i <= 5; i++){ input = rangen.nextInt(5) + 1; die1
public YahtzeeRoll(){
int input;
for (int i=5;i <= 5; i++){
input = rangen.nextInt(5) + 1;
die1 = input;
input = rangen.nextInt(5) + 1;
die2 = input;
input = rangen.nextInt(5) + 1;
die3 = input;
input = rangen.nextInt(5) + 1;
die4 = input;
input = rangen.nextInt(5) + 1;
die5 = input;
}
我想可能会使用if语句,如果它满足if语句的要求,它将返回true,然后else语句将返回false,但我不确定如何比较这5个整数,然后为其编写代码。感谢您的帮助 好的,一个可读的解决方案,没有数组、集合、开关和其他有用的东西;)希望你很快学会剩下的
public class YahtzeeRoll {
public static void main(final String[] args) {
YahtzeeRoll app = new YahtzeeRoll();
System.out.println(app.isThreeOfAKind());
}
private boolean isThreeOfAKind() {
// inspect the dice
evaluate(die1);
evaluate(die2);
evaluate(die3);
evaluate(die4);
evaluate(die5);
// now inspect the results
if (val1 >= 3) return true;
if (val2 >= 3) return true;
if (val3 >= 3) return true;
if (val4 >= 3) return true;
if (val5 >= 3) return true;
if (val6 >= 3) return true;
return false;
}
private void evaluate(int die) {
if (die == 1) val1++;
if (die == 2) val2++;
if (die == 3) val3++;
if (die == 4) val4++;
if (die == 5) val5++;
if (die == 6) val6++;
}
int die1, die2, die3, die4, die5;
int val1, val2, val3, val4, val5, val6;
Random rangen = new Random();
public YahtzeeRoll() {
int input;
for (int i = 0; i < 5; i++){
input = rangen.nextInt(5) + 1;
die1 = input;
input = rangen.nextInt(5) + 1;
die2 = input;
input = rangen.nextInt(5) + 1;
die3 = input;
input = rangen.nextInt(5) + 1;
die4 = input;
input = rangen.nextInt(5) + 1;
die5 = input;
}
}
}
公共类YahtzeeRoll{
公共静态void main(最终字符串[]args){
YahtzeeRoll app=新的YahtzeeRoll();
System.out.println(app.isThreeOfAKind());
}
私有布尔值isThreeOfAKind(){
//检查骰子
评价(die1);
评价(die2);
评价(die3);
评价(die4);
评价(5);
//现在检查结果
如果(val1>=3)返回true;
如果(val2>=3)返回true;
如果(val3>=3)返回true;
如果(val4>=3)返回true;
如果(val5>=3)返回true;
如果(val6>=3)返回true;
返回false;
}
私有void求值(int-die){
如果(die==1)val1++;
如果(die==2)val2++;
如果(die==3)val3++;
如果(die==4)val4++;
如果(die==5)val5++;
如果(die==6)val6++;
}
int die1、die2、die3、die4、die5;
int val1,val2,val3,val4,val5,val6;
Random range n=新的Random();
公共YahtzeeRoll(){
int输入;
对于(int i=0;i<5;i++){
输入=范围nextInt(5)+1;
die1=输入;
输入=范围nextInt(5)+1;
die2=输入;
输入=范围nextInt(5)+1;
die3=输入;
输入=范围nextInt(5)+1;
die4=输入;
输入=范围nextInt(5)+1;
die5=输入;
}
}
}
是时候向一个新概念问好了:数组:)
publicyahtzeeroll(){
int输入;
int[]dice=new int[5];//如果你用你的5个骰子做了一个字符串,例如“25326”
,你可以使用StringUtils
来计算每个数字的出现次数
int ones = StringUtils.countMatches(diceString, "1");
int twos = StringUtils.countMatches(diceString, "2");
int threes = StringUtils.countMatches(diceString, "3");
int fours = StringUtils.countMatches(diceString, "4");
int fives = StringUtils.countMatches(diceString, "5");
int sixes = StringUtils.countMatches(diceString, "6");
如果其中任何一个是3,那么就有三个相同的
return ones==3 || twos==3 || threes==3 || fours==3 || fives==3 || sixes==3;
这很简单
public Boolean isThreeOfAKind(){
int input;
int[] dice = new int[5]; // <- declares and initializes an array
for (int i=5;i <= 5; i++){
input = rangen.nextInt(5) + 1;
dice[i] = input; // <- set the i'th die value to input
}
java.util.Arrays.sort(dice); //sort the array
for(int i=0;i<dice.length-3;i++)
{
if(dice[i]==dice[i+1] ? dice[i+1]==dice[i+2] : false)
{
return true;
}
}
return false;
}
public Boolean isThreeOfAKind(){
int输入;
int[]dice=new int[5];//啊,我忘了在我原来的帖子中添加内容,我们还没有在课堂上学习数组,我想如果我们使用数组,他不会接受的:(不使用数组有什么帮助吗?谢谢您的快速响应!没有数组?嗯,也没有集合,对吗?已经允许使用开关箱了?没有集合,没有开关..如果我最终使用了该数组(我想我可能不得不这样做)我会让循环循环5次而不是只循环一次吗?或者它会给我5个不同的随机整数吗?而且,请不要告诉我,你不允许将参数传递给方法:D到你的问题:你将使用一个循环来初始化五个骰子,这样它将循环五次。die1
现在是dice[0]
(数组是从零开始的!)(啊,谢谢,你的循环不正确。我编辑了我的答案,我从0数到4)
return ones==3 || twos==3 || threes==3 || fours==3 || fives==3 || sixes==3;
public Boolean isThreeOfAKind(){
int input;
int[] dice = new int[5]; // <- declares and initializes an array
for (int i=5;i <= 5; i++){
input = rangen.nextInt(5) + 1;
dice[i] = input; // <- set the i'th die value to input
}
java.util.Arrays.sort(dice); //sort the array
for(int i=0;i<dice.length-3;i++)
{
if(dice[i]==dice[i+1] ? dice[i+1]==dice[i+2] : false)
{
return true;
}
}
return false;
}
private static int[] rollDice(int[] die) {
Random rand = new Random();
die[0] = 1 + rand.nextInt(6);
die[1] = 1 + rand.nextInt(6);
die[2] = 1 + rand.nextInt(6);
die[3] = 1 + rand.nextInt(6);
die[4] = 1 + rand.nextInt(6);
Arrays.sort(die);
return die;
}
private static boolean isThreeOfAKind() {
int[] die = new int[5];
rollDice(die);
return die[0] == die[2] || die[1] == die[3] || die[2] == die[4];
}