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

Вниз

RoboWarz2   Найти похожие ветки 

 
cyborg ©   (2004-06-29 12:33) [0]

Новая версия
257 кило, исходники и исполняемые файлы:
http://www.cyborghome.ru/download/RoboWarz/RoboWarz2.zip

Смотрите бота-заготовку, там функции написал!

Немного изменил, стало проще, очков больше +6 за ход, сканирование 4 клеток за 1 раз с показом жизней своих ботов, мёртвые боты противника сразу удаляются, +функция залечивания соседнего бота. От читерства идентификацию ботов изменил, но появилось другое читерство, блин :)

Систему боя не менял, предложите лучше?

Ну и старые боты, естественно, не совместимы с нововой версией!

Подробно не тестировал, возможны люки, в общем как обычно ;).

Старая ветка первой версии тут:
http://delphimaster.net/view/14-1087913563/&web=1


 
ProgrammeR_SC ©   (2004-06-29 12:46) [1]

Урааааааааа. Ухожу в глубокий кодинг.
Про систему боя, щас потестим, а там посмотрим.


 
КаПиБаРа ©   (2004-06-29 13:58) [2]

Получается что можно создавать ботов только одного типа? Гораздо интереснее, когда в одной колонии можно будет создавать ботов с разными параметрами: военные, охрана и т.д. И еще интереснее если боты могли бы поддерживать между собой связь, для координации действий.


 
cyborg ©   (2004-06-29 14:06) [3]


> создавать ботов с разными параметрами: военные, охрана и
> т.д.

Используй MemX для определения что у тебя за бот, военный пусть воюет, охранник охраняет, и мазер всех ботов, пусть рожает :)


 
КаПиБаРа ©   (2004-06-29 14:18) [4]

Я имею в виду Атака/Защита/Жизнь


 
Murkt ©   (2004-06-29 15:32) [5]

1) Сколько очков на лечение? Влом смотреть исходники ;)
2) Все глючит, не компилируется, ну его ффтопку :-\


 
ProgrammeR_SC ©   (2004-06-29 15:52) [6]

Усе компилируеться...

зы. Скан норм. работает


 
Murkt ©   (2004-06-29 17:06) [7]

Усе компилируеться...
Я про своего бота.


 
cyborg ©   (2004-06-29 17:42) [8]

Товарищ Murkt однако сообщения компилятора смотреть надА! Однако RobowarTypes поставить надА!


 
cyborg ©   (2004-06-29 17:48) [9]


> Сколько очков на лечение? Влом смотреть исходники ;)


4
Там в самом начале RobowarUnit константы написаны.


 
Murkt ©   (2004-06-29 21:27) [10]

cyborg ©   (29.06.04 17:42) [8]
Товарисч Терминатор! Я смотрю сообщения компилятора! Но их было так много (эрроров), что я его забросил до лучших времен ;)

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

Однако робовартипес я конечно же поставил - иначе как я мог делать ботов для первый робоварзов?

Только не надо говорить, что во вторых робоварзах новый этот файлик. Я не тупой :)


 
Рыба ©   (2004-06-29 23:10) [11]

> cyborg

В клиенте забыл обновить одну строчку для первого бота:

procedure TForm1.SpeedButton1Click(Sender: TObject);
...
   Label1.Caption:=Copy(BotInfo^.BotName,1,20);
...

У остальных:
 Label2.Caption:=BotInfo^.BotName;

Да, и зачем при закрытии формы очищать лейблы?

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
...
 Label1.Caption:="";
 Label2.Caption:="";
...


Типа помирать надо в белой рубахе? :))


 
Рыба ©   (2004-06-29 23:15) [12]

>Murkt ©  (29.06.04 15:32) [5]
>2) Все глючит, не компилируется, ну его ффтопку :-\

Дык поновой надо переписывать. Я вот смотрю на набор новых возможностей и не знаю с какого боку подступиться. Если всё по уму использовать, это же будет просто чудо-рыба-кит! :))


 
КаПиБаРа ©   (2004-06-30 06:22) [13]

Есть несколько идей:
1. Добавить новую функцию ботам - общение. В этом случае можно будет организовывать коллективные действия. Передавать информацию о нападении, обнаружении противника, просить помощи, собирать армию и т.д. Причем информация от бота будет распространятся не всем, а только на блидайшие клетки. Противник может подслушивать чужие разговоры и делать свои выводы. У каждой колонии будет свой неповторимый язык. Две одинаковые колонии смогут объединять усилия для победы над другой рассой.

2. Организовать логигу ботов не в процедуре, а оформить в виде классов и для каждого бота создавать свой объект. Таким образом снимаются ограничения на интеллект ботов и можно создавать различные типы ботов (с разной логикой): полководцы, инженеры, бойцы и т.д.

3. Обратавывать действия не каждого бота в отдельности, а по тактам, например допустим для сообщения требуется 1 действие - 1 такт, для атаки 6 тактов. Идет группа ботов в разведку. Первый напоролся на противника. Противник начал атаку. До окончания атаки наш герой успеет крикнуть "Берегись. Засада" но ответную атаку начать не успеет и скорее всего погибнет. В это время остальные боты могут подотовится к нападению, например попытаться окружить врага или выдвинуть вперед самого сильного или самого защищенного бота.

4. Сделать возможным появление новых ботов отличных от родителя. Новые боты могут отличаться по параметром от своих родителей на несколько единиц. Например встретили противника выяснили что он очень хорошо атакует, но слабо защищен. Боты инженеры решили вывести новый вид война с задаными параметрами жизни, атаки и защиты. Всей колонии сообщили что надо клонировать таких бойцов. И постепенно начинается селекция, пока не появятся боты с заданными свойствами. Через несколько поколений получили ботов с нужными параметрами, создали армию и направили на противника.

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

PS: это еще не все идеи.


 
Murkt ©   (2004-06-30 08:47) [14]

Рыба ©   (29.06.04 23:15) [12]
Пилять! Еще один. Вы что, думаете, что я тупой???

Конечно же это новый бот! Просто там была хорошая идея, а компилятор её не воспринял :(

Мой бот будет довольно кульно драться. Если научиться быстро размножаться :)

КаПиБаРа ©   (30.06.04 06:22) [13]
Нет, большинство твоих идей довольно неплохие, но лучше такого не делать. Будет тогда парочка энтузиастов (сейчас и то больше), которые будут писать ботов для все более усложненной игры.


 
cyborg ©   (2004-06-30 08:56) [15]


> [10] Murkt ©   (29.06.04 21:27)

Не горячись, горячий финский парень ;)
Писал на Фрипаскале, соответственно на Дельфи может конфликтовать код, обычно адресация по другому идёт иногда.


> [11] Рыба ©   (29.06.04 23:10)

Да фиг с ним, работает и ладно, особо не налегал на клиента. Какая главная заповедь программиста? :) Работает - не трожь!


 
cyborg ©   (2004-06-30 09:00) [16]


> [13] КаПиБаРа ©   (30.06.04 06:22)

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


 
КаПиБаРа ©   (2004-06-30 09:33) [17]

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

По поводу атаки
Live := Live - Max(Random(Attack)-Random(Difence), 0)


 
cyborg ©   (2004-06-30 09:39) [18]


> 2. Организовать логигу ботов не в процедуре, а оформить
> в виде классов и для каждого бота создавать свой объект.
> Таким образом снимаются ограничения на интеллект ботов и
> можно создавать различные типы ботов (с разной логикой):
> полководцы, инженеры, бойцы и т.д.

По этому пункту я раньше говорил, сохраняй значение в Mem типа данного бота.

Просто смотришь, если, например, значение Mem4=0, то он ещё не определён, определи его тип поведения в эту ячейку, если уже определён, то смотри что за тип и отсюда пляши с логикой. Насчёт объектно ориентированный - лишняя тормознутость, они итак каждый по отдельности, сам по себе.


 
КаПиБаРа ©   (2004-06-30 09:45) [19]


> Просто смотришь, если, например, значение Mem4=0, то он
> ещё не определён, определи его тип поведения в эту ячейку

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


> Насчёт объектно ориентированный - лишняя тормознутость

ООП обеспечит плавное развитие концепции игры без глобальных переделок.


 
КаПиБаРа ©   (2004-06-30 12:37) [20]

Непонятно почему, но при использовании цикла while в dll возникает AV???


 
cyborg ©   (2004-06-30 13:11) [21]

Обновление!
Изменил атаку, как предложил [17] КаПиБаРа ©   (30.06.04 09:33)
И пару изменений сделал, одну ошибку в написании RepairPoints (было ReparPoints) в модуле RobowarTypes.pas и заполнение данных об оставшихся очков хода перенёс в другое место, сразу после отбирания очков.
http://www.cyborghome.ru/download/RoboWarz/RoboWarz2Upgr.zip
16 кило

И мой первый бот (v.2) cyborg №1 для второй версии:
http://www.cyborghome.ru/download/RoboWarz/botcyborg1.zip

Начали чтоли соревноваться :)


 
cyborg ©   (2004-06-30 13:13) [22]


>  [20] КаПиБаРа ©   (30.06.04 12:37)

Код покажи? Флаги Ret  в таких циклах нужно обязательно обрабатывать, иначе зациклится или ещё чего нибудь!


 
КаПиБаРа ©   (2004-06-30 13:24) [23]

 c := BotInfo^.Count + 1;
//  while c <> BotInfo^.Count do // Если раскомментировать то AV
 begin
 c := BotInfo^.Count;
 if BotInfo^.Mem4 = 0 then BotInfo^.Mem4 := Random(4);
 if BotInfo^.Mem3 = 0 then BotInfo^.Mem3 := Random(2)+1;
 if BotInfo^.Count>=RegisterInfo.ScanPoints then hRet:=BotScan(Bot,ScanRec);
 ...
 end;


 
