我正在与两个不同的班级进行奶牛和公牛比赛: 第一堂课如下: import java.util。*; import java.util.Scanner;
public class CowsAndBulls {
int UserNumber=0;
int CompNumber=0;
int bulls=0;
int cows=0;
Scanner input = new Scanner(System.in);
public void getUserNumber() {
System.out.println("Please enter your guess!");
int UserValue=input.nextInt();
UserNumber=UserNumber+ UserValue;
System.out.println("Your guess is : " + UserNumber);
}
public void getCompNumber() {
Random generator= new Random();
int pickedNumber=generator.nextInt(10000) + 1000;
CompNumber =CompNumber+ pickedNumber;
System.out.println("The computer has guessed : " + CompNumber );
}
}
它只是为计算机生成一个随机数,并要求用户输入他们的猜测。 我的游戏课遇到了很多麻烦,具体来说,我无法让我的while循环运行,
public class CowsAndBullsPlay {
public void play() {
int GuessCount=0;
int UserNumber = 0;
int CompNumber = 0;
int cows = 0;
int bullcount=0;
int cowcount=0;
int bulls = 0;
Boolean GameEnds;
GameEnds=false;
while (GameEnds=false) {
CowsAndBulls user= new CowsAndBulls();
user.getUserNumber();
CowsAndBulls comp= new CowsAndBulls();
comp.getCompNumber();
String UserString=String.valueOf(UserNumber);
String CompString=String.valueOf(CompNumber);
String U=UserString;
String C=CompString;
for (int i=0; i<4; i++)
for (int k=i+1; k<4; k++) {
if(U.charAt(i)==C.charAt(k)) {
bullcount ++;
bulls=bulls + bullcount;
}
else if(U.contains(C.charAt(i) + U)) {
//for (int v=0; v<4; v++)
//for (int j=0; j<4; j++) {
cowcount ++;
cows=cows + cowcount;
}
GuessCount++;
}
if (bulls==4) {
GameEnds= true;
System.out.println("Congratulations!");
System.out.println("it took you:" + GuessCount);
}
else {
System.out.println("cows: " + cows);
System.out.println("Bulls:" + bulls);
}
}
}
}
它应该检查奶牛然后检查公牛,然后如果公牛不等于4,循环应该重复 - 调用前两个方法要求用户输入并要求计算机随机生成一个数字然后guesscount应该跟踪循环迭代。
代码编译,但它不会运行while循环
这是我的测试人员课程:
public class CowsAndBullsTester {
public static void main(String[] args) {
int bears = 0;
int cows = 0;
Boolean GameEnds = false;
System.out.println("welcome to Cows Versus Bulls death match!");
CowsAndBulls user= new CowsAndBulls ();
user.getUserNumber();
System.out.println("Now the computer will pick a number!");
CowsAndBulls comp= new CowsAndBulls ();
comp.getCompNumber();
System.out.println("Let's see how you did!");
CowsAndBullsPlay game= new CowsAndBullsPlay();
game.play();
}
}
真的很感激任何帮助。我确定有一些愚蠢的错误,我只是不确定是什么。这只是我的第三个任务,我在弄清楚自己出了什么问题时遇到了一些麻烦:)
谢谢!
答案 0 :(得分:6)
您需要将while (GameEnds=false)
更改为while (GameEnds==false)
。
第一个是作业,第二个是比较。因此,在第一个中,false
将被分配到GameEnds
,然后GameEnds
将评估为false
条件的while
,这意味着循环将永远不会输入
另外,请参阅@ AndrewMao的评论如下。通常,您会看到boolean
在条件中直接使用,有或没有否定(!
),因为它们已经包含真值并且进一步比较是多余的。
小旁注:为清晰起见,您可能需要在camelCase
重命名变量。