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

Вниз

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

 
Kladov   (2003-02-14 22:59) [0]

Можно взять у меня на сайте, в Приложениях.


 
Kladov   (2003-02-15 11:33) [1]

Уже три раза обновил. Что-то никакой реакции.


 
Bartov   (2003-02-15 11:37) [2]

Ждем финального релиза :-)


 
SPeller   (2003-02-15 11:37) [3]

Я вот включил её, оно там само туда-сюда, а в чём моя роль в этой игре я не понял. Может доков не читал? Или ещё чего?


 
Kladov   (2003-02-15 11:50) [4]

ну так почитайте :)
ваша задача - составить роботу программу. Прочитав доки :)

А релиз все, финальный. Дальше буду делать, чего до четверга делал.


 
Gandalf   (2003-02-15 11:54) [5]

Забавно, правда идея не нова. И играть интересно по сети или по переписке. Сделают два программера робота, и шлют друг другу, у кого круче :) На самом самое главное в таких играх хорошие правила. Я например любил в свое время RoboTank.


 
Kladov   (2003-02-15 19:46) [6]

Вопрос не в том, что кто любит. А достаточно ли прост язык, чтобы его было легко понять непрофессионалу в программировании. Я уже видел, что уже после 95 г. появились несколько таких игр. В них часто используется язык, близкий к C. По-моему, не лучший вариант для обучения (детей). И хотя мой язык крайне прост, и ближе к ассемблеру, в нем можно организовать даже взаимодействие микроботов.

Я немного поварьировал правила. Хотелось, чтобы и на большом поле быстрее выявлялся победитель. И в то же время чтобы был выбор стратегии боя. Быстрее размножаться, или охватывать б ольшую территорию. создавать меньшие, но компактные плотные группы, и перераспределять энергию, или захватить большое поле и начать атаковать быстрее.

Кстати, робот4 проигрывает на очень маленьком поле 10х10 - он делался для большого поля, и на начальном этапе даже не предполагает, что его могут атаковать. Зато на всех прочих он просто монстр :)


 
Centronix   (2003-02-15 20:28) [7]

Кстати, если к rob3 убрать инстинкт самосохранения, то он рулит :) Правда rob4 он и так делает...


 
Gandalf   (2003-02-15 21:37) [8]

Можно организовать проект, народ будет присылать проги роботов, и вычисляться рейтинг. Доска почета и т.п. - идею можно развернуть. Хотя я бы может подправил - правила, графическое оформление, идеалогию. Но это авторское право, дело. Помнится нечто подобное было у "Никиты" - только там программа была в виде рисунком, было ограничение по памяти. Собсвенно во многих играх практикуется идея баланса между памятью, броней, скоростью, быстродейсвием и т.п. Ограничивается все по денежкам (очкам).


 
Kladov   (2003-02-16 00:17) [9]

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

Оно конечно, можно договориться, что турнир проводится на автомате, считается до такого-то шага (скажем, до 500-го), потом по определенным правилам подсчитывается победивший, начисляются очки и т.д.

А что касается оформления. Единственное, к чему я стремился, чтобы все влезло в 800х600 с доской 40х40, и было не слишком мелко при этом. В dos-версии 8 лет назад все выглядело в точности так же, только не было левой панели, и само собой, все из командной строки. Управлялось кнопками. Сейчас еще хоть можно посмотреть, как отдельный микробот программу выполняет, по шагам. Я сейчас только выложу с описанием на английском языке (да и русское подправлю, нашел неточности). Экзешник и исходники уже не меняю. И все. Делайте что хотите. Хоть движок переделывайте. Лишь бы правила не менялись (больше) :)

Кстати, можно давать задание ориентированное не на войну. А чтобы при одиночном выступлении образовалась заданная картинка. Квадрат, например. Или вот, самая короткая программа-"самоубица": одна буква S.


 
miek   (2003-02-22 13:04) [10]

Правила надо бы доработать. Например, очень не хватает триггеров (типа OnHit и т.п.)

А пока вот мой киллер-робот:

www.miek.narod.ru/krolik.rob


 
Kladov   (2003-02-22 14:41) [11]

Правила, конечно, надо изменить. Вот еще один простейший, но злючий:

