• 0.00

  • 0.00

level21.lesson16.big01 задание 15 : Метод getWinner не принимается

Ипподром(15)
В классе Hippodrome сделаем два метода:
public Horse getWinner() и public void printWinner()
Метод getWinner должен возвращать лошадь пробежавшую самую большую дистанцию.
Метод printWinner выводит на экран имя победителя в виде: Winner is !
Пример:
Winner is Lucky!

Валидатор выдает: Метод getWinner должен возвращать лошадь пробежавшую наибольшую дистанцию.

До этого задания все принято нормально. Я всего лишь добавил в Ippodrom 2 метода:

public Horse getWinner()
    {
        Horse winner=horses.get(0);
        for (int i=1;i<horses.size();i++)
        {
            if (winner.getDistance()<=horses.get(i).getDistance())
                winner=horses.get(i);
        }
        return winner;
    }

    public void printWinner()
    {
        System.out.println("Winner is "+ getWinner().getName()+"!");
    }


Ну и в самом main() добавил вызов: game.printWinner();

Все выдает правильно, проверено раз 20 уже. Пробовал getWinner() делать через for-each, и обращаться к списку через game.getHorses вместо напрямую horses, менял знаки равенства. Куда копать то?


package com.javarush.task.task21.task2113;

import java.util.ArrayList;
import java.util.List;

public class Hippodrome {

    private ArrayList<Horse> horses=new ArrayList<>();
    public static Hippodrome game;

    public Hippodrome (ArrayList<Horse> horses) {this.horses=horses;}

    public List<Horse> getHorses(){return horses;}

    public static void main(String[] args) throws InterruptedException {
        game = new Hippodrome(new ArrayList<Horse>());
        game.getHorses().add(new Horse("Burenka",3,0));
        game.getHorses().add(new Horse("Mustang",3,0));
        game.getHorses().add(new Horse("Przhevalsk",3,0));
        game.run();
        game.printWinner();

    }

    public Horse getWinner()
    {
        Horse winner=horses.get(0);
        for (int i=1;i<horses.size();i++)
        {
            if (winner.getDistance()<=horses.get(i).getDistance())
                winner=horses.get(i);
        }
        return winner;
    }

    public void printWinner()
    {
        System.out.println("Winner is "+ getWinner().getName()+"!");
    }

    public void run()  {
        for (int i=1; i<=100;i++)
        {
            move();
            print();
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
    public void move() {
        for (Horse h: horses)  {    h.move();  }
    }
    public void print() {
        for (Horse h: horses) { h.print(); }

        for (int i=1;i<=10;i++) System.out.println();

    }

}