Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];

Вниз

---|Ветка была без названия|---   Найти похожие ветки 

 
Александр.   (2003-05-08 11:43) [40]

Не обижайтесь на "одноклеточные".
Я имел в виду новый класс алгоритмов с двумя новыми идеями:
1.Несколько ролей роботов в алгоритме функционирования всей команды (робот - "лидер", робот - "производитель", робот - "воин", робот - "насос").
2.Взаимодействие роботов для повышения общей эффективности боя, обороны и размножения. Сдесь реализованы идеи, которые не приходили в голову даже самому автору (Kladov).

По сравнению с такой командой роботов (таким себе "многоклеточным" существом) старые алгоритмы (в том числе и мой "ПЧЕЛА") представляются "одноклеточными".

Результаты спарингов с роботом Крепость можно будет проверить позже, когда будут открыты его исходники. На данный момент существуют еще две версии " многоклеточного" робота (правда не мои - МЕЛЬНИЦА и ПУЛЬСАР), которые абсолютно сильнее моего робота Крепость.


 
DrFaust   (2003-05-08 13:00) [41]

Уважаемый Александр я конечно все могу понять но зачем писать то чего не может быть

> * 40x40 Крепость Step=158 Крепость=1600

Берем и проверяем математически используя простую прогрессию за сколько шагов один робот достигнет популяции в 1600 ед. :

Условия:
1. каждый ход робот получает +2 энергии (больше нет)
2. при достижении уровня энергии 100 робот делится
3. необходимость в перемещении на новую позицию не учитывается
4. утечки энерги нет


Код:
procedure TForm1.Button1Click(Sender: TObject);
var
c:integer;
s:integer;
i:integer;
a:array[1..3200] of byte;
begin
c:=1;
s:=0;
a[1]:=100;
repeat
for i:=1 to c do
begin
a[i]:=a[i]+2;
if a[i]>=100 then
begin
a[c+1]:=a[i] div 2;
a[i]:=a[i] div 2;
inc(c);
Label1.Caption:="Шаг "+IntToStr(s);
Label2.Caption:="Число роботов "+IntToStr(c);
if c>=1600 then exit ;
end;
end;
inc(s);
until false;
end;

Результат:
Шаг 250 Число роботов 1600


А теперь объясните мне глупому как получается результат Шаг 158
число роботов 1600 когда в реальных условиях робот должен выполнять еще поворот и движение (которое при неудаче отнимает -1ед.)

Вот реальные данные:

* 40х40 ВИРУС2а Шаг 444 Число 1600

А вот и вирус:
*ВИРУС2а
*Автор Faust
старт: L.заряжай P.вбой P.вбой F.заряжай P.вбой F.заряжай F.заряжай F.заряжай F.заряжай G.старт
заряжай: P.вбой L.заряжай F.заряжай F.заряжай G.старт
вбой: A.шаг A.шаг A.шаг A.шаг A.шаг P.вбой
шаг: F.заряжай P.вбой F.заряжай F.заряжай I.вбой G.старт


 
Arch-vile   (2003-05-09 11:24) [42]

Аудитория ждет не дождется испытать КРЕПОСТЬ (ПУЛЬСАР, итд) в полевых условиях!
А чтобы аудитория не подумала,то это просто понты кидают, нужно предоставить код!


 
Александр.   (2003-05-10 13:26) [43]

