2014-11-30 3 views
-2

Я создаю программу Guessing в Java-коде. У меня проблема с основным классом и классом тестера. Любая помощь будет оценена по достоинству. Инструкции для игры: компьютер генерирует случайное число #, и пользователь должен угадать, что число в 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; 


} 

Tester/главный класс:

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(); 

} 

} 
+0

Что проблема? – Sybren

+0

Чтобы у вашего потока был ответ, у него должен быть вопрос. – silver

+0

Вам нужно будет перечитать ваши уроки. Вы используете переменные, которые вы не объявили или не инициализировали, вызывая методы без круглых скобок или ссылки на объекты, и вы на самом деле не создаете объект 'Guess' для начала. – RealSkeptic

ответ

0

Есть несколько вещей в вашем коде, которые не компилировать. Вы опубликовали весь свой код?

Первые вещи первое: если у вас есть classGuess и вы хотите получить доступ к его методам, необходимо создать экземпляр Object о том, что class первый:

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

Далее, для того, чтобы действительно получить доступ к способу guess написано так:

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

Однако в вашем примере, переменная computersNumber не определяется в основном классе, но она является членом т he Guess класс. Поскольку как computersNumber, так и метод getGuess() являются частью класса Guess, было бы лучше фактически получить к ним доступ из этого класса и провести там сравнение. Может быть, в отдельный метод:

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

Другая вещь, которую я видел в вашем Guess классе является то, что доступ к некоторым булеву переменную в getGuess(), которое не определено:

if (!isValid) { 
    return false; 
} 

Где isValid взялось? где он определен?

Edit: небольшой намек на дорогу:

Вы можете сгенерировать случайное число в диапазоне от 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 
+0

Благодарим вас за ввод! Это было очень полезно, и я немного изменил свой код. Может, вы могли бы еще раз взглянуть? Что для меня не имеет смысла, это общедоступный метод boolean isGuessCorrect. Я получаю ошибки, когда этот код написан в java? Я все новичок в этом, и я научился научиться в Интернете. – Courtney

Смежные вопросы