cyborg ©   (2004-06-30 13:32) [24]

Сдаётся мне что AV скрывается тут:
...
end;


 
Рыба ©   (2004-06-30 14:51) [25]

> cyborg ©

Ещё есть ошибочка в написании: "Frend", а нужно "Friend".
Да, и в RobowarUnit, в функции лечения:
Function BotRepair(Var Bot : Cardinal; LookTo : TMove) : Cardinal; StdCall;
в какой строке отнимается чирик жизни у соседа?


 
cyborg ©   (2004-06-30 15:45) [26]


> [25] Рыба ©   (30.06.04 14:51)
>ошибочка в написании: "Frend"

Исправлю в селдующем обновлении.


> в какой строке отнимается чирик жизни у соседа?

Ни в какой, функция только на своих действует.


 
Murkt ©   (2004-06-30 16:07) [27]

Если жу пошла такая жара с исправлением орфографии - Attack, ф не Attak.


 
ProgrammeR_SC ©   (2004-06-30 16:32) [28]

Ну че навалились на человека..
MaxLive, а не MaxLife. Live это глагол


 
ProgrammeR_SC ©   (2004-06-30 16:36) [29]

наоборот MaxLife, а не MaxLifve


 
ProgrammeR_SC ©   (2004-06-30 22:37) [30]


Procedure CreateBotProc( RegisterBot : PRegisterBot ); StdCall;
begin
 RegisterBot^.Defence:=-1000;
 RegisterBot^.Attak  :=200;
...

Тока что заметил... Мелочь, а приятно. %))

зы
(v.2) cyborg №1 Без комментариев. Я даже и не знаю че делать... Ща буду че нибудь умное думать %))


 
Рыба ©   (2004-06-30 23:20) [31]

Выпускаю вторую первую рыбку.
Но блин попарился я, чтоб киборга завалить.. :))

http://kufa.nm.ru/Fish2_1.zip


 
cyborg ©   (2004-07-01 10:19) [32]


> [30] ProgrammeR_SC ©   (30.06.04 22:37)

Вот это дырище, пофиксим :)


> [31] Рыба ©   (30.06.04 23:20)

1 на 1 твоя рыба выигрывает только если мой бот стоит на второй зелёной позиции, не успевает окружить твою рыбу :), стоит ему только соединиться с любой своей стороной, то рыбе приходит пипец, а так на любой другой позиции он бьёт, даже 1 против трёх рыб ;).


 
Рыба ©   (2004-07-01 10:24) [33]

>cyborg ©  (01.07.04 10:19) [32]

Да блин, факт.
У тебя наверно крутая система залечивания.


 
Рыба ©   (2004-07-01 10:37) [34]

>cyborg ©

Оффтоп: чего это за ужасный фон у тебя на сайте? Глаза сломать можно.


 
cyborg ©   (2004-07-01 10:52) [35]


> [33] Рыба ©   (01.07.04 10:24)

Просто когда мой окружён, то ему приходится воевать  на три стороны, соответственно быстро тратятся очки действия, а вот стоит ему соединиться, то война идёт уже в одну сторону, что есть гуд :), а сзади его подлечивают тыловики :)


 
КаПиБаРа ©   (2004-07-02 07:02) [36]

Капибара 1.1 поедает 3 рыб за раз. Киборга только втроем убивают. Один на один почти на равных бьются. Попробую доработать и выложу :)


 
КаПиБаРа ©   (2004-07-02 10:12) [37]

Есть!!! Капибара 1.1 мочит всех и киборга и рыбу и один на один и против трех противников. Тока мне ее скинуть некуда. Могу кому нибудь на почту.


 
Рыба ©   (2004-07-02 10:21) [38]

>КаПиБаРа ©  (02.07.04 07:02) [36]
>Капибара 1.1 поедает 3 рыб за раз.

Вот голодный парень.. И вином ещё запивает, да?  :))


 
Рыба ©   (2004-07-02 10:52) [39]

Всем пока!
Рыба уехал в Питер.


 
cyborg ©   (2004-07-02 10:56) [40]

[37] КаПиБаРа ©   (02.07.04 10:12)
http://www.cyborghome.ru/download/RoboWarz/botKapi11.zip



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

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

Наверх




Память: 0.56 MB
Время: 0.054 c
3-1088721442
Daniil
2004-07-02 02:37
2004.07.25
DBGrid


1-1089409823
nick_mas
2004-07-10 01:50
2004.07.25
Как отключить процедуру RadioButton1.Click для "Down" и "Up"???


14-1088727892
xAnjel
2004-07-02 04:24
2004.07.25
Ув. Мастера. Нужен клиент для вашево чата (искал но не нашол).


14-1088943121
Ломброзо
2004-07-04 16:12
2004.07.25
Занесло на рынок


1-1089718841
Stager
2004-07-13 15:40
2004.07.25
TMemoryStream





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