* Робот Тупой
* автор: Кладов
*
* начинаем с движения вперед, если препятствие, то посмотрим
lab1: I.lab4
W.lab1
start1: F.lab1 F.lab1 F.lab1 F.lab1 F.lab1
*W.lab1 * идем вперед, пока идется
*G.start1

lab4:
A.start1 A.start1 A.start1 * атакуем три раза
G.lab4 * продолжаем атаковать
-----------
Кролик, правда, его бьет :)

Я вот какие изменения считаю необходимыми:
- все операции 1/4 такта выполнять за 1/10,
- все операции 1 такт выполнять за 6/10. Это даст преимущество тем роботам, которые больше думают.
- при атаке должна усваиваться только половина отобранной у противника энергии, ошибочная атака должна наказываться серьезней. Например -10.
- может быть, имеет смысл имитировать усталость: при нескольких подряд атаках количество усвоенной/отобранной энергии должно уменьшаться.

Насчет ONHIT я уже думал. Просто надо ограничивать как-то действие этой команды. А ORIENT легко заменить на SEND.0 + HEAR.
Есть еще незадействованные буквы. Например UNION, JOIN. Только придумать, как использовать.

Если есть какие мысли, можно списаться.


 
miek   (2003-02-22 16:13) [12]

Мысли есть. Я вам письмо послал, так что жду ответа.


 
Kladov   (2003-02-22 16:41) [13]

Долго идет. Опять эпидемия какая в сети, что ли.


 
SPeller   (2003-02-22 18:41) [14]


> Kladov (22.02.03 16:41)
> Долго идет. Опять эпидемия какая в сети, что ли.

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


 
i-C3H7OH   (2003-02-24 01:34) [15]

>Kladov (14.02.03 22:59)

>Можно взять у меня на сайте, в Приложениях.

а адрес? я не в курсе. на KOL.MASTAK.RU нету. хоть яндексом ищи:(


 
SPeller   (2003-02-24 03:33) [16]

http://bonanzas.rinet.ru/r_apps.htm


 
Kladov   (2003-02-24 09:42) [17]

Любой поисковик, набираем kol mck, и 20-30-50-... ссылок вываливается тут же. Кстати, что за любовь такая к яндекс. Он хорошо только русскоязычные ресурсы ищет. Уж лучше google, или altavista та же. Правда, ее уже купили - нет ничего постоянного в этом мире :(


 
miek   (2003-02-24 10:07) [18]


Я пока вижу три проблемы.

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

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

В-третьих, неконтролируемое размножение приводит к тому, что большинство схваток
после 400-го хода похожи как две капли: один противник занял 75% площади (даже
без пробелов между роботами), другой - 25% и один другого медленно добивает.
Можно предложить бОльшие штрафы за атаку своего, или даже суперштраф - подрыв
робота, который попытался набрать больше 200% энергии.

Ну и мелочи.

1. Размещать при старте матча роботов не в строго заданных клетках, а с небольшим
колебанием;

2. Возможность роботу не атаковать, а наоборот - обороняться. Отдельный оператор;


 
miek   (2003-02-24 23:33) [19]

Кстати, Владимир, на какой адрес вам следует писать?

bonanzas@online.sinor.ru - этот?


 
i-C3H7OH   (2003-02-25 03:20) [20]

>Kladov
почему бы и не яндекс? им я стока всего нашел :)
но когда ищешь ч-н англоязычное, согласен гуугл лучше

>SPeller ©
Thanks, ща будем смотреть


 
Alexa.   (2003-02-25 10:13) [21]

типа крутой робот :
*my robot<BR>
start: I.atak N>0.findatak H F.move I.atak N>0.findatak H F.move G.start<BR>
atak: S.help A.start A.start A.start A.start A.start A.start A.start A.start G.atak<BR>
move: M>3.save W G.start<BR>
help: W.start G.start<BR>
save: W E<70.mass T30.start G.mass <BR>
mass: P.atak G.move<BR>
findatak: R.start R.start R.start G.start<BR>


 
Александр.   (2003-04-25 19:15) [22]

Очень интересная Игра.
Вызываю всех желающих сразиться.
Есть у меня одно предложение по программе:
ввести какое-то криптование алгоритмов
для пересылки на "турниры" и отключение
трассировки команд в защищенном режиме.


 
Кладов   (2003-04-25 20:20) [23]

.
> Есть у меня одно предложение по программе

Исходники же в архиве :)

Я тут другой игрой увлекся. Эмулятор Спектрума делаю. Мало хороших аркадных игрушек для ПС, да еще бесплатных. А для Спектрума их порядка 15000, если не больше. Вот только все эмуляторы, которые есть, меня не устроили: мне надо, чтобы мой ребенок мог играть и меня не отрывать, а он постоянно прибегает с вопросом, какую кнопку надо нажать. Сейчас я сделал основную функциональность, теперь начинаю то, из-за чего все это затеял. Пока можно тестировать что есть. Вполне даже бегает. Лежит в приложениях.


 
DrFaust   (2003-04-26 16:20) [24]

Вот крутой робот пусть ктонибудь попробует его победить!!!

* На основе faustrob
* Еще агрессивнее нападает и бешено плодится
старт: F.заряжай P.вбой F.заряжай P.вбой F.заряжай W.старт
заряжай: P.вбой L I.вбой G.старт
вбой: A.старт A.старт A.старт A.старт A.старт P.вбой G.старт


 
Александр.   (2003-04-29 17:16) [25]

Предлагаю для турниров простенького робота - "ПЧЕЛА".
Квалификационные бои показали его более сильным, чем все известные роботы (кроме "типа крутой робот" - не тестировался).
Стандартные и faustrob проиграли в троекратном большинстве, а робот "Кролик" - в поединке. Вот результаты и исходник:

** Робот "ПЧЕЛА"
** Создан 29.04.2003
** Автор Александр.
** Внимание: робот работает только в (Windows russian) кодировке.
**
** Результаты теста на размножение снимаются, когда все поле занято.
** 40x40 ПЧЕЛА+EMPTY+EMPTY+EMPTY step=395 ПЧЕЛА=1600
** 10x10 ПЧЕЛА+EMPTY+EMPTY+EMPTY step=229 ПЧЕЛА=100
**
** Результаты турнира, когда на поле остались роботы только одной команды
** 40x40 ПЧЕЛА+Rob1+Rob1+Rob1 Step=383 ПЧЕЛА=1594
** 40x40 ПЧЕЛА+Rob2+Rob2+Rob2 Step=412 ПЧЕЛА=1598
** 40x40 ПЧЕЛА+Rob3+Rob3+Rob3 Step=387 ПЧЕЛА=1599
** 40x40 ПЧЕЛА+Rob4+Rob4+Rob4 Step=377 ПЧЕЛА=1549
** 40x40 ПЧЕЛА+FaustRob+FaustRob+FaustRob Step=249 ПЧЕЛА=757
** 40x40 ПЧЕЛА+Кролик+EMPTY+EMPTY Step=1151 ПЧЕЛА=1599
** 40x40 Кролик+ПЧЕЛА+EMPTY+EMPTY Step=1620 ПЧЕЛА=1599
**
** 10x10 ПЧЕЛА+Rob1+Rob1+Rob1 Step=318 ПЧЕЛА=99
** 10x10 ПЧЕЛА+Rob2+Rob2+Rob2 Step=311 ПЧЕЛА=99
** 10x10 ПЧЕЛА+Rob3+Rob3+Rob3 Step=235 ПЧЕЛА=99
** 10x10 ПЧЕЛА+Rob4+Rob4+Rob4 Step=197 ПЧЕЛА=98
** 10x10 ПЧЕЛА+FaustRob+FaustRob+FaustRob Step=133 ПЧЕЛА=71
** 10x10 ПЧЕЛА+Кролик+Кролик+Кролик Step=286 Кролик=97
** 10x10 Кролик+ПЧЕЛА Step=412 ПЧЕЛА=99
** 10x10 ПЧЕЛА+Кролик Step=234 ПЧЕЛА=99


родился: P.враг E<100.родился R.непройти
наступаем: F.родился F.родился F.родился F.родился F.родился
F.родился F.родился G.наступаем

непройти: I.враг R.непройти1 G.наступаем
непройти1: I.враг R.непройти1 N<1.наступаем G.непройти1

