Реально полезная функция там — initializeTick. Она каждый тик актуализирует массив vehicleById, в котором хранится полная информация обо всех юнитах.
Это одномерный массив-вектор? А какой интервал индекса этого массива? От нуля до? Он не сортирован? Все юниты (танки, вертолеты и т.д.) вперемешку? Если юнит гибнет из vehicleById он убирается?
type Ownership=(ANY, ALLY, ENEMY);
TSet = set of Ownership;
var i : Ownership; aSet : TSet;
begin
aSet := [ALLY, ENEMY];
for i:= ANY to ENEMY do
if i in aSet then
writeln (ord(i));
Это то самое?
На самом деле переводить этот код на свой язык не имеет большого смысла
Понятно, что практического смысла нет. Но как еще понять принципы организации элементарных действий, если в мануале об этом не сказано?
enum — это перечисление, специальный класс, здесь класс Ownership, принадлежность. ANY, ALLY, ENEMY — его объекты, не функции.
В-о-о-о-т мы и уперлись в различные трактовки ООП в разных языках.
Согласно википедии:
Класс — абстрактный тип данных в объектно-ориентированном программировании, задающий общее поведение для группы объектов; модель объекта.
Объект — это экземпляр класса. А Вы говорите, что в классе enum уже есть объекты (ANY, ALLY, ENEMY). Это с ходу не понять.
Если другой класс имеет поле класса Ownership, его значением может быть только один из указанных здесь объектов.
Если я правильно понял это скалярный тип Виртовского Паскаля:
type Ownership=(ANY, ALLY, ENEMY);
По поводу коллекций — откройте стартовый пакет в Вашей IDE. Возможно, нужная функция возвращает массив, список, или другую структуру, которая есть в Вашем языке, и которую можно обойти циклом.
Вот видите как все не просто и неоднозначно! Одним из лучших классических мануалов когда-то считался Macintosh Inside. Он был двуязычный Паскаль и Си. Там удалось предусмотреть все несовпадения этих языков. А в нашем случае ребус.
Большое спасибо за Ваше желание помочь! Я слышал, что в Яве есть коллекции, но в Дельфи-7 их в таком виде нет.И как переводить?
Мне писали, что за пару часов возможно перевести. Предположим, что всего участников будет 1000, а из них на Яве 200, т.о. 800 будут переводить и каждый потратит 2 часа, получим 1600 часов. А если организаторы переведут на 9 языков, то потратят всего 18 часов.
5) Действие стратегии
Тут совсем непонятно.
private enum Ownership {
ANY,
ANY — это вызов функции? В Яве запятая м.б. разделителем меду операторами?
Если бы вы внимательно прочитали мой комментарий, то поняли, где можно посмотреть версию компилятора.
Wow! Ребусы продолжаются!
Вы написали:
При локальном тестировании вы можете использовать любой компилятор, но мы можем гарантировать правильную работу только с версией, указанной в разделе сайта «Языковые пакеты».
Если бы вы внимательно читали правила, то сейчас не спрашивали у меня страницу.
Ну тупой я! Ну подскажите!
Для чтения приведённых вами участков кода достаточно иметь базовые навыки программирования, а также знать английский, вот и всё.
Что все?
ANY,
ALLY,
ENEMY
Переводчик гугл переводит:
ЛЮБЫЕ,
ЭЛЛИ,
ВРАГ
И как такое знание английского поможет перевести на Pascal? ;)
BTW А что значит ALLY? Гугл предлагает: союзник, помощник, пособник, но и
мраморный шарик.
И еще мне интересно: это конкурс на создание ИИ-стратегии или на знание языков (английского, явы)?
Ok. Если у Вас нет проблем, то надеюсь Вас не затруднит написать мне строчку кода на Дельфи-7, которая выделит 10 танков и каждый пошлет по указанным координатам: (х1, у1), ..., (х10, у10). Заранее премного благодарен!
Мы не обнаружили проблем с компиляцией пакета на Pascal.
Как интересно! Два пользователя обнаружили, а Вы — нет! Под каким Pascal Вы компилировали?
Код на Java не имеет сложных конструкций и макросов, похож на другие популярные языки и поэтому легко читается всеми программистами.
А я вот Явы совсем не знаю и мне это на Pascal перевести сложно: for (VehicleUpdate vehicleUpdate : world.getVehicleUpdates()) {
long vehicleId = vehicleUpdate.getId();
И это: double x = streamVehicles(
Ownership.ALLY, vehicleType
).mapToDouble(Vehicle::getX).average().orElse(Double.NaN);
NaN — это Not-a-Number? А почему это как метод? В Pascal такого метода нет.
Именно поэтому вместе с утилитой Local runner распространяется также и специальный плагин для отображения любой нужной вам информации поверх имеющейся картинки.
Как зовут этот плагин? Как его подключать? Где про него написано?
Тайна = мировой заговор марсиан?
Есть способ специально и нарочно отвечать невпопад… Я, наверное, тупой, поэтому мне показалось, что смысла этой и других цитированных статей уважаемого автора мне не понять, как и его ответов на мои примитивные вопросы. Что поделать — не всем дано понимание Системной Инженерии :(
Как можем видеть, здесь эта идея вниманием завладела. И, судя по комментариям, здесь и школьники присутствуют. Но хороший лектор может и на дутой идее завладеть вниманием — на то он и хороший лектор.
А если серьезно — то нужно быть честным, особенно в школе! Нужно не завлекать, а честно показывать, каких жертв потребуют данные специальности.
К примеру, в начале 1960-х гг. в СССР партия решила, что геологов не хватает. Стали в молодежной среде романтику разводить — красивые песенки по радио давать, типа «геолог — ты ветру и солнцу брат». На геологический, в «керосинку» (нефть) и т.д. народ повалил рекой, а после практики первого курса, когда выяснялось, что геология — это гороховый суп с тушенкой и вермишелью, не комфортные условия в ненаселенке с дикими волками и прочими медведями, мокрыми рюкзаками, комарами и мошкой, народ разбегался.
С точки зрения математики очень странное противопоставление понятий: множество, объект, система. В математике могу сказать «множество объектов», «множество систем линейных уравнений» и т.д., и ни один математик меня не осудит.
А цифры потерь можно сделать более крупным шрифтом? Трудно следить за боем когда на цифру елочка накладывается. Было бы лучше сделать отдельно информационное окошко и легенду там дать — какого цвета какие юниты и сколько их осталось.
«У вас косяк в пакете под паскаль в FacilityControl.pas Ругается на эту строчку constructor TFacility.Create(const facility: TFacility); overload; Я в принципе локально у себя поправил. Ранер успешно запускается и конектится к эмулятору, но не уверен будет ли работать оно у вас»
У меня та же штука в D-7. Стер Overload -работает. Но это не по правилам — править можно только свою стратегию.
“Теперь напишем более сложный код”. Этот 2й пример только на Яве :( ИМХО в руководстве он должен быть переведен на все поддерживаемые языковые пакеты, иначе они будут в неравных условиях
Как вообще на Паскале выделить 10 юнитов, нпр., танков и послать их в точку с заданными координатами? Пробовал по разному — не работает. Может баг? А можно 10 танков послать в 10 разных точек за 1 тик? Мануалу явно не хватает примеров таких элементарных действий. Описание API слишком формальное, много второстепенных методов и добраться до основных за ограниченное время представляется проблематичным.
2)
Читаю:
Для такого выделения надо знать координаты каждого унита. Как мне их узнавать? А иное выделение возможно? (по номеру юнита)
3) что у Вас значит «ALLY»?
Да:
Это то самое?
Понятно, что практического смысла нет. Но как еще понять принципы организации элементарных действий, если в мануале об этом не сказано?
А для приготовления пищи поварих из местных нанимали. Еда — самое важное. Такое студенту никак нельзя доверять!
В-о-о-о-т мы и уперлись в различные трактовки ООП в разных языках.
Согласно википедии:
Объект — это экземпляр класса. А Вы говорите, что в классе enum уже есть объекты (ANY, ALLY, ENEMY). Это с ходу не понять.
Если я правильно понял это скалярный тип Виртовского Паскаля:
Вот видите как все не просто и неоднозначно! Одним из лучших классических мануалов когда-то считался Macintosh Inside. Он был двуязычный Паскаль и Си. Там удалось предусмотреть все несовпадения этих языков. А в нашем случае ребус.
Почему плохая идея? Со стратегической точки зрения рассосредоточить танки м.б. оправдано, особенно после введения атомного удара.
Тут скобки случайно? На Паскале {X2} — комментарий.
А как это сделать? По циклу задавать приращение пути на 1 и смотреть нет ли там юнитов? И каждый шаг — это тик?
А если я не знаю, координат моих танков? Могу я их по номерам или по id вызвать?
Мне писали, что за пару часов возможно перевести. Предположим, что всего участников будет 1000, а из них на Яве 200, т.о. 800 будут переводить и каждый потратит 2 часа, получим 1600 часов. А если организаторы переведут на 9 языков, то потратят всего 18 часов.
Тут совсем непонятно.
private enum Ownership {ANY,
ANY — это вызов функции? В Яве запятая м.б. разделителем меду операторами?
А enum что значит?
Wow! Ребусы продолжаются!
Вы написали:
Смотрим, что написано в разделе сайта «Языковые пакеты»:
А Delphi mode какой версии?
Ну тупой я! Ну подскажите!
Что все?
Переводчик гугл переводит:
И как такое знание английского поможет перевести на Pascal? ;)
BTW А что значит ALLY? Гугл предлагает: союзник, помощник, пособник, но и
мраморный шарик.
И еще мне интересно: это конкурс на создание ИИ-стратегии или на знание языков (английского, явы)?
Как? — Я не знаю Явы.
Как?
А я вот Явы совсем не знаю и мне это на Pascal перевести сложно:
for (VehicleUpdate vehicleUpdate : world.getVehicleUpdates()) {long vehicleId = vehicleUpdate.getId();
И это:
double x = streamVehicles(Ownership.ALLY, vehicleType
).mapToDouble(Vehicle::getX).average().orElse(Double.NaN);
NaN — это Not-a-Number? А почему это как метод? В Pascal такого метода нет.
В D-7 есть разные stream, но как тут перевести?
А это как переводить — совсем непонятно:
private enum Ownership {
ANY,
ALLY,
ENEMY
}
}
Где? Укажите страницу, pls!
Т.е. если не знаю Яву, нужно как минимум времени, чтобы выучить Яву?
А ссылку можно,pls?
Я бы сказал: тем, кому удалось догадаться, что имел в виду автор мануала. И да, Вы правы — есть почти месяц, чтобы догадаться.
В любом случае возникает вопрос: управлять тупой кучей — это ИИ?
Есть способ специально и нарочно отвечать невпопад… Я, наверное, тупой, поэтому мне показалось, что смысла этой и других цитированных статей уважаемого автора мне не понять, как и его ответов на мои примитивные вопросы. Что поделать — не всем дано понимание Системной Инженерии :(
А если серьезно — то нужно быть честным, особенно в школе! Нужно не завлекать, а честно показывать, каких жертв потребуют данные специальности.
К примеру, в начале 1960-х гг. в СССР партия решила, что геологов не хватает. Стали в молодежной среде романтику разводить — красивые песенки по радио давать, типа «геолог — ты ветру и солнцу брат». На геологический, в «керосинку» (нефть) и т.д. народ повалил рекой, а после практики первого курса, когда выяснялось, что геология — это гороховый суп с тушенкой и вермишелью, не комфортные условия в ненаселенке с дикими волками и прочими медведями, мокрыми рюкзаками, комарами и мошкой, народ разбегался.
4) См.:
5) См.:
6) См.:
2) См.:
3) См.: