PSPx форум

PSPx форум (https://www.pspx.ru/forum/index.php)
-   Программирование для PSP (https://www.pspx.ru/forum/forumdisplay.php?f=101)
-   -   Битва Роботов (https://www.pspx.ru/forum/showthread.php?t=19546)

mushue 04.10.2006 16:40

Битва Роботов
 
Давно хотел реализовать проект для ПК как битва роботов. Теперь представилась возможность сделать это для ЗЫЗы.

Суть проста. Два программируемых робота выходят на арену и начинают свою битву победит тот чья программа удачно выполнена.

Сама арена является территорией на которой расположены всякие объекты препятствующие роботам. Роботы имеют некий арсенал орудия, предметов для достижения цели победы над противником.

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

Задача: написать программу для своего робота и выпустить его на арену биться с другим роботом, прошивку которого написал другой игрок. =)

Пожалуй я займусь этим проектом. Желающие могут подключаться =)

vAST 04.10.2006 16:41

кстати классная идея ... а бои в стиле всяких БК сделать ... я с братом в свое время описывал механизм боев (брат программист и мечтает игру сделать)

mushue 04.10.2006 16:44

Цитата:

Сообщение от vAST (Сообщение 213103)
кстати классная идея ... а бои в стиле всяких БК сделать ... я с братом в свое время описывал механизм боев (брат программист и мечтает игру сделать)

В стиле всяких БК? Поясни..

vAST 04.10.2006 16:47

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

vAST 04.10.2006 16:52

даже где то были механизмы расчетов ... надо у брата посправшивать он на VС++ пишет Directx игры (точнее мечтает написать и неплохо определенные моменты у него выходят)

mushue 04.10.2006 16:53

Цитата:

Сообщение от vAST (Сообщение 213116)
БК -- типа выбираешь точку куда ставишь блок (голова руки туловище ноги ... 6 точек, если у тебя броня то два блока) и ставишь куда наносишь удар (теже точки, но если есть оружие то два удара) ... жмешь ударить ... противник тоже самое делает а прога расчитывает повреждения в зависимости от блоков и туда куда ударил ну и уровня противников

Я понял.
Моя система другого характера.

Я программирую прошивку полностью, от начала движения и сканирования пути до починок, ремонтов, атак и т.п.
Например:
Написать программу движения и с канирования с учетом внешних объектов. Найти цель и уничтожить и т.д. и т.п.
Тоесть робот будет делать одно действие в момент всех фаз.
Фазы: внешний фактор, перезарядка, сканирование, движение, атака, починка, дополнительное действие обпределяемоме предметами.

Вообщем заморочка еще та =)

vAST 04.10.2006 16:54

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

mushue 04.10.2006 16:59

внешний фактор, перезарядка, сканирование, движение, атака, починка, дополнительное действие обпределяемоме предметами.

Рассмторим цикл фаз моего робота:

1. Туман ( в момент действия тумана фазы сканирование и движение блокируются)
2. Перезарядить оружие если не перезаряжено
3. блокировано
4. блокировано
5. нет цели для атаки
6. слабая починка верхней башни
7. стоим в луже (лужа отрицательно действует на нижнюю часть робота, в следующем ходе нужно починиться)

ПЕРЕХОД ХОДА!
Внешние факторы зависят от самой арены и места где находится робот.
На починку, движение, перезарядку и т.п. требуются некоторые поинты которые даются в начале каждого раунда с возможным накоплением.

И куча других приблуд.

vAST 04.10.2006 17:00

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

mushue 04.10.2006 17:55

вАСТ, твою идею пока немогу понять как реализовать ее именно в режиме "прошивка" (это то о чем я говорил).. Дело в том, что если человек сделает прошивку, то она будет выполнять действия которые запрограммированы, а это значит что я смогу написать своего воина который все заблокирует и максимально быстро убьёт соперника, потому что я знаю его программу. =)

добавлено через 51 минуту
Продолжу информировать о задуманном.

Фазы:
1. Внешний фактор
2. Перезарядка
3. Сканирование
4. Движение
5. Атака
6. Починка
7. Дополнительное действие определяемое предметами.

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

Комментарии к фазам.
Внешний фактор - влияет либо на действия вашего робота, либо на действия робота противника. Действие внешнего фактора не требует затрат энергии.
Эту фазу пропустить нельзя. Она автоматически пропускает если внешних факторов нет.
Перезарядка - в этой фазе ваш работ може перезарядить своё орудие. Требуется некоторое кол-во энергии для перезарядки. Требуемая энергия для перезарядки определяется оружием.
Сканирование - в эту фазу ваш робот применяет сканер для обнаружения объектов перед собой. Требуемая энергия для сканирования определяется сканером.
Движение - в эту фазу ваш робот делает разные движения связанные с перемещением робота на местности. Требуется 1 пункт энергии для действия.
Атака - если в фазу сканирования была выявлена цель "противник", то ваш робот может атаковать его. Затрачивается 1 пункт энергии.
Починка - в эту фазу робот может починить часть своей конструкции которая требует ремонта. Требуемое кол-во энергии на починку определяется степенью поломки. Если часть робота сломана, то он не может выполнять какое-либо действие взависимости от той часть которая сломана.
Дополнительное действие определяемое предметами - В эту фазу вы можете задействовать бонусы предметов которые имеются у вашего робота.
Требуемая энергия определяется предметом.

Теперь о "прошивках"
Любую фазу можно определить как автоматическое действие при выполнение каких-либо условий. Также, можно рассматривать каждый ход самостоятельно и программировать весь процесс битвы.
например:
Установка автоматических действий:
SetPhaseAuto(номер фазы, имя функции которая будеть отвечать за автоматическое действие)

Программирование действий:
SetPhaseAction(раунд, номер фазы, имя функции которая будеть отвечать за действие)

Продолжение следует...

pspowner 04.10.2006 19:45

2vAST:

Я понял о чём ты, видел в интернете бойцовский клуб. Звучит просто. Подумаю об этом после того как закончу Морской Бой.

2mushue:

Вот ты загнул... честно говоря не очень понял как это всё будет(должно) выглядеть... В любом случае удачи!

SееD 05.10.2006 09:54

так есть же такие *роботы* для ПК. название не помню, но сам играл и писал под свего робота прошивку. nuhfnm было интересно, но имеено потому, что игра СЕТЕВАЯ, то есть другие роботы тоже программируются людьми.

вот если б такую штуку мультиплеерную удалось замутить
ммм.....

mushue 05.10.2006 09:59

@Padla, я об этом и толкую, что твой робот будет бить скажем моего..

mushue 06.10.2006 10:43

Продолжение..

Теперь немного посвещу в теорию написания самой "прошивки" для робота.
Всё не так сложно как кажется. В самой программе реализован микропроцессор который обрабатывает ваши команды, работает над регистрами и т.п.
Суть проста: на ваше усмотрение предоставляется набор регистров от 0-200.
Думаю, что 200 регистров куда более достаточно. Регистры от 201 до 255 считаются служебными, тоесть пользуются самим процессором под всевозможные флаги. каждый регистр это однобайтовый код 0х00,0x01,0x02 .. 0xFF.
Каждая команда это тоже однобайтовый код.
Данные которые вы хотите использовать в своей прошивке рассматриваются как двухбайтовое число.
Например мнемонический код:
move r2,r1
Будет выглядеть как: (move r2,r1 - содержимое регистра r1 присвается регистру r2. Команда move имеет код 0xAA ) - AA 02 01
Таким образом мы видим, что полученный в результате этих действий код, заставляет процессор программы выполнять инструкции которые мы хотим получить. В результате этих действий процессор программы хранит у себя в памяти значения регистров. В дальнейшем коде нашей "прошивки" мы можем воспользоваться этими регистрами на своё усмотрение.
Например мнемонический код:
movedata r1,255 ;имеет код операции AD
move r2,r1
Код прошивки:
AD 01 00 FF AA 02 01