Всему свое время, уважаемые коллеги. Я, конечно не собираюсь держать КРЕПОСТЬ в секрете (по поводу МЕЛЬНИЦА и ПУЛЬСАР - не ручаюсь, так как не мои, однако алгоритмическая идея такая же). Но мне интересно, найдет кто-нибудь еще это новое решение.
Вот например, DrFaust уже нашел кажущееся несоответствие и даже доказал его методом математического моделирования. А, как известно, объяснение несоответствия, иногда, приводят к новым идеям или даже открытиям (в журнале "химия и жизнь" когда-то давно печаталась интересная серия научно-популярных статей).
Кстати, большая скорость размножения (когда я впервые увидел прообраз в бою с моим "одноклеточным" роботом, то сам немало удивился) и есть та подсказка о которой я говорил (07.05.03 14:35), и DrFaust именно на большую скорость размножения и обратил внимание. Но не очень внимательно читал сообщение (08.05.03 11:43). А там тоже содержалась подсказка:
Взаимодействие роботов для повышения общей эффективности боя, обороны и размножения.
Так что в исходный условия эксперимента от DrFaust надо добавить:
Условия:
0. роботы между собой не взаимодействуют.
1. каждый ход робот получает +2 энергии (больше нет)
2. при достижении уровня энергии 100 робот делится
3. необходимость в перемещении на новую позицию не учитывается
4. утечки энерги нет


На некоторое время мне придется покинуть дискуссию. Возможно меня поддержит автор МЕЛЬНИЦЫ и ПУЛЬСАРА.
До свидания.
Берегите Несоответствия.


 
Gandalf   (2003-05-10 15:31) [44]

Высокая скорость размножения, если она кого удивляет, легко объяснима. Идея у самого зародилась давно, но природная лень и загруженость не дают ее осуществить, и видимо не дадут :(. Есть возможность передачи энергии от робота к роботу. Тогда ситуация вместо того чтобы развиваться так (классика!):

f(t)=2^(t/25) (думаю ясно почему, +2 каждый ход, а нужно +50 итого 25 ходов и удвоение)

Идем по пути f(t)=1+t/2 (если не ошибаюсь) т.е.:
100->50/50->101/1->51/50/3->102/1/5->51/51/5/3 и так далее.

Довольно быстро, но линейно, значить надо их совместить, скажем с момента s, получим:

f(t)=(1+s/2)*2^((t-s)/25) - если начнем где-то с 35, то получим 1600 уже к 190 ходу, довольно быстро. Крепочть вроде быстрее, но это потому, что рассчет несовсем верен, поскольку начиная с некотого этапа у нас появляет не +1 робот, а +2 за ход и т.д.
Причем с хода 15, тогда рост будет быстрее, а что это значит?
Что поменяется множитель (1+s/2) на нечто другое.
Вопрос на сколько? Росто идет довольно быстро.
Ок 15 - уже +2 робота
Ок 21 - уже +3 робота
Ок 24 - уже +4 робота
Ок 28 - уже +5 роботов ( и где-то +50 общей энергии за ход)
Т.е. дальше кол-во производимых роботов за ход расстет +1 за фазу.
Значиет к ходу 35 кол-во роботов, у нас будет ок 100!

Тогда подставив, получим:

f(t)=(100)*2^((t-35)/25) - 1600 к 130 ходу. Что впечатляет. Реально уже вызывает сомнение необходимость переходить на вторую стратегию, поскольку скорость роста поражает воображение.
Но реально сильно превысить скорость уже нереально, возникают проблеммы свободного пространства, потери на маневр и "мысли". Так что скорость 1600 клеток за 158 ходов - довольно скромная, по идеальным прикидкам, но полагаю довольна приличная, а возможно даже близка предельной в реальных условиях. Вообщем-то если бы времени было больше можно посчитать практический минимум ходов. Думаю он где-то в этой области, что уже не очень существенно для игры, по сравнению с прошлым выигрышем в 100 ходов.


 
Arch-vile   (2003-05-11 14:43) [45]

Ну что же, идея уже появилась, теперь ждем опубликования КРЕПОСТИ :)


 
DrFaust   (2003-05-14 14:01) [46]


