高或低游戏没有循环或"而#34;码

时间:2017-05-30 16:46:12

标签: java

我是一名正在使用java的学生,我很难编写高低猜谜游戏。我不能使用循环或"而#34;码。有什么想法吗?这就是我现在所拥有的:

public class FinalProject1

{

  public static void main(String [] args)

    {

       System.out.println("Number Guessing Game 1-1000\nGuess a number");
       guess();
    }

  public static int random()

    {
        int x = (int)(1000*Math.random() + 1);
        return x;
    }

  public static void guess()

  {

      int num = random();
      int tries = 0;
      Scanner keyboard = new Scanner(System.in);
      String inputString = keyboard.nextLine();
      int input = Integer.parseInt(inputString);

      if (input > num)

      {
          System.out.println("Guess a higher number");
          inputString = keyboard.nextLine();
      }

      else if (input < num)

      {
          System.out.println("Guess a lower number");
          inputString = keyboard.nextLine();
      }

      else if (num == input)

      {
          System.out.println("You Win");

  }

}

} 

2 个答案:

答案 0 :(得分:-1)

首先,你的逻辑是有缺陷的。如果=INDEX(Sheet2!$I:$I,AGGREGATE(15,6,ROW(Sheet2!$I$2:$I$6)/(ISNUMBER(SEARCH(" " & Sheet2!$I$2:$I$6 & " "," " & A2 & " "))),1)) 则用户猜到太高,需要猜测较低数字。

其他人建议使用递归,这是你的问题的常见解决方案,而且很可能是你需要做的,因为你可能刚刚学会了递归。

但是,既然我喜欢相反,我会通过开始一个新的线程来做到这一点:

input > num

答案 1 :(得分:-1)

一些事情..

  1. 你的&gt; &安培; &LT;检查更高和更低的是向后
  2. 您需要使用递归才能在没有任何循环的情况下产生预期的行为。

    public static void main(String [] args)
    {
    
        System.out.println("Number Guessing Game 1-1000\nGuess a number");
        int num = random();
        Scanner keyboard = new Scanner(System.in);
    
        guess(keyboard, num);
    }
    
    public static int random()
    {
        int x = (int)(1000*Math.random() + 1);
        return x;
    }
    
    public static void guess(Scanner keyboard, int goal)
    {
        String inputString = keyboard.nextLine();
        int input = Integer.parseInt(inputString);
    
        if (input < goal)
        {
            System.out.println("Guess a higher number");
            guess(keyboard, goal);
        }
    
        else if (input > goal)
        {
            System.out.println("Guess a lower number");
            guess(keyboard, goal);
        }
    
        else if (input == goal)
        {
            System.out.println("You Win");
        }
    }
    
  3. 基本上发生的事情是我们得到他们的回复并检查它是否&gt;或者&lt;结果,告诉他们,并立即再次调用guess()方法,以便重复此过程,直到他们做对了。

    在开始时绕过递归可能相当困难,只是继续练习