no such method error when running java file

66 views Asked by At

I have been moving from python to java so still getting used to OOP. I tried to make a game that would generate 2 random numbers and the user would have to add them together.

However when i run the game i get an unexpected error code:

Exception in thread "main" java.lang.NoSuchMethodError: 'void Game.playGame()' at additionGame.main(additionGame.java:8)

I have added my code below:

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

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

        Game gameObject = new Game();
        gameObject.playGame();

    }
}

class Game {
    int score = 0;

    public int generateNumber(){
        int number;
        Random random = new Random();
        number = random.nextInt(20)+1;
        return number;
    }

    public void playGame(){
        int i = 0;
        while (i<10){
            int number1;
            int number2;
            int answer;
            String userAnswerSTR;
            int userAnswer;

            i++;

            number1 = generateNumber();
            number2 = generateNumber();

            answer = number1 + number2;

            System.out.println("What is " + number1 + "+" + number2 + " :");
            Scanner scannerObject = new Scanner(System.in);
            userAnswerSTR = scannerObject.nextLine();
            scannerObject.close();

            userAnswer = Integer.parseInt(userAnswerSTR);

            if (userAnswer == answer){
                System.out.println("Correct Answer!");
                score ++;
            }

            else {
                System.out.println("Incorrect! The answer was: " + answer);
            }

        }
    System.out.println("Congratulations! Your score was: " + score);
    }

}

I expected the game to run 10 times round then print the users score

1

There are 1 answers

2
Jeevan ebi On

Here is the approch you can try :

I expected the game to run 10 times round then print the users score

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

public class AdditionGame {
    public static void main(String[] args) {
        Game game = new Game();
        game.playGame();
    }
}

class Game {
    int score = 0;

    public int generateNumber() {
        Random random = new Random();
        return random.nextInt(20) + 1;
    }

    public void playGame() {
        Scanner scanner = new Scanner(System.in);

        for (int i = 0; i < 10; i++) {
            int number1 = generateNumber();
            int number2 = generateNumber();
            int answer = number1 + number2;

            System.out.print("What is " + number1 + " + " + number2 + " : ");
            int userAnswer = scanner.nextInt();

            if (userAnswer == answer) {
                System.out.println("Correct Answer!");
                score++;
            } else {
                System.out.println("Incorrect! The answer was: " + answer);
            }
        }

        System.out.println("Congratulations! Your score was: " + score);

        scanner.close();
    }
}