> Александр. (10.05.03 13:26


> Gandalf © (10.05.03 15:31

Это все не серьезно а кода КРЕПОСТИ и тп. нет потому что результаты их тестов слишком фантастичны чтобы быть правдой.
Хотя есть и такой подход - сказать изобретателю, что мол уже изобрели антигравитационный двигатель, если изобретатель фонат он может загореться идеей и глядишь создаст двигатель. Но это удел фантастики, а реальные данные дает математика. В нашем варианте геометрическая прогрессия с определенными допусками (Условиями)показывает ТИОРИТИЧЕСКИЙ предел развития, который практически невозможно достигнуть из - за накладных расходов энергии на неудачное движение и потерю времени (холостых ходов без накопления и потери энергии)на расчет и определение стратегии поведения робота. А весь разговор о передаче энергии пустой потому что общая энергия останется всеравно одинаковой но появится лишний ход, а следовательно потеря времени.Вариант когда по прошествии некоторого времени число роботов удваивается дает больший результат (периметр линии размножения каждый раз удваивается), чем вариант когда часть роботов работает насосами, а другая делится (больше энергии но потеря времени на перенастройку стратегии отдельного робота). Вот и получается кто быстрее захватывает территорию тот и первый достигнет максимума по числу.


 
miek   (2003-05-14 22:34) [47]

DRF>Это все не серьезно а кода КРЕПОСТИ и тп. нет потому что результаты их тестов слишком фантастичны чтобы быть правдой.

Полностью согласен.

DRF>Вот и получается кто быстрее захватывает территорию тот и первый достигнет максимума по числу.

Во-первых, достигнуть максумума по числу - это не гарантия выигрыша. Ваши, к примеру, экземпляры множатся легко и непринужденно, раза в два (!) быстрее Кроликов, и быстро захватывают все поле, но, тем не менее, дальше следует сокрушительный разгром. Неокролик, кстати, дерется сильнее простого Кролика именно за счет передачи энергии изнутри к линии фронта.
Во-вторых, момент, когда вся территория захвачена, наступает слишком быстро, после чего стратегия неконтролируемого деления утрачивает силу.

Резюме. На первых порах важнее захват площади, далее - эффективный контроль над ней (уничтожение засланцев) и агрессивность.


 
Arch-vile   (2003-05-14 22:39) [48]

2miek
>уничтожение засланцев
ты случайно букву "р" с "л" не перепутал? :)

на базе саранчи КЛЕЩ:
старт: RIGHT PAUSE.вбой FORWARD.заряжай PAUSE.вбой FORWARD.заряжай PAUSE.вбой FORWARD.заряжай FORWARD.заряжай GOTO.старт
заряжай: PAUSE.вбой M>3.дайэнергию1 LEFT.заряжай GOTO.шаг
дайэнергию1: E>130.дайэнергию2 LEFT.заряжай GOTO.шаг
дайэнергию2: HEAR.дайэнергию4
дайэнергию3: WHERE
дайэнергию4: TRANSFER.50.шаг GOTO.старт
вбой: ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг PAUSE.вбой S.2.дайэнергию3 IFENEMY.вбой M>3.дайэнергию1
шаг: FORWARD.заряжай PAUSE.вбой FORWARD.заряжай FORWARD.заряжай GOTO.старт


 
Alek Aaz   (2003-05-15 10:21) [49]

Бъет почти всех, кроме Вируса и Саранчи(и соответственно их мутаций) Неплохо бъется с превосходящими силами противника.
Начинал делать с Тупого. Кажется от него почти не осталось.


**********************
* The Goblin *
* Alek Aaz *
**********************
test: P.atak M>3.stand N>0.turn L.test
start: F.test F.test P.atak L.test G.start
atak: A.test2 A.test2 A.test2 A.test2 A.test2 A.test2 A.test2 A.test2 A.test2 A.test2 A.test2 G.atak
stand: P.Atak P.atak E>150.give M>3.stand G.test
turn: L I.atak L I.atak L I.atak
give: T.60 L G.stand
test2: I.atak F.test G.test




 
DrFaust   (2003-05-15 11:26) [50]

Народ, предлагаю установить некоторые ограничения и правила для проведения боев роботов.
1. Обязательно приводить начальны условия:
а)версия используемой программы (версия v2.3 содержит некоторые критические ошибки, есть исправленная версия см. сообщение от >Артём Шегеда (05.05.03 20:16));
б)начальные позиции роботов (для некоторых роботов выбор начального положения играет роль {рядом, в противоположных углах, случайная позиция}).
в)код своего робота (если уже объявлялся привести ссылку), тоже касается если в бою участвовали другие, ранее не объявленные роботы - АНОНИМЫ НЕ ПРИНИМАЮТСЯ.
2. Кол-во последовательных атак N<=5 (думаю понятно почему, кто не понял см. сообщение от > DrFaust (29.04.03 18:31)

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



 
DrFaust   (2003-05-15 11:48) [51]

Ключевые изменения в версии v2.3.3a

Версия 2.3.3а

Дополнения:
"Условие победы" - < max> игра до заполнение поля
< Only one> игра пока не останится один победитель
"Отрисовка" - < Full Paint> если выбрано рисуем каждый цикл иначеотрисовка при скорости XXX каждый:
Fast 20-й раз
Medium 5 -й раз
Slow 1 -й раз
"Стартовая позиция" - < RandomPos> Выбор случайных позиций для роботов

Изменения:
Атака ценится следующим образом:
в лоб E = 5
в бок Е = 10
в хвост Е = 20
затем от количества энергии атакующего робота:
если энергии меньше 100 E := Round(E/100*Energy);
если энергии 100 E := E;
если энергии больше 100 E := E+Trunc((Energy-100)/20)
тоесть бонус при Energy>100 +1 за каждые полные 20%
Сильный энергетически робот бъет в лоб слабого.

Исправления:
Команда W - Теперь направление выбирается точно случайное или на зовущего! Неправильно работала при повороте в вертикальном положении выбиралось неправильное направлениие: вверх или вниз.

Команда H - Сообщения посылаются нормально!Сообщения вообще не приходили, поскольку вечно перетирались пустышками.
При указании радиуса, превышающего размер игрового поля, игрушка высыпалась.

Определение координат переделано.
Подозрительно коряво написанная процедура определения положения робота на поле тормозит всё игрушку при больших размерах полей.

Исправлен учет времени цикла.
Неверно считалось время цикла в результате подряд выполнялись несколько команд которые реально не вмещались в один цикл.

Пока взять можно только у меня - по заявке вышлю почтой.


 
Alek Aaz   (2003-05-15 17:00) [52]

Шли. dwheel@yandex.ru


 
Alek Aaz   (2003-05-15 17:07) [53]

Кстати, может игру выложить на DelphiGFX. Графики в ней конечно кот наплакал, но по моему как пример интересной игры - было бы не плохо. Плюс, еще больше народу о ней узнает :)


 
Arch-vile   (2003-05-15 17:30) [54]

и мне шли. у меня на имени мыло :)
ок, если атак<=5, тогда у меня практически чистая САРАНЧА


 
Gandalf   (2003-05-15 18:16) [55]


> Пока взять можно только у меня - по заявке вышлю почтой.


В "народном проекте" лежит именно эта версия.

ЗЫ: В воскресенье проведу турнир и выложу таблицы результатов.


 
DrFaust   (2003-05-16 11:29) [56]


> Gandalf © (15.05.03 18:16)
> В "народном проекте" лежит именно эта версия.
> ЗЫ: В воскресенье проведу турнир и выложу таблицы результатов.

Кто ее там выложил и откуда она взялось незнаю.
Я отсылал Кладову исправленную версию (2.3), но потом вышла еще одна (2.3.3а), так что в народном проекте лежит промежуточная версия (даже не могу вспомнить что там изменилось)не влючившая в себя все исправления.

PS.=> Кладову.
... > Кладов (25.04.03 20:20)
>> Есть у меня одно предложение по программе
> Исходники же в архиве :)

Я так понял, что можно делать с ними все что хочешь по соглашению FreeWare!? Это про "i" - надеюсь понятно...



 
Gandalf   (2003-05-16 15:30) [57]


> Я отсылал Кладову исправленную версию (2.3), но потом вышла
> еще одна (2.3.3а), так что в народном проекте лежит промежуточная
> версия (даже не могу вспомнить что там изменилось)не влючившая
> в себя все исправления.


