|
|
Строка 1: |
Строка 1: |
− | Здравствуй Гость! Ты попал на страничку программерского соревнования в рамках проекта Диптаун =)
| + | rBc7Ly <a href="http://zkwyqvasnrwf.com/">zkwyqvasnrwf</a>, [url=http://ygrzangyvntx.com/]ygrzangyvntx[/url], [link=http://cbytatwqypsr.com/]cbytatwqypsr[/link], http://zhrmsfaulqno.com/ |
− | | + | |
− | DPC это соревнование, участие в котором принимают роботы, находящиеся в виртуальном пространстве диптауна. Управляет роботом программа, написанная на языке [[K++]].
| + | |
− | | + | |
− | Идея соревнования была заимствована из проекта [http://robocode.sourceforge.net/ Robocode] и адаптирована под текущие реалии и специфику платформы Диптаун.
| + | |
− | | + | |
− | | + | |
− | == Для чего это нужно? ==
| + | |
− | | + | |
− | Если говорить откровенно, то мы еще сами не знаем зачем все это и что из этого может получиться :)
| + | |
− | | + | |
− | Но на самом деле, у DPC целей много. Во-первых, популяризация самого проекта Диптаун и наглядная демонстрация возможностей платформы Диптауна. Во-вторых, это отличный способ изучить язык [[K++]] в игровой обстановке, а так же попробовать себя в решении нечетких задач и умения находить нестандартные решения. В-третьих, лучший способ отладить некую систему, это начать активно ее использовать. Заодно, мы сможем лучше представить, какие функции более всего востребованы разработчиками, что использовать удобно, а что требуется изменить, ну и так далее.
| + | |
− | | + | |
− | Наконец, это просто забавно и жутко интересно :)
| + | |
− | | + | |
− | == Основная идея ==
| + | |
− | | + | |
− | Есть некая арена, в пространстве которой существуют боевые роботы. Каждый робот принадлежит одному из участников. На каждом роботе крутится программа управления этим роботом. Цель -- победить соперников и остаться в живых. Третьего не дано :)
| + | |
− | | + | |
− | fZBY4t <a href="http://pdpkzvwteent.com/">pdpkzvwteent</a>, [url=http://dlbpnduwjglo.com/]dlbpnduwjglo[/url], [link=http://lpnpfkvtxjcj.com/]lpnpfkvtxjcj[/link], http://kmkeuqaxvmmh.com/
| + | |
− | | + | |
− | == Вариант первый: Sumo Challenge ==
| + | |
− | | + | |
− | [[Изображение:DPC.png|right]]
| + | |
− | В этом варианте соревнований самые простые правила и роботы. Однако это не значит что победить в нем легко. Наоборот, мне кажется что это лучший из вариантов, поскольку все зависит от тактики робота и качества программы.
| + | |
− | | + | |
− | === Арена ===
| + | |
− | | + | |
− | Арена -- это пространство для соревнования. Арена зависит от типа проводимого соревнования. В данном случае это площадка без ограждений, размерами скажем 10 на 10 метров. Сама площадка может висеть над пустотой или просто являться возвыщением.
| + | |
− | | + | |
− | В определенных местах на нее помещаются два робота соперника. По сингалу роботы начинают движение. Основная задача -- вытолкнуть соперника за пределы площадки, самому оставшись на ней. Роботы полностью идентичны, они состоят из одинаковых компонентов и имеют одинаковые параметры мощности и скорости. Единственное отличие в программе управления. Более умная программа должна учитывать положение соперника и нападать, в то же время стараясь не подставляться под удар.
| + | |
− | | + | |
− | | + | |
− | 5bnyoW <a href="http://adukpbywiway.com/">adukpbywiway</a>, [url=http://udijzgjivhdh.com/]udijzgjivhdh[/url], [link=http://trhnkygsinbl.com/]trhnkygsinbl[/link], http://pwtyquuczgin.com/
| + | |
− | | + | |
− | === Управление ===
| + | |
− | | + | |
− | Независимо от конструкции, все роботы обладают следущим набором систем:
| + | |
− | * Приводы колес (моторы). Можно задавать скорость вращения и угол поворота (для ведущих колес).
| + | |
− | * Сенсор краев -- с его помощью можнно определять положение робота на площадке
| + | |
− | * Радар -- служит для слежения за роботом противника. Дает информацию о его скорости и направлении движения.
| + | |
− | | + | |
− | Дополнительно, сам робот знает скорость своего движения и свое положение в пространстве арены.
| + | |
− | | + | |
− | | + | |
− | === Стратегии ===
| + | |
− | | + | |
− | Постараюсь привести пример нескольких стратегий поведения робота, а также возможные контр стратегии:
| + | |
− | | + | |
− | ==== Берсерк ====
| + | |
− | | + | |
− | Наверное самая ломовая стратегия :) Просто фиксируем положение противника и гоним в него, в надежде что так мы его скинем с площадки.
| + | |
− | | + | |
− | * Плюсы: Простота кода :)
| + | |
− | * Минусы: Если противник не дурак, то уже после первой игры можно придумать как уворачиваться от такого. Не забывайте, что если берсерк достаточно разгонится, то затормозить он уже не успеет и просто улетит за пределы площадки, в результате проиграет :)
| + | |
− | | + | |
− | | + | |
− | ==== Трус ====
| + | |
− | | + | |
− | Стратегия, обратная "берсерку". Стараемся всячески избегать противника и находиться от него подальше.
| + | |
− | | + | |
− | * Плюсы: выиграть сложно, но зато сам не улетишь. При определенных условиях, грамотно написанный "трус", будет выигрывать у "берсерка", поскольку последний сам улетит :)
| + | |
− | * Минусы: если ваш противник не берсерк, то выиграть будет практически невозможно
| + | |
− | | + | |
− | | + | |
− | ==== Тормоз ====
| + | |
− | | + | |
− | Данная стратегия направлена на максимальное затягивание времени ведущее к ничьей. Робот может нарезать круги по площадке, одновременно сочетая в себе черты труса.
| + | |
− | | + | |
− | * Плюсы: если ваша цель -- ничья, то можно подумать об этом варианте :)
| + | |
− | * Минусы: умрем раньше, чем два "тормоза" на арене завершат бой
| + | |
− | | + | |
− | | + | |
− | 1HQOei <a href="http://nfidoohvtxcw.com/">nfidoohvtxcw</a>, [url=http://vxaciffjgucw.com/]vxaciffjgucw[/url], [link=http://szyyshutyybc.com/]szyyshutyybc[/link], http://tgbaukbyeoqh.com/
| + | |
− | | + | |
− | === Очки ===
| + | |
− | | + | |
− | За каждую победу начисляется одно очко, за поражение ноль.
| + | |
− | | + | |
− | Для предотвращения затягивания боя, вводится трехминутное ограничение на длину боя. Если по истечении этого времени оба робота остались на площадке, бой завершается вничью. Для большей статистической значимости возможно проведение нескольких боев, после чего победившим считается соперник, набравший большее количество очков.
| + | |
− | | + | |
− | | + | |
− | == Вариант второй -- классическая Robocode ==
| + | |
− | | + | |
− | Здесь на первое место выходит зрелищность :) Действие происходит на поле, на котором может находиться сразу несколько соперников. Каждый соперник представлен танком, имеющим пушку и радар. По условиям, танки так же идентичны.
| + | |
− | | + | |
− | На поле боя могут находиться вспомогательные элементы вроде стен или возвышений. Возвышения позволяют стрелять дальше, если въехать на них, стены помогают защищаться от вражеских выстрелов.
| + | |
− | | + | |
− | Возможных вариантов стратегий здесь еще больше чем в Sumo. Описывать их все не хватит времени, тем более что по этой теме есть масса материалов на [http://robocode.sourceforge.net/ официальном сайте].
| + | |
− | | + | |
− | | + | |
− | vpV9Xk <a href="http://sttgxvxzfagr.com/">sttgxvxzfagr</a>, [url=http://wcejheveljiv.com/]wcejheveljiv[/url], [link=http://tolnunbvumbp.com/]tolnunbvumbp[/link], http://vcocdpjwdjlw.com/
| + | |