Java 值未从另一个类返回
嗨,我正在做一个游戏,玩家遇到一个机器人,机器人让它猜1-10之间的数字。玩家有三次尝试,否则他们会死。我已经写了我所有的代码,猜测很好,但只要剧本做对了,他还是死了。我添加了几个print语句来查看代码返回的值,它似乎返回了错误的值。有人能帮我吗?谢谢 从这门课开始Java 值未从另一个类返回,java,debugging,Java,Debugging,嗨,我正在做一个游戏,玩家遇到一个机器人,机器人让它猜1-10之间的数字。玩家有三次尝试,否则他们会死。我已经写了我所有的代码,猜测很好,但只要剧本做对了,他还是死了。我添加了几个print语句来查看代码返回的值,它似乎返回了错误的值。有人能帮我吗?谢谢 从这门课开始 if (choice != -1) { if (john[choice] != null) { if (john[choice].compPlayerAttack()) { System.out.print("IT'S GAME
if (choice != -1) {
if (john[choice] != null) {
if (john[choice].compPlayerAttack()) {
System.out.print("IT'S GAME OVER MAN!\n");
System.exit(0);
}
else {
System.out.println("Robot appears. Guess a number between 1-10. Get it right and you can pass, or you die. You have three chances.\"");
int answer = 0;
john[choice].toPass(answer);
if (answer== 1) {
System.out.println(answer);
map[x][y].removeJohnPlayer();
}
else { System.out.println(answer);
System.out.print("IT'S GAME OVER MAN!\n");
System.exit(0);
}
给这个班
public int toPass(int right){
int hiddenNum = numram.nextInt(MAX_NUMBER);
Scanner input = new Scanner(System.in);
int numOfGuesses = 0;
int a = right;
do {
System.out.println("Enter a number by guessing: ");
int guessedNum = input.nextInt();
numOfGuesses++;
if (guessedNum == hiddenNum) {
System.out.println("Darn! Your number is matched. You may live.");
System.out.println("You have made " + numOfGuesses + " attempts to find the number!");
a = 1;
break;
} else if (guessedNum < hiddenNum) {
System.out.println("Try a bigger number");
} else if (guessedNum > hiddenNum) {
System.out.println("Try a smaller number");
}
} while (numOfGuesses < 3);
System.out.println(a);
return a;
public int-toPass(int-right){
int hiddenNum=numram.nextInt(最大值);
扫描仪输入=新扫描仪(System.in);
int numOfGuesses=0;
int a=右;
做{
System.out.println(“通过猜测输入一个数字:”);
int guessedNum=input.nextInt();
numOfGuesses++;
if(猜测数==hiddenNum){
System.out.println(“该死!你的号码匹配了,你可能还活着。”);
System.out.println(“您尝试了”+numOfGuesses+“查找数字!”);
a=1;
打破
}else if(猜测数隐藏数){
System.out.println(“尝试较小的数字”);
}
}而(numfoguesss<3);
系统输出打印项次(a);
返回a;
}这里
john[choice].toPass(answer);
您正在忽略toPass
方法返回的值
将其更改为:
answer = john[choice].toPass(answer);
顺便说一句,没有理由将参数传递给toPass
方法,因为它没有使用它,也无法更改它(因为Java是一种传递值语言)。返回值就足够了
i、 e.将方法更改为public int toPass()
您应该做的另一个更改是将返回类型更改为boolean
。返回true
或false
比返回1
或0
更具可读性