враг: A.наступаем A.наступаем A.наступаем
A.наступаем A.наступаем A.наступаем G.враг


 
Александр.   (2003-04-29 17:16) [26]

Предлагаю для турниров простенького робота - "ПЧЕЛА".
Квалификационные бои показали его более сильным, чем все известные роботы (кроме "типа крутой робот" - не тестировался).
Стандартные и faustrob проиграли в троекратном большинстве, а робот "Кролик" - в поединке. Вот результаты и исходник:

** Робот "ПЧЕЛА"
** Создан 29.04.2003
** Автор Александр.
** Внимание: робот работает только в (Windows russian) кодировке.
**
** Результаты теста на размножение снимаются, когда все поле занято.
** 40x40 ПЧЕЛА+EMPTY+EMPTY+EMPTY step=395 ПЧЕЛА=1600
** 10x10 ПЧЕЛА+EMPTY+EMPTY+EMPTY step=229 ПЧЕЛА=100
**
** Результаты турнира, когда на поле остались роботы только одной команды
** 40x40 ПЧЕЛА+Rob1+Rob1+Rob1 Step=383 ПЧЕЛА=1594
** 40x40 ПЧЕЛА+Rob2+Rob2+Rob2 Step=412 ПЧЕЛА=1598
** 40x40 ПЧЕЛА+Rob3+Rob3+Rob3 Step=387 ПЧЕЛА=1599
** 40x40 ПЧЕЛА+Rob4+Rob4+Rob4 Step=377 ПЧЕЛА=1549
** 40x40 ПЧЕЛА+FaustRob+FaustRob+FaustRob Step=249 ПЧЕЛА=757
** 40x40 ПЧЕЛА+Кролик+EMPTY+EMPTY Step=1151 ПЧЕЛА=1599
** 40x40 Кролик+ПЧЕЛА+EMPTY+EMPTY Step=1620 ПЧЕЛА=1599
**
** 10x10 ПЧЕЛА+Rob1+Rob1+Rob1 Step=318 ПЧЕЛА=99
** 10x10 ПЧЕЛА+Rob2+Rob2+Rob2 Step=311 ПЧЕЛА=99
** 10x10 ПЧЕЛА+Rob3+Rob3+Rob3 Step=235 ПЧЕЛА=99
** 10x10 ПЧЕЛА+Rob4+Rob4+Rob4 Step=197 ПЧЕЛА=98
** 10x10 ПЧЕЛА+FaustRob+FaustRob+FaustRob Step=133 ПЧЕЛА=71
** 10x10 ПЧЕЛА+Кролик+Кролик+Кролик Step=286 Кролик=97
** 10x10 Кролик+ПЧЕЛА Step=412 ПЧЕЛА=99
** 10x10 ПЧЕЛА+Кролик Step=234 ПЧЕЛА=99


родился: P.враг E<100.родился R.непройти
наступаем: F.родился F.родился F.родился F.родился F.родился
F.родился F.родился G.наступаем

непройти: I.враг R.непройти1 G.наступаем
непройти1: I.враг R.непройти1 N<1.наступаем G.непройти1

враг: A.наступаем A.наступаем A.наступаем
A.наступаем A.наступаем A.наступаем G.враг


 
DrFaust   (2003-04-29 18:31) [27]


> ** 40x40 ПЧЕЛА+FaustRob+FaustRob+FaustRob Step=249 ПЧЕЛА=757

Чепуха твой ПЧЕЛА просто не выживает!

> ** 10x10 ПЧЕЛА+FaustRob+FaustRob+FaustRob Step=133 ПЧЕЛА=71

тоже сомое!

Вот результат
** Результаты турнира, когда на поле остались роботы только одной команды
** 40x40 ПЧЕЛА+ВИРУС Step=486 ПЧЕЛА=0 ВИРУС=1574
** 40x40 ПЧЕЛА+ПЧЕЛА+ПЧЕЛА+ВИРУС Step=465 ПЧЕЛА=0 ВИРУС=1534

** 10x10 ПЧЕЛА+ВИРУС Step=94 ПЧЕЛА=0 ВИРУС=16
** 10x10 ПЧЕЛА+ПЧЕЛА+ПЧЕЛА+ВИРУС Step=94 ПЧЕЛА=0 ВИРУС=82

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


 
DrFaust   (2003-04-29 18:38) [28]

Вот мой вирус


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


Прошу привести ваши результаты теста.
Да еще где код робота КРОЛИК?


 
Александр.   (2003-04-30 11:52) [29]

Приношу свои извенения DrFaust. Действительно против трех FaustRob ПЧЕЛА не выживает. Ошибка была связана с кодировкой - на диск файл сохранился в DOS кодировке. Все же ПЧЕЛА более сильная, чем FaustRob в ситуации один на один.
Как написал miek(см. выше - 22.02.03 13:04) Кролика можно взять на www.miek.narod.ru/krolik.rob.
Кроме команды A "размножение" команды F тоже дает большой выигрыш. Я ограничивался 7 повторениями. Можно принять за правило и 5. На первый взгляд повторять команду много раз не честно. Однако в пределе выигрыш по тактам от такого "приема"
loop: F F F F F F F F F F F F F F F F ... F G.loop
не будет больше, чем 2 раза по сравнению с
loop: F G.loop


 
DrFaust   (2003-04-30 14:47) [30]


> Александр.

Команда F не дает ощутиый выйгрыш потому что роботы рассеиваются по полю, все же предпочтительнее держаться вмете но оставлять свободное место для размножения.
Посмотри код ВИРУСа там практически все команды приносят энергию.
Этот код оптимальный компромис между скоростью распространения, размножением и агресивностью. С этой точки зрения этот робот не победим в любом случае при схватке один на один, а если противников больше то он побеждается при некоторых вариантах расположения начальной позиции. К примеру так:

ROBOT 1 2 3 4
ВИРУС ВОЛК Rob4 Rob4


И только потому, что Rob4 служет кормом для ВОЛКа!
Дальше если будеш приводить результаты - будь точен и приводи точное расположение роботов, а то я не пойму как ПЧЕЛА вообще может победить!

Вот код ВОЛКа:


*ВОЛК
*Автор DrFaust
старт: F.заряжай P.заряжай F.заряжай P.заряжай F.заряжай W.старт
заряжай: I.вбой R.заряжай G.старт
вбой: A.старт A.старт A.старт A.старт A.старт I.вбой G.старт


 
Александр.   (2003-05-03 15:41) [31]

Результаты спарингов FaustRob и ПЧЕЛА не показали приемущества робота ПЧЕЛА над роботом FaustRob - две победы, два проигрыша и одна ничья:
40x40 FaustRob+Пчела+EMPTY+EMPTY FaustRob=0 Пчела=1598 Step=2292.
30x30 FaustRob+Пчела+EMPTY+EMPTY FaustRob=444 Пчела=456 Step=2396...
20x20 FaustRob+Пчела+EMPTY+EMPTY FaustRob=0 Пчела=399 Step=932.
15x15 FaustRob+Пчела+EMPTY+EMPTY FaustRob=197 Пчела=0 Step=303.
10x10 FaustRob+Пчела+EMPTY+EMPTY FaustRob=95 Пчела=0 Step=301.

Что-то не работает механизм передачи сообщений (команды S и H).
После того, как робот передал сообщение, у окружающих роботов псевдопеременная DISTANCE устанавливается в правильное значение (это видно в трассировщике), но команда Н не выполняется успешно (как будто бы нет сообщений в памяти) и перехода на метку сообщения не происходит:
*SendHear
*Автор Александр.
*Запустить вместе с противником
b: E>100.f P.e H.b
w: W F W F W F W F G.e
f: F.b F.b F.b F.b F.b G.b
n: I.e R.n G.f
e: S.w S.w S.w S.w S.w S.w S.w S.w S.w S.w G.e


 
DrFaust   (2003-05-05 14:12) [32]

А что такая тишина других програмеров или игрушка слишком простая?


 
Артём Шегеда   (2003-05-05 20:16) [33]

Я тут с DrFaust потестировал эту цацку - нашёл множество мелких недочётов.
1. Неправильно работала команда W - при повороте в вертикальном положении выбиралось неправильное направлениие: вверх или вниз.
2. Сообщения неправильно рассылались. При указании радиуса, превышающего размер игрового поля, игрушка высыпалась.
3. Сообщения вообще не приходили, поскольку вечно перетирались пустышками.
4. Подозрительно коряво написанная процедура определения положения робота на поле тормозит всё игрушку при больших размерах полей.
Желающие, конечно, могут скачать исправленную версию с адреса http://www.shegeda.chat.ru/AutoWar.zip
Настоящие программеры исправят у себя самостоятельно...
Очень надеюсь, что Автор учтёт замечания в своих последующих версиях.


 
Артём Шегеда   (2003-05-05 20:48) [34]

Чудесные результаты в развитии показывает робот САРАНЧА:

*САРАНЧА на базе ВИРУС
*Автор Faust
*Инженер-генетик: Артём Шегеда

старт: R P.вбой F.заряжай P.вбой F.заряжай P.вбой F.заряжай F.заряжай G.старт
заряжай: P.вбой M>3.дайэнергию1 L.заряжай G.шаг
дайэнергию1: E>120.дайэнергию2 L.заряжай G.шаг
дайэнергию2: H.дайэнергию4
дайэнергию3: W
дайэнергию4: T.60.шаг G.старт
вбой: A.шаг A.шаг A.шаг A.шаг A.шаг P.вбой S.2.дайэнергию3 I.вбой M>3.дайэнергию1
шаг: F.заряжай P.вбой F.заряжай F.заряжай G.старт

если ему дать волю на большой карте, то он даже может наказать робота ВИРУС


 
DrFaust   (2003-05-06 11:31) [35]

Есть еще одна неприятная ошибка в программе это неправильно вычисляется время одного цикла к примеру последовательность команд
R *1/2
I.вбой *1/4
P.вбой *1
выполнится за один цикл, что неправильно так-как это должно занимать 1.75 цикла!


 
Александр.   (2003-05-07 14:35) [36]

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


* 40x40 Крепость Step=158 Крепость=1600
* 10x10 Крепость+Rob3+Rob3+Rob3 Step=53 Крепость=47
* 40x40 Крепость+Rob3+Rob3+Rob3 Step=145 Крепость=1539
* 10x10 Крепость+ВИРУС+ВИРУС+ВИРУС Step=114 Крепость=94
* 40x40 Крепость+ВИРУС+ВИРУС+ВИРУС Step=155 Крепость=1547


 
DrFaust   (2003-05-07 18:10) [37]

Говорите - говорите мы уже приготовили вилки для лапшы ;-)


 
miek   (2003-05-07 20:24) [38]

Ау, кто-нибудь смог побить Кролика?

Есть еще новая версия: www.miek.narod.ru/neokrolik.rob


 
Gandalf   (2003-05-07 20:49) [39]

Народ, вообщем хочу поселить тут (на Мастаке) - AutoWar, и проводить турниры - все мне роботов присылаем.

Если есть советы по проведению турниров или еще чего, милости прошу.


 
Александр.   (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
Ну что? Я жду с нетерпением!


 
Ru   (2003-05-21 16:23) [81]

с колобком убийцей можно не соревноватся, тухлый номер.

У меня довольно глупый вопрос: что никак нельзя определить кто рядом? (кроме I)


 
Arch-vile   (2003-05-21 17:34) [82]

2Ru
что значит тухлый номер? Я ссовревновался и победил!
2DrFaust
Ишшо новые идеи:
Новая команда: Впереди друг? Вроде как IFENEMY.
Новые псевдопеременные: размер поля, сколько своих, сколько чужих. Возможна вариация - плотность своих (кол. своих/размер поля), чужих (кол. против./размер поля).
2Александр
Есть уже роботы новой формации. Где ж КРЕПОСТЬ-то, а?
2All
Робот РАЗМНОЖЕНИЕ, запускать на 40*40. Вы убедитесь, что он забирает все поле себе за 181 ход :)
T49 F
старт: P E<99.старт
ход: L F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F G.ход


 
Ru   (2003-05-21 17:56) [83]

Размножение vs Колобок: 180 ходов победа за Колобком


 
Плохой человек   (2003-05-21 18:09) [84]

Да уже пора написать стоящий язык с if и for.


 
DrFaust   (2003-05-21 19:25) [85]