Продолжение следует...

pspowner 06.10.2006 11:10

Во как ты. А ты уверен что наши геймеры въедут в ассемблер?

Тады уж предлагаю сделать ещё круче:

move r1, 01 //01 - Номер функции
int 10 // 10 прерывание - движение руки (или syscall MoveHands)
jc error //Прыжок, если CF поднят. Действие не может быть выполнено.

error: - обработчик ошибки.

mushue 06.10.2006 11:17

Цитата:

Сообщение от pspowner (Сообщение 214485)
Во как ты. А ты уверен что наши геймеры въедут в ассемблер?

Тады уж предлагаю сделать ещё круче:

move r1, 01 //01 - Номер функции
int 10 // 10 прерывание - движение руки (или syscall MoveHands)
jc error //Прыжок, если CF поднят. Действие не может быть выполнено.

error: - обработчик ошибки.

Я не говорю о ассемблере. Мнемоническое представление был всего лишь для понимания. Мнемоника самого кода может выглядеть иначе например так:
Код:

IF ( &ФУНКЦИЯ ) THEN  ERROR
Я всеголишь даю понять как обрабатывает инструкции микропроцессор, а мнемоническое представление кода может быть любое. =)

pspowner 06.10.2006 11:39

Ясно.

У твоего процессора, надо понимать будут, классы инструкций:

Load and Store - операции с данными, move и.т.п...

Computational - математика.

Flow control - Jumpы callы и прочее..

Traps, breakpoints - ну это можно и опустить

Вот мне просто и стало интересно какими инструкциями ты всё это будешь реализовывать...

mushue 06.10.2006 11:45

@pspowner
Совершенно верно. Просто я сообщаю о том, что прошивку можно писать и в 16-ричном коде. Совсем не обязательно изучать мнемонику.
Теперь по поводу инструкций:
Как таковых инструкций будет минимальное кол-во. Основное это выполнение действий в зависимости от флагов процессора. Ранее я описывал механизм фаз действий робота в свой ход. Именно основываясь на эти фазы инструкции будут соответствовать набору команд отвечающих за процесс исполнения фаз, в дополнение иструкции не зависящие от фаз явлюящиеся вспомогательными такие как: проверка условий, переходы, брейкпоинты и т.п.

afonyka 20.05.2009 18:34

Цитата:

Сообщение от mushue (Сообщение 213102)
Давно хотел реализовать проект для ПК как битва роботов. Теперь представилась возможность сделать это для ЗЫЗы.

Суть проста. Два программируемых робота выходят на арену и начинают свою битву победит тот чья программа удачно выполнена.

Сама арена является территорией на которой расположены всякие объекты препятствующие роботам. Роботы имеют некий арсенал орудия, предметов для достижения цели победы над противником.

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

Задача: написать программу для своего робота и выпустить его на арену биться с другим роботом, прошивку которого написал другой игрок. =)

Пожалуй я займусь этим проектом. Желающие могут подключаться =)

Цитата:

Сообщение от mushue (Сообщение 213127)
Я понял.
Моя система другого характера.

Я программирую прошивку полностью, от начала движения и сканирования пути до починок, ремонтов, атак и т.п.
Например:
Написать программу движения и с канирования с учетом внешних объектов. Найти цель и уничтожить и т.д. и т.п.
Тоесть робот будет делать одно действие в момент всех фаз.
Фазы: внешний фактор, перезарядка, сканирование, движение, атака, починка, дополнительное действие обпределяемоме предметами.

Вообщем заморочка еще та =)

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

Dr.House 20.05.2009 18:56

думаешь за 2 года они не догадались?


Текущее время: 23:50. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.