Итак, меня попросили выполнить эту задачу: Напишите исполняемое консольное приложение GuessingGame, где игрок пытается угадать номер от 1 до 20. В начале каждой игры , GuessingGame создает объект Player , который будет использоваться для хранения игрового счета для данного игрока. Имя игрока - , назначенное из пользовательского ввода. Затем программа генерирует случайное число от 1 до 20 и просит игрока угадать номер. Когда игрок вводит номер, программа сообщает игроку, является ли оно слишком высоким или слишком низким. Игрок должен продолжать вводить цифры , пока не будет введен правильный номер. Счет вычисляется следующим образом:Вызов метода Arraylist и вызов его, если условие условия
score = (20 – the number of guesses).
Каждый игрок просят играть в игру пять раз, поэтому пять баллов сохраняются для каждого игрока. Затем приложение должно отображать средний и лучший результат для игрока.
Я получил игру, хотя я застрял в утверждении 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;
}
}
Я не ставил остальные методы, поскольку они не являются проблемой. Я неправильно задал методы? Если да, то как мне обойти эту проблему?
Какая именно ошибка вы получаете? –
ошибка: плохие типы операндов для бинарного оператора '> =' \t \t \t если (ответ> = player1 [индекс] .getScores()) первый тип: INT второго типа: ArrayList –