Вот и займитесь этим, пока похоже эта версия исчерпала свои ресурсы.

Кое-что из старенького:
*КЛОНОВИРУС
*Автор Faust
T.49
старт: F.заряжай F.заряжай F.заряжай F.заряжай F.заряжай F.заряжай F.заряжай F.заряжай F.заряжай F.заряжай F.заряжай F.заряжай F.заряжай F.заряжай F.заряжай F.заряжай F.заряжай F.заряжай F.заряжай F.заряжай F.заряжай F.заряжай F.заряжай F.заряжай F.заряжай L.заряжай G.старт
заряжай: P.вбой L.заряжай F.заряжай F.заряжай F.заряжай F.заряжай F.заряжай F.заряжай G.старт
вбой: A.шаг A.шаг A.шаг A.шаг A.шаг P.вбой
шаг: F.заряжай P.вбой F.заряжай F.заряжай P.вбой G.старт


 
Arch-vile   (2003-05-21 21:09) [86]

Ru © (21.05.03 17:56)

Размножение vs Колобок: 180 ходов победа за Колобком

Имеется в виду, что оно заполняет поле меньше, чем за 200 ходов. Новая апгрейженая версия размножения заполняет поле за ~150 ходов.

Команду ORIENT заменить на OUR - наш робот впереди?


 
Ru   (2003-05-22 09:54) [87]

размножение никого не есть и на 230-250 шагу выдыхается


 
Ru   (2003-05-22 11:54) [88]

Файл DiVo_02.rob

*####################################
*### Робот "Левый изврат" ###
*####################################
*
*бой с амебой выигран за 8391 шаг
*счет: Извращенец: +1556 -9686 Амеба: -22779
m1: L.atc F.atc P.atc G.m1
atc: I.atak E>50.sended G.m1
atak: A.atc A.atc A.atc G.atak
sended: T.50.m1

собственно для амебы он и предназначен :)


 
Vlad Oshin   (2003-05-22 13:10) [89]

а здорово!


 
DrFaust   (2003-05-22 16:08) [90]


> Gandalf © (19.05.03 22:44)

Скоро результаты турнира будут ? И где ?


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

Размножение на то и названо размножением, что размножается и ничего больше. Данная версия захватывает все поле 40*40 за 127 ходов!
T.49
ход: E<10.старт R.ход F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m F.m G.ход
m: R.m F.m R.m F.m F.m F.m F.m F.m F.m L.m F.m L.m F.m F.m F.m F.m F.m F.m R.m F.m R.m F.m F.m F.m F.m L.m F.m L.m F.m F.m F.m F.m R.m F.m R.m F.m F.m L.m F.m L.m F.m F.m G.ход
старт: P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P G.ход

2DrFaust
Все гениальное просто... 4 метки, а рубится лучше всех.


 
Arch-vile   (2003-05-22 17:21) [92]

Перелазим обсуждать в "Игры"! там легче выловить ветку. Здесь слишком часто уходит далеко.


 
VSV.   (2003-05-23 09:17) [93]

Вот вам размножение за 115 ходов!!!
************************
*115.rob VSV
************************
T49 X>0.m1 X=1
m0:
F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0
F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0
F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0
F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 R F R
F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0
F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0
F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0
F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 F.w0 L F R F L G.m0
w0: R.w0 G.m0
m1: L
P P P P P P P P P P P P P P P P P P P P
P P P P P P P P P P P P P P P P P P P P
P P P P P P P P P F.w0 G.m0




 
VSV.   (2003-05-23 09:22) [94]

Вот вам крепость Александра.
Учтите, что автор отсутствует уже 2 недели и код не совершенствовался.
*********************************************************
* Крепость автор Александр
*********************************************************
T49 X>0.c *
*********************************************************
X=1
F.t F.t F.t F.t L.t
F.t F.t F.t F.t L.t
F.t F.t F.t F.t L.t
p: F.t F.t F.t F.t F.t F.t F.t G.p
t: R.t G.p
*********************************************************

