有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用tester类的java猜谜游戏

我正在用java代码创建一个猜谜游戏程序。我对主类和tester类的运行有问题。任何帮助都将不胜感激。游戏的说明是,计算机生成一个随机数,用户必须在7次或更少的猜测中猜出这个数字。如果猜测超过7,则游戏结束,并询问用户是否想“再次玩”

下面是我的猜测课:

import java.util.Random;

public class Guess 
{
    int computersNumber; // A random number picked by the computer.
    int usersGuess = 0;      // A number entered by user as a guess.
    int guessCount = 0;      // Number of guesses the user has made.

    Random random = new Random();

    int randomNumber = random.nextInt(100);


    public Guess(int n)
    {
        usersGuess = n;
    }



   public boolean getGuess()
   {
       boolean isValid = false;
            if (isValid)
              {
                  return false;
              }

            if (usersGuess == computersNumber)

              {  
                  return true;
              }

            return isValid;
    }

   public boolean isGuessCorrect()
   {
       return getGuess() == computersNumber;
   }

   public int getCount()
   {
       guessCount ++;
       return guessCount;
   }

        boolean playAgain;


}

测试人员/主要类别:

import java.util.Scanner;

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

    System.out.println("Let's play a game!");
    System.out.println();
    System.out.println("The computer will generate a number between 0 and 100. You will have up to seven guesses"
                + "to figure out what the number is. Good luck!");
    System.out.println();

    System.out.print("What is your first guess? ");
    int n = in.nextInt();

    Guess guess = new Guess(n);

    if (guess.getGuess == computersNumber) 
    {
        System.out.println("That's Correct! ");
    }
    if (getCount == 7) 
    {
        System.out.println("You lose, you didn't get the number in 7 guesses.");
    }

    System.out.println("Would you like to play again? ");
    in.nextBoolean();

    System.out.println();

    System.out.println("Thanks for playing.");

    in.close();

}

}

共 (1) 个答案

  1. # 1 楼答案

    代码中有一些东西是无法编译的。你把所有代码都发了吗

    第一件事:如果你有一个class{}并且你想访问它的方法,你需要先实例化一个Objectclass

    int n = in.nextInt();
    Guess guess = new Guess(n);
    

    接下来,为了实际访问guess的方法,它是这样写的:

    if (guess.getGuess() == computersNumber) {
       System.out.println("That's Correct! ");
    }
    

    然而,在您的示例中,变量computersNumber未在主类中定义,但它是Guess类的成员。由于computersNumbergetGuess()方法都是Guess类的一部分,因此最好从该类中实际访问它们并在那里进行比较。也许用另一种方法:

    public class Guess{
       ....
       public boolean isGuessCorrect(){
          return getGuess() == computersNumber;
       }
    }
    

    我在Guess类中看到的另一件事是,您在getGuess()中访问了一些布尔变量,这些变量没有定义:

    if (!isValid) {
        return false;
    }
    

    来自哪里?它的定义是什么

    编辑:一点道路提示:

    您可以生成一个介于0和100之间的随机数,如下所示:

    Random random = new Random();
    int randomNumber = random.nextInt(100);  // this will be a number between 0 and 100
    int another = random.nextInt(1000);   // you can reuse the random object and generate more numbers