【问题标题】:Learning Java - Making a simple guessing game学习 Java - 制作一个简单的猜谜游戏
【发布时间】:2014-03-27 07:06:59
【问题描述】:

我已经尝试自学 Java 大约一周了,我决定尝试将我的(相当有限的)知识应用到制作一个简单的猜谜游戏中。

基本上,用户输入一个介于 1 和 10 之间的数字,他们会根据他们是否猜得太高、太低或猜对一个随机数来获得反馈。

我的问题是,一旦我运行我的方法,我不知道如何允许多次猜测。基本上他们猜一次,然后就是这样。游戏结束。

我确定这很简单,比如我需要实现的循环,如果他们猜错了,可能会声明一个额外的变量?我不知道。

谁能帮帮我?

这是我的代码:

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

public class GuessingGame {
public static void main(String[] args) {

    //creates a new scanner object
    Scanner input = new Scanner(System.in);

    // randomly generates a number from 1-10
    Random rand = new Random(); 
    int myNumber = rand.nextInt(10)+1; 


    String tooWarm = "Too high. Try again!";
    String tooCold = "Too cold. Try again!";
    String bingo = "Yup! Good guess!";
    boolean playing = true;

    System.out.printf("What's your name? ");
    String name = input.nextLine();     
    System.out.println("Well, " + name + ", betcha can't guess what number I'm thinking of! \nHint: it's between 1 and 10...");
    int value = input.nextInt();


        if (value > myNumber) {
            System.out.println(tooWarm);
        }

        else if (value < myNumber) {
            System.out.println(tooCold);
        }

        else {
            System.out.println(bingo);
        }           

}
}

【问题讨论】:

  • 你需要一个像这样的循环:'while(!input.equals("stop"))'

标签: java loops logic


【解决方案1】:

就这样吧,

do..while 使您的执行至少执行一次。

do {

        System.out.println("Enter : ");
        int value = input.nextInt();

        if (value > myNumber) {
            System.out.println(tooWarm);
        }

        else if (value < myNumber) {
            System.out.println(tooCold);
        }

        else {
            System.out.println(bingo);
            playing = false;
        }
    }
    while (playing);

【讨论】:

    【解决方案2】:

    将此添加到代码的末尾:

    ...
    char yN = input.nextChar();
    if (yN == 'y' || yN == 'Y') {
      main(null);
      return;
      }
    }//end of main().
    

    基本上它的作用是进行递归调用,以便可以一次又一次地玩游戏。 :-)

    【讨论】:

      【解决方案3】:
      import java.util.Scanner;
      import java.util.Random;
      
      public class GuessingGame {
          public static void main(String[] args) {
      
          //creates a new scanner object
          Scanner input = new Scanner(System.in);
      
          // randomly generates a number from 1-10
          Random rand = new Random(); 
          int myNumber = rand.nextInt(10)+1; 
      
      
          String tooWarm = "Too high. Try again!";
          String tooCold = "Too cold. Try again!";
          String bingo = "Yup! Good guess!";
          boolean playing = true;
      
          System.out.printf("What's your name? ");
          String name = input.nextLine();     
          System.out.println("Well, " + name + ", betcha can't guess what number I'm thinking of! \nHint: it's between 1 and 10...");
          while(true){
              int value = input.nextInt();
      
      
              if (value > myNumber) {
                  System.out.println(tooWarm);
              }
      
              else if (value < myNumber) {
                  System.out.println(tooCold);
              }
      
              else {
                  System.out.println(bingo);
                  return;
              }           
      
          }
      }
      

      【讨论】:

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