Вызов метода Arraylist и вызов его в условии условия if

1

Поэтому мне было предложено выполнить эту задачу: Напишите исполняемое консольное приложение GuessingGame, где игрок пытается угадать число от 1 до 20. В начале каждой игры GuessingGame создает экземпляр объекта Player, который будет использоваться для хранения игровых баллов для данного игрока. Имя игрока назначается из пользовательского ввода. Затем программа генерирует случайное число от 1 до 20 и просит игрока угадать номер. Когда игрок вводит номер, программа сообщает игроку, слишком ли он слишком высокий или слишком низкий. Игрок должен продолжать вводить цифры до тех пор, пока не будет введен правильный номер. Оценка рассчитывается следующим образом:

score = (20 - количество догадок).

Каждому игроку предлагается сыграть в игру пять раз, поэтому для каждого игрока хранятся пять баллов. Затем приложение должно отображать средний и лучший результат для игрока.

Я получил игру, хотя я застрял в заявлении if. Я попытался вызвать метод getScore из класса Player, но получаю ошибки операнда. вот мой код GuessingGame:

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

    String name;
    final int numberOfGuess = 5;

    //Create Scanner object
    Scanner input = new Scanner (System.in);
    Player[] player1 = new Player[numberOfGuess];

    //Ask user for name
    System.out.printf("\n Enter Player Name:");
    name = input.nextLine();

    PrintStream fout = new PrintStream(new File("PlayerData.txt"));
    for (int index = 0; index < player1.length ; index++)
    {
        int playerId = index + 1;
        player1[index] = new Player(name); // reference to Student object
        player1[index].setName(name);


        //Ask user for number input
        System.out.println("Please pic a number between 1 - 20");
        player1[index].setScore(Integer.parseInt(input.nextLine()));
        Random rand = new Random();
        int answer = rand.nextInt(20) + 1;
        System.out.println(answer);
        System.out.println(player1[index].getScores());

        if(answer >= player1[index].getScores())
        {
            System.out.println("Your guess is too low");
        }


    }
    fout.println( "" + player1[1].getName() );
    for (int index = 0; index < player1.length ; index++)
        {
            int playerId = index + 1;
            fout.println( "" + player1[index].getScores() );

            }

}

}'

И вот мой класс игрока:

//Class declaration of Player class
public class Player
{
   /*--------------- Data Fields ---------------------------------------
   Attributes of the class
   */
   private String name;
   private int playerId;
   private int bestScore;
   private static int numberOfPlayers = 0;
   private ArrayList<Integer> scores = new ArrayList<Integer>();
   /* -------------- CONSTRUCTOR --------------------------------------
   */
   public Player(String name)
   {
       this.name = name;
       numberOfPlayers++;
       playerId = numberOfPlayers;

   }

   //Create set method for setName
   public void setName(String name)
   {
       this.name = name;
   }
   //Create set method for setScores
   public void setScore(int score)
   {
       scores.add(score);
   }
   //Create get method for getScores
   public ArrayList<Integer> getScores()
   {
       return scores;
   }


}

Я не использовал остальные методы, поскольку это не проблема. Я неправильно установил методы? Если да, то как мне обойти эту проблему?

  • 0
    какую именно ошибку вы получаете?
  • 0
    ошибка: недопустимые типы операндов для бинарного оператора '> =' if (answer> = player1 [index] .getScores ()) первый тип: int второй тип: ArrayList <Integer>
Теги:
arrays
arraylist
methods

1 ответ

2
Лучший ответ

Это пытается сравнить int с ArrayList<Integer>:

if (answer >= player1[index].getScores())

Возможно, вы хотите сравнить int с размером ArrayList:

if (answer >= player1[index].getScores().size())

или сравнить int с некоторым элементом ArrayList:

if (answer >= player1[index].getScores().get(someIndex))

Из вашего вопроса неясно, что такое логика.

  • 0
    Это хороший улов :)
  • 0
    Я хочу иметь возможность сравнивать то, что я храню в getScore, со сгенерированным случайным числом, чтобы показать, как он предположил, что он был низким или высоким
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню