#java
#java
Вопрос:
import java.util.Scanner;
import java.util.Random;
public class GuessingGame {
public static void main(String[] args) {
int target;
int guess;
Random randomGenerator = new Random();
Scanner keyboard = new Scanner(System.in);
int game = 0;
int score = 1;
String answer;
do {
target = randomGenerator.nextInt(100);
System.out.print("Guess a number between 1 and 100: ");
guess = keyboard.nextInt();
while (guess != target) {
if (target < guess)
System.out.println("The number is lower, Try again");
else
System.out.println("The number is higher, Try again");
System.out.print("Guess a number between 1 and 100: ");
guess = keyboard.nextInt();
score ;
}
System.out.println("You guessed correctly!!");
System.out.println("Your score is " score);
System.out.print("Play another game, yes(or no):");
answer = keyboard.next();
game ;
score = 1;
} while (answer.equalsIgnoreCase("yes"));
// end of game information
System.out.println("Game summary");
System.out.print("tNumber of games played:t" game);
System.out.println("tbest score" score);
}
}
Я учусь использовать класс Random, создавая игру в угадайку, которая генерирует число от 1 до 100. Каждый раз, когда пользователь делает предположение, оценка увеличивается. Я не уверен, как я могу напечатать наименьший балл. Программа суммирует общее количество баллов из обеих игр вместо вывода наименьшего балла.
Комментарии:
1. Покажите какой-нибудь код.
2. Вам нужно сохранять один балл за игру или, что может быть проще, сохранять наименьший балл в отдельной переменной и после каждой игры сравнивать последний балл с наименьшим
Ответ №1:
Прежде чем вы сможете распечатать его, вам нужно его вычислить.
Необходимы две вещи: 1. Оценка за каждую игру 2. Самый низкий балл на данный момент
Для того, чтобы ваша переменная ‘score’ вычисляла счет за текущую игру, ее необходимо сбрасывать на 1 для каждой игры. Таким образом, score = 1
сразу после do {
где начинается новая игра.
И для того, чтобы отслеживать наименьший, вам нужно объявить int lowestScore = 999999999
(объяснено позже) и после каждой игры (сразу после завершения цикла guess != target
) вы пишете if (score < lowestScore) lowestScore = score
.
Почему именно 999999999? Что ж, это дешевый способ гарантировать, что первый балл, который по определению будет наименьшим на данный момент, запомнится как наименьший балл. Если только у вас нет кого-то, кто готов ввести миллиард неправильных догадок.
Комментарии:
1. Лучше использовать хорошо известную и устоявшуюся константу, такую как Integer. MAX_VALUE чем составлять собственное определение того, что такое очень большое значение
2. Я предполагал, что кто-то скажет это, но в простых случаях, подобных этому, я предпочитаю sentinel, который визуально очевиден и который не имеет практических недостатков. Имейте в виду, что мы здесь на «начальном уровне». Тем не менее, OP может быть судьей.