Russian AI Cup

Расширенный поиск  
Страницы: [1]

Автор Тема: Equals  (Прочитано 1300 раз)

tankovod

  • Jr. Member
  • **
  • Сообщений: 14
Equals
« : Ноября 08, 2013, 02:44:04 pm »

Почему для Unit нереализован метод equals? Можете добавить?
Записан

tankovod

  • Jr. Member
  • **
  • Сообщений: 14
Re: Equals
« Ответ #1 : Ноября 08, 2013, 03:34:34 pm »

Допустим имеется код:

public void move(Trooper self, World world, Game game, Move move) {
...
  Trooper[] ts = getWorld().getTroopers();
  System.out.println("Self is:"+self);
  for (int i = 0 ; i < ts.length; i++) {
    System.out.println("Trooper"+ts[i]);
  }

Выводится

Цитировать
Self is:model.Trooper@ccc588
Troopermodel.Trooper@10849bc
Troopermodel.Trooper@120d62b

Почему в списке нет адреса обекта self (т.е. self не состойт в getWorld().getTroopers()) ?
Записан

vovo4ka

  • Jr. Member
  • **
  • Сообщений: 34
Re: Equals
« Ответ #2 : Ноября 08, 2013, 03:45:52 pm »

Может потому, что это копия объекта?
Если вы хотите проверить "равенство" юнитов в разных списках, то можно сравнивать getTeammateIndex() и getPlayerId() у различных солдат.
Записан

tankovod

  • Jr. Member
  • **
  • Сообщений: 14
Re: Equals
« Ответ #3 : Ноября 11, 2013, 10:51:29 am »

Спасибо за ответ,
getTroopers() неожидано возвращает копию унитов.

Делаю свой списки и различаю унитов по адресам (для етого также переустанавливаю значение self'а в методе move). :)
Записан
Страницы: [1]