Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2009, 17:39   #81
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от pol1k Посмотреть сообщение
Когда я играю с вашими ботами. Причем ошибки именно при моем ходе, а не ходе бота.
странно. буду проверять и тестить
rpy3uH вне форума Ответить с цитированием
Старый 13.01.2009, 21:08   #82
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Что-то у меня последний бот какой-то странный получился.
Обыгрывает DIEGO 1.0 и остальных всех моих ботов (иногда даже в 10 раз). А вот с LLFerzBot 1.0 играет хуже всех. Видать моя тактика себя исчерпала . Кстати, что-то больше никто не пишет ни про какие успехи, а было бы интересно узнать, как у кого дела обстоят?
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 14.01.2009, 09:25   #83
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

До сдачи ботов осталось 16 дней!
у кого какие успехи? Кто-нибудь кроме Ulex может рассказать о своих успехах?
rpy3uH вне форума Ответить с цитированием
Старый 16.01.2009, 19:16   #84
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

rpy3uH, мне кажется, что ничьих быть не должно!
Вот смотри, допустим я играю белыми, оппонент - чёрный.
Если я пошёл и у меня нет больше ходов а у соперника есть, то я проигрываю? А если негр делает ход и у меня с ново ходы появятся? Или у негра тоже ходов нет? Должен проиграть тот, кто должен ходить и не может. А в таком ситуэйшене ничьих быть не должно!
Какие у тебя условия выигрыша/поражения?
----
На счёт бота? Я к февралю врятли успею. Да и зачем, если всего один участник? Я свою оболочку сделаю, игровую, а потом ха бота возьмусь...

Последний раз редактировалось Alar; 17.01.2009 в 12:08. Причина: цензура
Altera вне форума Ответить с цитированием
Старый 16.01.2009, 19:48   #85
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Когда надо идти белым и им ходить не куда, сразу же проверяется есть ли ходы у чёрных, если у чёрных нет ходов, то ничья, если чёрных есть ходы, то белые проиграли.
В случае когда надо ходить чёрным, и им не куда ходить, то ни проиграли в любом случае, даже если белым ходить не куда.
Это надо чтобы уравнить шансы чёрных и белых.
rpy3uH вне форума Ответить с цитированием
Старый 20.01.2009, 16:27   #86
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Конкурс официально продлён до 1 марта.
rpy3uH вне форума Ответить с цитированием
Старый 08.02.2009, 13:18   #87
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Ulex, в рандом боте ты что-то напортачил. На ноль делить пытется и иногда в бесконечный цикл вылетает при этом. поправь
Altera вне форума Ответить с цитированием
Старый 08.02.2009, 15:31   #88
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Деление на ноль в этом алгоритме возможно только лишь в том случае, если вы (точнее ваша оболочка) предлагаете боту выбирать варианты ходов, когда их нет. По моему, платформа, на которой играют боты, не должна допускать такой ситуации.
Я сейчас примерно раз 10 по 10000 игр сыграл на платформе FERZ 1045 и ни разу такой ошибки не видел. Укажите, в каком случае она возникает ?
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 08.02.2009, 20:47   #89
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Цитата:
Сообщение от Ulex Посмотреть сообщение
Деление н... ...каком случае она возникает ?
Да, ты прав... Нашёл у себя ошибку. Теперь нормально стало.
Но у меня другая проблема, почему-то с LLFerzBot-ом не хочет играть. Он вообще, даже начальную позицию не выбирает...
Это к rpy3uH-у вопрос будет.
Процедура вызова:

© Atomik QueenBattles™ 2008-2009.

Код:
function Tfield_form.botSelectPosition: tStepResult;
var
desk: array[1..8, 1..8] of DWORD;
beginPositions: array [1..8] of tBeginPositions;
td: DWORD;
AGI: TAdditionalGameInfo;
cx, cy, cq: shortInt;
begin
   for cq := 1 to 8 do
   begin
      beginPositions[cq].x := 0;
      beginPositions[cq].y := 0;
   end;

   cq := 1;
   for cx := 1 to 8 do
      for cy := 1 to 8 do
      begin
         case fieldArray[cx, cy].state of
         stClear: td := $00000000;
         stWhite: td := $00000200;
         stBlack: td := $00000201;
         stWall: td := $00000100;
         end;
         desk[cx, cy] := td;
         if fieldArray[cx, cy].flag = flAllowedPos then
         begin
            beginPositions[cq].x := cx;
            beginPositions[cq].y := cy;
            inc(cq);
         end;
      end;

      AGI.LastOpponentStep := lastSelection.X shl 16 + lastSelection.Y;
      AGI.Reserved := 1;

   td := bots[bot[integer(curPlayer)]].GetBeginPosition(@desk,
      @beginPositions, integer(curPlayer) - 1, @AGI);

   result := selectStartPos(td shr 16, word(td));
end;
Ноль возвращает просто. Со всеми остальными ботами всё ОК. Я так думаю, что ошибка из-за того, что я в массиве всех возможных позиций сначала передаю координаты доступных клеток, а потом недоступные...

Последний раз редактировалось Altera; 08.02.2009 в 20:50.
Altera вне форума Ответить с цитированием
Старый 08.02.2009, 21:15   #90
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

читай внимательно документацию!
Цитата:
Если первый параметр (указатель на доску) равен нулю, то это обозначает начало игры, от бота не требуется никаких ответных действий и результат игнорируется.
Если первый параметр (указатель на доску) равен значению 0xFFFFFFFF, то это обозначает конец игры, от бота не требуется никаких ответных действий и результат игнорируется.
в начале надо вызывать выбор начальной позиции с указателем на доску равным нулю, а в конце 0xFFFFFFFF
rpy3uH вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конкурс программистов - призовой фонд 1 000 000 рублей Lnat Свободное общение 0 26.07.2008 12:15
конкурс программистов ! (первый конкурс) Alar Свободное общение 129 18.03.2007 00:50