Тебе виднее, просто в файле UnitRobot написано 2.3.3a и теже комментарии... Тогда вышле и мне.


 
DrFaust   (2003-05-16 17:56) [58]

Всем выслал рапортуйте ... прием ...


 
miek   (2003-05-16 20:10) [59]

Предложения, замечания.

1) Единая нотация для записи названий роботов (для турниров). Пишется /ник автора/, подчеркивание, /версия данного робота (данная автором)/, подчеркивание, /собственное имя робота/, подчеркивание, /дата закачки или получения по почте/. Пример:

gandalf_3.01_terminator_23.05.03
miek_B_neokrolik-b

(дата - необязательна, но желательна)

2) Защищать исходники роботов не обязательно. Если передерут один в один, это сразу будет заметно - они же друг друг не смогут победить. А с исправлениями, даже небольшими, робот наверняка станет ХУЖЕ. Вы ведь сырых роботов не выкладываете - только лучших из лучших?


P.S. По идее, GOTO в конце файла на начало делать не надо. Но, как только его убираешь, робот сразу заметно глупеет. Глюк в программе, я полагаю.

P.P.S. Выкладываю двух новых роботов:

S - по предложению Кладова рисует букву S. www.miek.narod.ru/_s.rob

neokrolik-b - последний (пока) из генерации Кроликов. www.miek.narod.ru/neokrolik-b.rob


 
Плохой человек   (2003-05-16 23:39) [60]

> Защищать исходники роботов не обязательно. Если передерут один в один, это сразу будет заметно - они же друг друг не смогут победить. А с исправлениями, даже небольшими, робот наверняка станет ХУЖЕ. Вы ведь сырых роботов не выкладываете - только лучших из лучших?

Неправильно. Я вот своровал исходники у Arch-vile, получился робот, который мочит его КЛЕЩА. И нормальненько.



 
Плохой человек   (2003-05-16 23:43) [61]

В общем, смотрите и плачьте:

* МАЛЫШ
старт: RIGHT PAUSE.вбой FORWARD.заряжай PAUSE.вбой FORWARD.заряжай PAUSE.вбой FORWARD.заряжай FORWARD.заряжай GOTO.старт
заряжай: PAUSE.вбой M>3.дайэнергию1 LEFT.заряжай GOTO.шаг
дайэнергию1: E>135.дайэнергию2 LEFT.заряжай GOTO.шаг
дайэнергию2: HEAR.дайэнергию4
дайэнергию3: WHERE
дайэнергию4: TRANSFER.70.шаг GOTO.старт
вбой: ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг ATTACK.шаг PAUSE.вбой S.2.дайэнергию3 IFENEMY.вбой M>3.дайэнергию1
шаг: FORWARD.заряжай PAUSE.вбой FORWARD.заряжай FORWARD.заряжай GOTO.старт


 
Arch-vile   (2003-05-17 17:47) [62]

2miek
просьба вылаживать исходник прям текстом на форум, как все остальные делают, т.к. я загрузил ветки, почитал итд, второй раз в Инет лезть не надо.
если поварьировать некоторые переменные, робот может стать хуже, а может лучше

2Плохой человек
сказано же - больше 5 атак не делать :)

2DrFaust
предложу добавить флажок в игру (как Random Position) переключения для умных.неумных роботов, как предлагал Kladov (22.02.03 14:41):
Я вот какие изменения считаю необходимыми:
- все операции 1/4 такта выполнять за 1/10,
- все операции 1 такт выполнять за 6/10. Это даст преимущество тем роботам, которые больше думают.

Хотя его предложение насчет - может быть, имеет смысл имитировать усталость: при нескольких подряд атаках количество усвоенной/отобранной энергии должно уменьшаться. считаю необдуманным :) это же робот, какая у него усталость. Вдобавок он на атомном реакторе работает, батарейки не сядут.


 
Arch-vile   (2003-05-17 22:26) [63]

Вот, по образу и подобию робота, рисовавшего букву S:
PAUSE F.stop3 F.stop3 C.wait F C.wait F L F C.wait F C.wait F C.wait F C.wait F L C.wait F P F F L F F F F B C.wait F C.wait F R C.wait F C.wait F L C.wait F L F F R C.wait F L C.wait F
*A +1 робот
P F L C.wait F C.wait F C.wait F C.wait F R C.wait F C.wait F R C.wait F C.wait F R C.wait F L C.wait F C.wait F L F
*Ar
C.wait F P F F F B C.wait F C.wait F R C.wait F C.wait F C.wait F C.wait F C.wait R F C.wait F R C.wait F L
*Arc
C.wait F P F L F B C.wait F C.wait F C.wait F C.wait F L C.wait F L F F C.wait F P F R F R C.wait F C.wait F C.wait F C.wait F L C.wait
*Arch
F P F L F F R C.wait F C.wait F P F L F F B C.wait
*Arch- +1 робот на начале v
F C.wait F C.wait F C.wait F L F C.wait F L C.wait F C.wait F C.wait F C.wait F R C.wait
*Arch-v
F P F R C.wait F C.wait F C.wait F C.wait F L C.wait
*Arch-vi
F P F L F F F F B C.wait F C.wait F C.wait F C.wait F L C.wait F C.wait F C.wait
*Arch-vil
F P F F F B C.wait F C.wait F R C.wait F C.wait F C.wait F C.wait F R C.wait F C.wait F R C.wait F P F R F
*Arch-vile
stop: P E<30.stop X-1.turn T.20.stop2 G.stop
stop2: L G.stop
stop3: X=20 G.stop
turn: L X=5 G.stop
wait: P E98.wait Q

Даже тем, кто не интересуется арт, есть интересная идея в исходнике этого кода. Это таймер :)


 
Плохой человек   (2003-05-18 00:05) [64]

>сказано же - больше 5 атак не делать :)

ОК, и не использовтаь вкоде букву W и F вообще...


 
Arch-vile   (2003-05-18 11:11) [65]

Для исправителей кода - повернутый направо мордой робот отображается неправильно, даже если у него 200 энергии (ну, >100) остается маленький незаполненный краешек


 
Arch-vile   (2003-05-18 11:12) [66]

Для исправителей кода - повернутый направо мордой робот отображается неправильно, даже если у него 200 энергии (ну, >100) остается маленький незаполненный краешек.
Более художественный робот, чем предыдущий: http://fifteens.narod.ru/_arch-vile.rob


 
DrFaust   (2003-05-19 14:28) [67]


> miek (16.05.03 20:10)
> P.S. По идее, GOTO в конце файла на начало делать не надо.
> Но, как только его убираешь, робот сразу заметно глупеет.
> Глюк в программе, я полагаю.

Такого глюка не замечал, но все равно посмотрел в тексте программы - если текст программы робота закончен то функция поиска-декодирования команды возвращает значение nil, что трактуется как выполненить команду перехода (GOTO) на первую (0) строку кода, дальше если есть еще время выполняется первая команда.


 
DrFaust   (2003-05-19 15:52) [68]


> Arch-vile © (17.05.03 17:47)
> 2DrFaust
> предложу добавить флажок в игру (как Random Position) переключения
> для умных.неумных роботов, как предлагал Kladov (22.02.03
> 14:41):
> Я вот какие изменения считаю необходимыми:
> - все операции 1/4 такта выполнять за 1/10,
> - все операции 1 такт выполнять за 6/10. Это даст преимущество
> тем роботам, которые больше думают.


Пока для логики используется слишком мало команд - длинная последовательность из сущ. команд как то не составляется, а изменение интервалов времени дает мало преимущества для "умных" роботов, уже прикидывал. Нужно переработать систему каманд что-то добавить и изменить сущ., а потом расставить вес.
А вот придумывать такую систему где у "умного робота" будет преимущество перед простым но плодовитым и прожорливым пока недоходят мозги. Мож кто займется этим ...



 
Gandalf   (2003-05-19 22:44) [69]

-=Идет ТУРНИР=-
Уже 3 часа...пока идет. Уже прошли все бои 10х10. :0.


 
Alek Aaz   (2003-05-20 05:39) [70]

ИМХО.
GOTO сделать "мгновенной" - исчезнет ограничение на серию атак
PAUSE - 1 такт - пропускаем ведь ход
Движение
FORWARD -1/6
LEFT и т.д. 1/3
ввести что-то на подобии BACK - задний ход (не разворачиваться на 180 градусов) - 1/6
ATTACK - 1 такт наносимый урон "размазать" по такту. Скажем за 1/10 такта в лоб выкачивается 1/2 энергии
Ввести проверку
"впереди пусто"
"впереди друг"
"под атакой"
Сравнение, анализ и опереации с переменными сделать 1/10


 
VSV.   (2003-05-20 14:48) [71]

Hi All!!!

Выбрасывайте своих старых роботов!!!Пришла эра новых !!!
Александр уже несколько раз подбрасывал идеи для разработки новых алгоритмов, теперь пришла моя очередь.
Вот вам для затравки два простых робота:
**************************************************
* Робот Кровавая-Поливалка Ж:-)
*(младший брат "Крепости" "Мельницы" и "Пульсара")
* 20.05.03 автор VSV
**************************************************
T49 X>0.m3 X=1
m1: Y=0 F.w0 F.w0 F.w0 F.w0 F.w0
Y=1 F.w0 F.w0 F.w0 F.w0 F.w0 G.m1
w0: L.w0 P.a1 P.a1 P.a1 G.m1
m2: R.w1 P.a1 P.a1 P.a1 G.m4
m3: Y>0.m2 L.w1
m4: F.w1 F.w1 F.w1 F.w1 F.w1 G.m4
w1: I.a1 R.w2 G.m4
w2: I.a1 R.w3 G.m4
w3: I.a1 R.w4 G.m4
w4: I.a1 M>3.e1 R.w1 G.m4
a1: A.m4 A.m4 A.m4 A.m4 A.m4 G.a1
e1: M<4.m4 P.a1 E>120.t1 R.e1 G.m4
t1: T20.m4 R.e1 G.m4


**************************************************
* Робот Колобок-Убийца Ж:-)
*(младший брат "Крепости" "Мельницы" и "Пульсара")
* 20.05.03 автор VSV
**************************************************
T49
X>0.m3
X=1
m1: F.w0 F.w0 F.w0 F.w0 F.w0 L.w0 G.m1
w0: L.w0 G.m1
m3: R.a1 P.a1 P.a1 P.a1 P.a1
m4: F.w1 F.w1 F.w1 F.w1 F.w1 G.m4
w1: I.a1 R.w2 G.m4
w2: I.a1 R.w3 G.m4
w3: I.a1 R.w4 G.m4
w4: I.a1 M>3.e1 R.w1 G.m4
a1: A.m4 A.m4 A.m4 A.m4 A.m4 G.a1
e1: M<4.m4 P.a1 E>120.t1 R.e1 G.m4
t1: T20.m4 R.e1 G.m4





 
Arch-vile   (2003-05-20 17:45) [72]

Затравка пошла! Наступила новая эра - эра звездных войн! :))
постороен этот робот на моем же КЛЕЩЕ (он постороен на не моей САРАНЧЕ) и идеи от VSV.
*СТАЛЬНАЯ КРЫСА
T.49 X>0.полупозишн X=1 I.вбой
ход: F.поворот F.поворот F.поворот F.поворот F.поворот F.поворот L.поворот G.ход
поворот: L.поворот G.ход
полупозишн: R.м1 P.вбой P.вбой P.вбой
старт: F.заряжай F.заряжай F.заряжай F.заряжай F.заряжай F.заряжай G.старт
заряжай: P.вбой P.вбой P.вбой M>3.дай1 L.заряжай G.шаг
м1: I.вбой L.м2 G.шаг
м2: I.вбой L.м3 G.шаг
м3: I.вбой L.заряжай G.шаг
дай1: E>130.дай2 G.шаг
дай2: HEAR.дай4
дай3: WHERE
дай4: T.40.шаг G.дай1
вбой: A.шаг A.шаг A.шаг A.шаг A.шаг S.2.дай3 G.вбой
шаг: F.м1 F.м1 F.м1 F.м1 F.м1 G.шаг


 
DrFaust   (2003-05-20 19:35) [73]

Чтож круто, как сам не допер!?
Да идея понятна. Теперь следует ожидать появление мутантов, а может и новой идеи.


 
Malder   (2003-05-20 19:49) [74]

Вообще идея далеко не нова. И неоднократно выполненная. По моему, RoboWar называется самая популярная игра в интернете на эту тему (русскоязычная).


 
Плохой человек   (2003-05-20 20:21) [75]

Очень реальные вири - КОЛОБОК и СТАЛЬНАЯ КРЫСА. У меня была идея создать вирус-шеренгу, но по тупости не реализовал. Поздравляю!


 
Arch-vile   (2003-05-20 23:14) [76]

Принимаю поздравления! У меня еще идеи есть по улучшению, возможно, завтра-послезавтра будет следующая версия.
К моему великому сожалению :) СТАЛЬНАЯ КРЫСА не всегда выигрывает у КОЛОБКА на маленьком поле. На большом мой всегда выигрывает, на маленьком - в 2 случаях из 3.


 
Arch-vile   (2003-05-20 23:25) [77]

Мы подумали и я решил :)
Надо изменить правила :)
1 такт = 2/3 такта
1/2 такта = 1/3 такта
1/4 такта = 1/6
1/10 такта = 1/10 или 0
Новые псевдопеременные - размер поля нужен (для выбора тактики умными роботами)

2Плохой человек
вирус - это один из роботов :) А их (роботов) надо называть роботами


 
Плохой человек   (2003-05-20 23:33) [78]

Нет, я с подобными игрулями познакомился через игру про вирусы, так что это осталось...


 
Arch-vile   (2003-05-20 23:55) [79]

Up люди не тормозите, где же ваши роботы? как мне совершенствовать свой, если нет конкуренции? хочу увидеть, что такое МЕЛЬНИЦА, ПУЛЬСАР и КРЕПОСТЬ


 
Arch-vile   (2003-05-21 15:47) [80]

UP
Ну что? Я жду с нетерпением!



Страницы: 1 2 3 вся ветка

Форум: "Потрепаться";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.66 MB
Время: 0.058 c
3-83928
Ler
2003-06-03 13:57
2003.06.26
Вопрос по LocalSQL


1-84273
prorok2
2003-06-14 13:51
2003.06.26
Добавление OnClick для меню в run-time


14-84651
AFrolov
2003-06-09 17:14
2003.06.26
подходы к составлению рассписания


9-83849
Карлсон
2003-01-12 18:20
2003.06.26
просто интересно, почему.


4-84858
saha
2003-04-22 17:02
2003.06.26
SendMessage





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский