AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Прочие вопросы
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 06.02.2004, 15:26   #1  
Ruff ist offline
Ruff
Дмитрий Ерин
Benutzerbild von Ruff
1C
 
475 / 396 (14) ++++++
Registriert seit: 18.09.2003
Ort: Тула
БИТВА КОНЕЙ - Игра для программистов
Кто хочет сразиться в написании несложных алгоритмов?
Читайте описание игры: http://www.axforum.info/forums/showt...7654#post27654
Жду ваших откликов , вопросов и предложений. Если кто-то изъявит желание посоревноваться, напишите, пожалуйста в эту ветку, чтобы я хотя бы знал, стоит ли совершенствовать игрушку дальше.
__________________
Alt 06.02.2004, 18:46   #2  
Lihgt ist offline
Lihgt
Участник
 
49 / 70 (3) ++++
Registriert seit: 16.04.2002
Ort: Москва
Предлагаю подправить метод
PHP-Code:
final boolean canMove(int x Colint y Row)
{
    
int ijk;
    ;

    for (
1<= 8k++)
    {
        
dx[k];
        
dy[k];
        if (
Field.getCell(ij) == KnightsCell::empty)
            return 
true;
    }

    return 
false;

Чтобы можно было проверять не только текущее положение и спокойно использовать в потомках.
Alt 07.02.2004, 14:55   #3  
Ruff ist offline
Ruff
Дмитрий Ерин
Benutzerbild von Ruff
1C
 
475 / 396 (14) ++++++
Registriert seit: 18.09.2003
Ort: Тула
ОК, мысль хорошая!
В понедельник сделаю - сейчас нет под рукой Аксапты.

Lihgt, а ты уже пишешь свой класс, или так, из любопытства, предлагаешь?
__________________
Alt 09.02.2004, 18:43   #4  
Lihgt ist offline
Lihgt
Участник
 
49 / 70 (3) ++++
Registriert seit: 16.04.2002
Ort: Москва
Продолжим
Немного подумав, понял, что эти изменения будут работать только для 9 ячеек из всего поля, так что, может они и не нужны

Так забавы ради написал
- DeadKnight - конь, который создается за переделами поля и никогда никуда не ходит. Чтобы можно было устраивать дуэли или вообще одному по полю скакать
- MinKnight - конь, который из возможных вариантов выбирает поле с наименьшим (> 0) числом свободных соседних ячеек
- MaxKnight - противоположенность MinKnight
- DrunkKnight2 - пытается обходить ячейки из которых не будет выхода (для которых canMove = false)

Общий вывод - прикольно
Alt 10.02.2004, 08:31   #5  
Ruff ist offline
Ruff
Дмитрий Ерин
Benutzerbild von Ruff
1C
 
475 / 396 (14) ++++++
Registriert seit: 18.09.2003
Ort: Тула
Да уж...
А я-то думал, что сколько людей - столько и мнений. Надеялся на встречу с принципиально различными алгоритмами. А получается, что мысли идут в одном и том же направлении.
Моя конюшня:
SmartKnight - видимо, аналог MaxKnight - побеждает довольно часто;
AloneKnight - видимо, аналог MinKnight - оптимален для одиночных тренировок;
ChessKnight - просчитывает путь на несколько шагов вперед (тут сложнее сказать, но вполне возможно, что аналог DrunkKnight2) - тоже силен, но его частенько "запирают" AloneKnight-ы и SmartKnight-ы.

И, кстати, я просто переделал базовый класс Knight, чтобы он стоял (правда не за полем - хорошая мысль, а в своем углу). Получается - аналог DeadKnight.

Вот что хотелось бы сделать, так это - скрестить SmartKnight с ChessKnight, но поскольку они используют принципиально разные критерии оптимальности, то пока не могу придумать, как их выбирать (может быть, случайным образом). Да и думать пока не охота, вот было бы с кем конкурировать...
__________________
Alt 10.02.2004, 15:44   #6  
Damn ist offline
Damn
Участник
 
436 / 154 (6) ++++++
Registriert seit: 28.05.2003
Ort: в глуши
Создал коня, являющегося аналогом ChessKnight'а похоже. Просчитывает кол-во ходов, которые можно сделать в каждом из направлений. Выбирает то, в котором кол-во максимально. Глубина подсчёта меняется автоматически по мере увеличения кол-ва шагов. То есть по началу он прыгает особо не напрягаясь (как Drunk), но потом понимая что есть ещё вражеские кони, начинает задумываться над движениями. Поэтому один он бегать не любит (на слабых машинах к концу игры начинает тормозить) ))). Вот такой жаждущий общения коняга.
Из-за нехватки времени я его стравливал пока только с Drunk'ами. Как котят ...
Angehängte Dateien
Dateityp: xpo damnknights.xpo (4,2 KB, 302x aufgerufen)
__________________
Дмитрий
Alt 10.02.2004, 16:10   #7  
mazzy ist offline
mazzy
Участник
Benutzerbild von mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29.472 / 4494 (208) ++++++++++
Registriert seit: 29.11.2001
Ort: Москва
Blog-Einträge: 10
Забавно. А вот можно ли посмотреть на запись партии?
Как оценить красоту идеи программиста тем, у кого нет Аксапты?
Alt 10.02.2004, 19:13   #8  
Damn ist offline
Damn
Участник
 
436 / 154 (6) ++++++
Registriert seit: 28.05.2003
Ort: в глуши
Если только в AVI. Не иначе.
Финального скриншота всё равно недостаточно.
А так это очевидно игра для узкого круга любителей Х++.
__________________
Дмитрий
Alt 11.02.2004, 08:29   #9  
Ruff ist offline
Ruff
Дмитрий Ерин
Benutzerbild von Ruff
1C
 
475 / 396 (14) ++++++
Registriert seit: 18.09.2003
Ort: Тула
Выкладываю своих претендентов, глядишь и остальные подтянутся...
После боя с конем Damn-а расскажу о результатах (если будет время).

Что касается записи партии, то можно попробовать сделать экспорт в текстовик с последующей визуализацией с помощью DHTML. Только позволит ли это форум? Стоит ли возиться?
__________________
Alt 11.02.2004, 08:30   #10  
Ruff ist offline
Ruff
Дмитрий Ерин
Benutzerbild von Ruff
1C
 
475 / 396 (14) ++++++
Registriert seit: 18.09.2003
Ort: Тула
Тьфу, блин! Опять забыл аттачмент...
Что-то с памятью моей....
Angehängte Dateien
Dateityp: zip ruffknights.zip (2,2 KB, 127x aufgerufen)
__________________
Alt 11.02.2004, 09:24   #11  
Ruff ist offline
Ruff
Дмитрий Ерин
Benutzerbild von Ruff
1C
 
475 / 396 (14) ++++++
Registriert seit: 18.09.2003
Ort: Тула
Некоторые результаты
Соревнования проводились между моими конями (SmartKnight, AloneKnight и ChessKnight) и предложенным Damn-ом - KnightDamnStepCount
Каждый матч состоял из пяти раундов. Начальное положение коней не менялось (хотя ChessKnight все еще грешит скачкой по углам). Итак, результаты:

Конь Очки

----------------------
Damn 512
Chess 551
Smart 362
Alone 217
---------------------
Damn 473
Chess 416
Chess 484
Chess 373
---------------------
Damn 376
Smart 326
Smart 288
Smart 242
---------------------
Damn 504
Alone 452
Alone 425
Alone 489
__________________
Alt 11.02.2004, 10:38   #12  
Damn ist offline
Damn
Участник
 
436 / 154 (6) ++++++
Registriert seit: 28.05.2003
Ort: в глуши
Выставляю версию KnightDamnStepCount с оптимизированным алгоритмом подсчёта шагов и изменённой шкалой изменения глубины просчёта.
Посмотрев на трудолюбивого ChessKnight начал понимать что мой очень похож на Drunk'а и гуляет в основном по центру, не стремясь заполнить всё пространство на поле. Такой вобщем легкомысленный. Но не глупый
Angehängte Dateien
Dateityp: xpo knightdamnstepcount.xpo (3,7 KB, 294x aufgerufen)
__________________
Дмитрий
Alt 11.02.2004, 20:13   #13  
Lihgt ist offline
Lihgt
Участник
 
49 / 70 (3) ++++
Registriert seit: 16.04.2002
Ort: Москва
Табун
Раз такая пьянка, то и я своих лошадок выставлю на общее обозрение.

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

Посмотрим, когда появится generation next
Angehängte Dateien
Dateityp: zip lihgtknights.zip (2,0 KB, 134x aufgerufen)
Alt 13.02.2004, 08:32   #14  
Ruff ist offline
Ruff
Дмитрий Ерин
Benutzerbild von Ruff
1C
 
475 / 396 (14) ++++++
Registriert seit: 18.09.2003
Ort: Тула
Последний из первого поколения
Zitat:
Изначально опубликовано Lihgt
У меня сложилось впечатление, что коники одного поколения дают примерно одинаковый результат, который зависит от набора соперников и начального положения.
У меня - аналогичное впечатление. Выложу, пожалуй, своего последнего представителя первого поколения .

А на счет generation next уже есть соображения (жаль нет времени). Ключевая фраза: результат, который зависит от набора соперников . Почему бы не попытаться прочитать чужие мысли (мысли коня-соперника)?
...
Надеюсь, ту би континуед...
Angehängte Dateien
Dateityp: xpo smartchessknight.xpo (3,1 KB, 193x aufgerufen)
__________________
Alt 13.02.2004, 10:07   #15  
Damn ist offline
Damn
Участник
 
436 / 154 (6) ++++++
Registriert seit: 28.05.2003
Ort: в глуши
Re: Последний из первого поколения
Zitat:
Изначально опубликовано Ruff


Почему бы не попытаться прочитать чужие мысли (мысли коня-соперника)?

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

Кстати, у меня почему-то нет типа RandomQueue
__________________
Дмитрий
Alt 13.02.2004, 10:24   #16  
Ruff ist offline
Ruff
Дмитрий Ерин
Benutzerbild von Ruff
1C
 
475 / 396 (14) ++++++
Registriert seit: 18.09.2003
Ort: Тула
Re: Re: Последний из первого поколения
Zitat:
Изначально опубликовано Damn
А потом ещё придёт мысль увеличить поле или кол-во коней на поле.
...
Кстати, у меня почему-то нет типа RandomQueue
Пардон, забыл про новую фичу. Выкладываю...
А, кстати, размер поля легко меняется. В старой версии нужно еще немного класс KnightsGame подправить (метод Init() ), а в новой - достаточно поменять свойства Columns и Rows объекта Table на форме KnightsForm.
Angehängte Dateien
Dateityp: xpo knightsbattle1_1.xpo (74,6 KB, 290x aufgerufen)
__________________
Alt 16.02.2004, 15:38   #17  
zemlyn ist offline
zemlyn
Участник
Benutzerbild von zemlyn
 
146 / 44 (2) +++
Registriert seit: 28.01.2004
Реал-тайм стратегия вместо походовой
Здравствуйте, все.
А могут ли кони ходить одновременно?
Это сложно реализовать?
А то понятно, что ChessKinght (ну или там его вариация), думает долго и за счет этого побеждает хотя за то время, пока он думает, простенький DrunkKnight уже бы далеко ускакал.
И получается, что если написать сложный алгоритм, который будет долго выполняться, то наверное он победит остальных. А это не совсем логично.
Alt 16.02.2004, 15:52   #18  
Ruff ist offline
Ruff
Дмитрий Ерин
Benutzerbild von Ruff
1C
 
475 / 396 (14) ++++++
Registriert seit: 18.09.2003
Ort: Тула
Re: Реал-тайм стратегия вместо походовой
Zitat:
Изначально опубликовано zemlyn
А могут ли кони ходить одновременно?
Это сложно реализовать?
Навскидку - сложно . Если вообще возможно. Я в Аксапте - пока не ас, поэтому точно сказать не могу. Пытался как-то экспериментировать с классом Thread, но как мне показалось, запущенные таким образом потоки становились "в очередь", а не выполнялись одновременно. Если не прав - может кто-нибудь уточнит?
Zitat:
Изначально опубликовано zemlyn
И получается, что если написать сложный алгоритм, который будет долго выполняться, то наверное он победит остальных. А это не совсем логично.
Вот это - не факт. Практика показывает, что глубина просчета шагов - не самый важный фактор успеха. А именно это сказывается на быстродействии алгоритма. Очень многое зависит от очередности шагов. Часто исход поединка решает принцип "кто первым встал - того и тапки" .
__________________
Alt 16.02.2004, 16:00   #19  
zemlyn ist offline
zemlyn
Участник
Benutzerbild von zemlyn
 
146 / 44 (2) +++
Registriert seit: 28.01.2004
ограничение на время хода (или всей партии)
хорошо, можно ли тогда сделать вариацию игры, где кони ходят хоть и поочереди, но, тратить будут время по-честному?
Типа если ChessKnight ходит за 1 секунду на 1 клетку, то DrunkKnight пять раз за это время успеет сходить (причем можно сделать как фиксированное время на ход(ходы?), так и динамически изменяющееся (как в шахматах - там же у каждого определенный запас времени)
Alt 16.02.2004, 16:23   #20  
Ruff ist offline
Ruff
Дмитрий Ерин
Benutzerbild von Ruff
1C
 
475 / 396 (14) ++++++
Registriert seit: 18.09.2003
Ort: Тула
Попробовать, конечно, можно (оба варианта - фиксированный и динамический). Можно еще третий - более простой - вариант: в конце раунда считать очки по формуле:
Очки = К * Шаги / Время, где К - какой-то коэффициент справедливости (чтобы больно уж тупые и шустрые кони не побеждали "дуриком" ).
Но, во-первых, некогда возиться. Во-вторых, интерес к игре как у меня, так, судя по всему, и у других участников, остыл...
Конечно, если действительно интересно, то пиши в мыло - обсудим.
__________________
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
игра с цветом ячеек amball DAX: Программирование 5 29.10.2007 17:48
Стоп игра при setConnection(); Sada DAX: Программирование 5 21.02.2007 17:05
Игра для программистов Ruff DAX: База знаний и проекты 4 09.02.2004 08:27
Введение в бухучет для программистов – источники. sguryev DAX: Программирование 0 25.12.2001 07:02

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 17:26 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.