*********************************************************
u: I.d M>3.r *
c: R.u N>0.s *
r: P.d N>0.s E<98.r M<4.f T45 G.r *
*********************************************************
w: I.e M<2.f M>3.r L.w *
f: F.w F.w F.w F.w F.w F.w F.w N>0.s G.f *
e: A.f A.f A.f A.f A.f G.e *
*********************************************************
s: I.d M<2.o B N<1.r I.d *
o: R I.d N<1.r G.o *
d: A.r A.r A.r A.r A.r G.d *
*********************************************************


PS В "Играх" треп почти совсем мертвый.


 
Nick Denry   (2003-05-23 10:51) [95]

Крутая штука, я ржал долго, только графику бы поядреней!


 
Ru   (2003-05-23 11:05) [96]

>VSV. (23.05.03 09:22)
с крепостью клоновир справляется (DrFaust (21.05.03 19:25))


 
Vlad Oshin   (2003-05-23 12:18) [97]

а как реализовать х:=х+1?


 
DrFaust   (2003-05-23 12:49) [98]


> Vlad Oshin © (23.05.03 12:18)


X+1 => X=X+1


 
DrFaust   (2003-05-23 13:31) [99]


> Ru © (23.05.03 11:05)
> >VSV. (23.05.03 09:22)
> с крепостью клоновир справляется (DrFaust (21.05.03 19:25))

Да он с любым справится - видь код старого ВИРУСа вылезан в плане атаки и защиты своей внутренней территории, а с новым финтом он самый быстрый, из боевых роботов, в размножении.!!!

И к старенькому -

> Александр. (07.05.03 14:35)
> Трепещите!
> Робот новейшей разработки Крепость побеждает все известние
> раннее "одноклеточные" :-) роботы. Идея, использованная
> в этой работе подсказана мне коллегой, который пока не разрешает
> ,к сожалению, открывать исходники. Вот некоторые результаты
> (в них содержится небольшая подсказка)
>
>
> * 40x40 Крепость Step=158 Крепость=1600
> * 10x10 Крепость+Rob3+Rob3+Rob3 Step=53 Крепость=47
>
> * 40x40 Крепость+Rob3+Rob3+Rob3 Step=145 Крепость=1539
>
> * 10x10 Крепость+ВИРУС+ВИРУС+ВИРУС Step=114 Крепость=94
>
> * 40x40 Крепость+ВИРУС+ВИРУС+ВИРУС Step=155 Крепость=1547

У меня крепость не смогла полностью побить старого ВИРУСа аж до Step=1475 не плохо держится старичек!!!


 
Ru   (2003-05-23 14:26) [100]

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

Глупый вопрос: может стоит ввести классы роботов?


 
Arch-vile   (2003-05-24 13:31) [101]

БАНДАРЛОГ, основа - КЛОНОВИРУС. мочит своего предка. Не всегда, но в большинстве случаев. (8 из 10)
*БАНДАРЛОГ
*Автор Arch-vile
T.49
start: F.charge F.charge F.charge F.charge F.charge F.charge F.charge F.charge F.charge F.charge F.charge F.charge F.charge F.charge F.charge F.charge F.charge F.charge F.charge F.charge F.charge F.charge F.charge F.charge F.charge R.charge G.start
go: F.charge P.battle F.charge F.charge P.battle G.start
stop: P.charge E<120.charge T34.charge G.charge
charge: P.battle M>3.stop R.charge F.charge F.charge F.charge F.charge F.charge F.charge G.start
battle: A.go A.go A.go A.go A.go P.battle


 
Ru   (2003-05-26 10:26) [102]

таки да мочит по крупному :)


 
Arch-vile   (2003-05-28 19:26) [103]

UP
Что нового?


 
Ru   (2003-05-29 14:34) [104]

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


 
DrFaust   (2003-06-04 12:24) [105]

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



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

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

Наверх




Память: 0.8 MB
Время: 0.028 c
14-84565
Мыш
2003-06-07 18:24
2003.06.26
Посоветуйте хороший фотоальбом


3-83894
DreamDesire
2003-06-03 10:32
2003.06.26
Master-Details в TClientDataSet: касадное удаление


1-84379
Veles
2003-06-09 10:57
2003.06.26
Изображение из Delphi в Excel


3-84000
adoman
2003-05-30 14:03
2003.06.26
Syntax error in FROM clause...


1-84287
Hog
2003-06-14 23:24
2003.06.26
Перересовка отдельного окна.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский