【问题标题】:Printing consecutive numbers in a guessing game (java)?在猜谜游戏(java)中打印连续数字?
【发布时间】:2016-12-07 19:09:41
【问题描述】:

我用java创建了一个猜谜游戏。这很简单:计算机选择一个随机数,用户可以选择是 5、10 还是 20 次猜测该数字的机会。每次猜测后,程序都会告诉他们他们的猜测是高于还是低于幻数。如果他们猜到了这个数字,他们会收到一条祝贺信息,并询问他们是否想再玩一次。如果他们没有猜到号码,他们也会收到一条消息,并询问他们是否想再玩一次。我想添加到我的代码中的一件事我似乎无法弄清楚...... 当用户猜到这个神奇的数字时,我想在祝贺信息之后做这样的事情:

祝贺你,鲍勃!你猜中了 6 次中的幻数。

你没有使用这些猜测:

7

8

9

10

我试过这个,我很快意识到这没有任何意义,但从这里我被卡住了。

System.out.println("You did not use these guesses: "+ (i-numberOfGuesses));

我应该如何包含这个?我宁愿不使用数组。

import java.util.Random;
import java.util.Scanner;

public class NewClass 
{
  public static void main(String [] args)  
  {
     final String SENTINEL = "no"; 
     int guess;
     String playAgain;
     int numberOfGuesses;

      Scanner scan = new Scanner( System.in );


      System.out.print( " Enter your name: ");
      String name = scan.next();


      System.out.print(" Would you like to try to guess a number? (Yes or No):");
      String answer = scan.next();

      while(!answer.equals(SENTINEL)){

        if (answer.equals("yes"))
        System.out.print("How many guesses would you like? (5, 10, 20): ");
            do {
            numberOfGuesses = scan.nextInt();

            if (numberOfGuesses == 5 || numberOfGuesses == 10 || numberOfGuesses == 20 )
                break;
            System.out.print("How many guesses would you like? (5,10,20): ");
            } while (true);

            Random random = new Random();

            int randomNumber = random.nextInt(100) + 1;


           {
          for(int i = 1; i <= numberOfGuesses ; i++){
   System.out.print("Enter guess #"+i+": ");
   guess = scan.nextInt();

   if (guess > randomNumber && guess <= 100)
      System.out.println("Your guess, "+guess+", is greater than the magic number.");

   else if (guess < randomNumber && guess > 0)
      System.out.println("Your guess, "+guess+", is less than the magic number.");

   else if (guess == randomNumber){
      System.out.println("Congratulations, "+name+"! You guessed the magic "
              + "number in "+i+" guesses.");
      System.out.println("You did not use these guesses: "+ (i-numberOfGuesses));
      break;
 }
   else 
       i--;

   if (i == numberOfGuesses)
        System.out.println("Sorry, " + name+", you did not guess the magic "
                + "number, " + randomNumber + ", in "+ numberOfGuesses + " tries.");

          }

         System.out.print("Would you like to try to guess a number? (Yes or No):");
     answer = scan.next();
} 

            }}}

【问题讨论】:

    标签: java


    【解决方案1】:

    我认为你应该用这个循环替换你提议的(但不正确的)代码行:

        if (i != numberOfGuesses) {
          System.out.println("You did not use these guesses: ");
          for (int j = i + 1; j <= numberOfGuesses; j++) {
            System.out.println(j);
          }
        }
    

    此外,您还有一个错误:如果您在开始时回答“是”,那么一切都很好,您可以玩游戏。但是,如果您回答“是”(如问题中所建议的)或任何其他文本,它会等待另一个输入,当您输入某些内容并按 Enter 时,它会继续游戏。所以,如果你输入“No”,按回车,输入1,按回车它仍然会播放。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多