显示游戏数量,最佳游戏和猜谜游戏的总尝试次数

时间:2019-11-25 00:40:49

标签: java loops

这是一个猜测游戏程序,它接收一个随机数并提示用户猜测该数字可以是多少。每个猜测后面都跟着数字是更低,更高还是它。在每个游戏结束时,程序都会询问用户是否要再次玩。如果用户输入的字母为y,则游戏会重新开始;如果包含字母n,则显示游戏的整体统计信息(玩了多少游戏,总猜测数,平均猜测,最佳游戏(最低的猜测数),等等)。

我的问题是,当至少玩了两个游戏时,总体统计数据只显示一个游戏,总猜想仅显示最后一个玩过的猜想,而最好的游戏则显示这两个猜中的猜想数玩过的游戏(我测试过最多玩过2场游戏)。

如果有人可以指出我的所有问题以及在哪里可以合并一些代码(我觉得有更容易的代码编写方法),我将非常感激。我是一个初学者,所以请原谅我的愚蠢错误。这项工作已经进行了几天,所以我可以轻松浏览一下。

public class GuessingGame {

public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
playGame(reader);

}


public static void playGame(Scanner reader) {
System.out.println("I'm thinking of a number between 1 and 100... "
+ "\nYour guess?");

int guess = 0;
int number = (int)(java.lang.Math.random()*100)+1;
int guessCount = 0;
int minGuess = 0;
int game = 0;
int count = 1;
guess = reader.nextInt();
String userInput;


for(; guess < number || guess > number; count++) {

if (guess > number) {
System.out.println("It's lower.");
guessCount++;
}
if (guess < number) {
System.out.println("It's higher.");
guessCount++;
}
System.out.println("Your guess? ");
guess = reader.nextInt();


}




if (guess == number) {
System.out.println("You got it right in " + count + " guesses!");
guessCount++;
game++;
}

System.out.println("Do you want to play again?");
userInput = reader.next();

if(userInput.indexOf("y")!=-1) {
playGame(reader);
game++;
//System.out.println("Starting game...");
}


else {
int avgGuess = guessCount/game;
System.out.println("Overall results: ");
System.out.println("Total games  = " + game);
System.out.println("Total guesses  = " + count);
System.out.println("Guesses/game  = " + avgGuess);

}
for (int x = 1; x <= guessCount; x++) {
if(guessCount < minGuess || x == 1) {
minGuess = guessCount;

}
}

System.out.println("Best game  = " + minGuess + " guesses.");
}

}

1 个答案:

答案 0 :(得分:1)

问题在于您要声明和初始化游戏变量。

拥有

import boto3

ec2 = boto3.client('ec2')
response = ec2.reboot_instances(InstanceIds=['string'])

您的playGame函数中的

导致它在每次玩游戏时都被覆盖为0。

要解决此问题,您可以使用一个类级别的int变量来计算游戏并在每次玩的游戏中递增。

(作为一种好习惯,您可能希望新类变量是私有的,并且可以通过getter函数和setter来访问/更改,或者在这种情况下,可以通过增量函数来“抽象”增量实现的实现,而不是通过调用者。 )