Java Netbeans 6.5主脑计算白钉
对于我的智囊团游戏,我使用6个数字而不是6种颜色。此外,只输出两个句子,而不是显示黑白挂钩。其中一条是: “正确位置的正确位数为_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu “错误位置的正确位数为_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu 对于提交的4位猜测,我使用了一个名为guessArr的数组,它从4个输入框中接受4个值Java Netbeans 6.5主脑计算白钉,java,netbeans,Java,Netbeans,对于我的智囊团游戏,我使用6个数字而不是6种颜色。此外,只输出两个句子,而不是显示黑白挂钩。其中一条是: “正确位置的正确位数为_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu “错误位置的正确位数为_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu 对于提交的4位猜测,我使用了一个名为guessArr的数组,它从4个输入框中接受4
guess0 = Integer.parseInt(firstInput.getText());
guess1 = Integer.parseInt(secondInput.getText());
guess2 = Integer.parseInt(thirdInput.getText());
guess3 = Integer.parseInt(fourthInput.getText());
//New array to arrange guesses
int[] guessArr = new int[] {guess0,guess1,guess2,guess3};
对于计算机生成的答案
//Create a 4 digit code made of random numbers between 1 and 6
answerArr[0]=(int)(Math.random()*6+1);
answerArr[1]=(int)(Math.random()*6+1);
answerArr[2]=(int)(Math.random()*6+1);
answerArr[3]=(int)(Math.random()*6+1);
找到黑色钉子的数量很容易:
//Calculate number of correct digits in correct position
for (int i = 0; i < 4; ++i)
{
if (answerArr[i] == guessArr[i])
{
used[i] = true;
bothRight++;
}
}
//计算正确位置的正确位数
对于(int i=0;i<4;++i)
{
if(answerArr[i]==guessArr[i])
{
used[i]=true;
bothRight++;
}
}
编辑
我已经解决了
// Calculate number of correct numbers in wrong position
//Declare variables for what digits are in the answer
Integer digit1 = 0, digit2 = 0, digit3 = 0, digit4 = 0, digit5 = 0 , digit6 = 0;
//Find what the answer digits are
for (int k = 0; k < answerArr.length; ++k){
if (answerArr [k] == 1)
{
digit1++;
}
if (answerArr [k] == 2)
{
digit2++;
}
if (answerArr [k] == 3)
{
digit3++;
}
if (answerArr [k] == 4)
{
digit4++;
}
if (answerArr [k] == 5)
{
digit5++;
}
if (answerArr [k] == 6)
{
digit6++;
}
}
//Declare variables for what digits are in the answer
Integer gDigit1 = 0, gDigit2 = 0, gDigit3 = 0, gDigit4 = 0, gDigit5 = 0 , gDigit6 = 0;
//Find the guess numbers submitted
for (int p = 0; p < guessArr.length; ++p){
if (guessArr [p] == 1)
{
gDigit1++;
}
else if (guessArr [p] == 2)
{
gDigit2++;
}
else if (guessArr [p] == 3)
{
gDigit3++;
}
else if (guessArr [p] == 4)
{
gDigit4++;
}
else if (guessArr [p] == 5)
{
gDigit5++;
}
else if (guessArr [p] == 6)
{
gDigit6++;
if (gDigit6 == 0)
{
gDigit6++;
}
}
//Find the value of correct numbers submitted in the guess
Integer correctNumbers = Math.min (digit1, gDigit1) + Math.min (digit2, gDigit2) + Math.min (digit3, gDigit3) +
Math.min (digit4, gDigit4) + Math.min (digit5, gDigit5) + Math.min (digit6, gDigit6);
//Calculate value of numberRight
numberRight = (correctNumbers - bothRight);
}
//计算错误位置正确数字的数量
//为答案中的数字声明变量
整数digit1=0,digit2=0,digit3=0,digit4=0,digit5=0,digit6=0;
//找出答案数字是什么
对于(int k=0;k
任何帮助都将不胜感激D谢谢。首先,我要说的是,我不会给你任何代码,因为这要么是一个学习练习,你可以学习语言,要么这是一个课堂问题 所以,让我们从逻辑上考虑一下。。。解决这个问题的一种方法是计算一种颜色的数量 例如,假设玩家猜出2个蓝色和2个绿色,答案是1个蓝色、1个红色和2个绿色 玩家猜中了3种正确的颜色,所以你会给他们3个白色的钉子,除非他们在正确的位置得到一些。现在,假设他们在正确的位置有一个蓝色,这意味着他们有一个黑色的钉子,它代替了一个白色的钉子。所以,总数是2个白钉和1个黑钉 因此,要找到“正确颜色”的数量,你应该检查每种颜色(循环的好机会?),并将玩家猜测的每种颜色的数量与解决方案中的每种颜色的数量进行比较 换句话说,你不想把猜测与答案相比较。您希望将猜测中每种颜色的计数与解决方案中每种颜色的计数进行比较 然后,通过这个pesudo代码得到“白钉”: int whitePegs=正确的颜色黑色Pegs 编辑1:一次比较一种颜色的答案 如果要保持每种颜色的计数,则需要使用两个数组,一个用于猜测,一个用于解决方案。数组中的每个元素将保存颜色的计数,如下所示:
r=red, o=orange, y=yellow, etc.
R O Y G B
Guess: [0][2][1][1][0] (Total is 4, for 4 pegs
Actual: [1][1][2][0][0] (Total is 4) for 4 pegs
Matches:[0][1][1][0][0] (Total is 2) This is "correctColors" from above
是的,这是一个Gr.11 Java总结性作业简介。你是说每种颜色都有一个环吗?那么6圈?谢谢你的反馈。另外,我该如何准确地确定循环中要测试的颜色?我是否需要找到生成答案中的数字?谢谢。看来要理解的最大障碍是:检查每个数字,并将玩家猜到的数字与解决方案中的数字进行比较。谢谢,是的,我知道我是个新手。像这样?对于(intj=0;j<4;++j){if(answerArr[j]==1){Integer digit1=0;digit1++;}}@AlexKwan,请看一下我刚刚编辑到底部的内容。它具有包含“颜色计数”的两个数组的图形表示。