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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2009, 08:21   #61
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Вот вообще явное несоответствие. Рандомный бот победил DIEGO.
Кстати, если задать количество игр 8000-10000, то рандом почти всегда всех побеждает, кроме LLFerzBot. (этого я просто не дождался).

В принципе, конечно хотелось бы иметь заморочки со временем. Ну как то тогда присутствует стимул оптимизировать алгоритм. Я вот, к примеру, своего тактика переписывал уже один раз, именно с целью оптимизации по скорости (и ещё есть парочка идей, как его быстрее сделать).
Изображения
Тип файла: jpg 222.JPG (28.7 Кб, 113 просмотров)
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 07.01.2009, 17:07   #62
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от Alar Посмотреть сообщение
Ulex, согласен, зачем нужны эти заморочки со временем?
она нужна чтобы исключить ситуации, когда происходит групый перебор всех возможных вариантов.
Формула вычисления очков не окончательная я как раз ждал тесты и мнения. Формулу изменю.

Цитата:
Сообщение от Ulex Посмотреть сообщение
P.S.
Может быть я конечно чего-нибудь с переменными напутал. Но я их понял так:
MaxGameTime - максимальное время игры. ==300000
TotalGameCount - Общее количество проведённых игр
aPlayerTime - время, потраченное ботом на все игры
WinCount - количество побед бота.
ты всё правильно понял.

Цитата:
Сообщение от Ulex Посмотреть сообщение
Например:
Бот N1 выиграл 48 игр из 100 и потратил на это 48 мс.
Бот N2 выиграл 52 игры из 100 и потратил на это 13000 мс.
Ulex, сам подумай, если всего 100 игр и 48 против 52 - это ничья.
rpy3uH вне форума Ответить с цитированием
Старый 08.01.2009, 02:04   #63
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Цитата:
Ulex, сам подумай, если всего 100 игр и 48 против 52 - это ничья.
Не согласен, ведь первый в 270 раз быстрее второго. Руководствуясь просто своим субъективным мнением, я бы отдал победу первому. А по формуле он проиграл (хотя и совсем немного).

Есть мнение. Надо формулу сделать как-то аппаратно независимой. Сейчас на разных компьютерах боты будут набирать разное количество баллов (на медленной машине меньшее количество). Вот если бы в формулу заложить не само время раздумий бота, а отношение этого времени ко времени противника. Или считать количество тактов (к примеру QueryPerformanceCounter). Кстати, на предыдущей версии (где время выводилось) рандомный бот всегда набирал 0 мс. , но ведь это не так, какое-то время он же всё равно тратил.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 08.01.2009, 09:59   #64
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

всё будет теститься на одной машине - Pentium 4 531 3 GHz.

Цитата:
Сообщение от Ulex Посмотреть сообщение
Не согласен, ведь первый в 270 раз быстрее второго. Руководствуясь просто своим субъективным мнением, я бы отдал победу первому. А по формуле он проиграл (хотя и совсем немного).
в текущей формуле нормализованное время
(MaxGameTime*TotalGameCount - aPlayerTime)
умножается примерно на 10 в случае когда игра одна
((WinCount+1)*10- 9)
а теперь пусть будет так
((WinCount+1)*20- 19)

В следующем билде будет такая формула
Result:= round(((MaxGameTime*TotalGameCount - aPlayerTime)*((WinCount+1)*20- 19))/(TotalGameCount*10));

Последний раз редактировалось rpy3uH; 08.01.2009 в 10:14.
rpy3uH вне форума Ответить с цитированием
Старый 08.01.2009, 11:06   #65
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

FERZ build 1043
Изменения в формуле вычисления очков.
Несколько небольших изменений внутри программы.
Вложения
Тип файла: zip FERZ1043.zip (550.5 Кб, 9 просмотров)
rpy3uH вне форума Ответить с цитированием
Старый 09.01.2009, 09:04   #66
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Неопределённость осталась.

Произведено 200 игр
Белые (DIEGO v1.0) победили 105 раз
Чёрные (UlexBot (Taktik 1.1)) победили 95 раз
Белые (DIEGO v1.0) ошиблись 0 раз
Чёрные (UlexBot (Taktik 1.1)) ошиблись 0 раз
Ничья 4 раз
------
DIEGO v1.0 (белые) баллы 752754
UlexBot (Taktik 1.1) (чёрные) баллы 1195301
UlexBot (Taktik 1.1) победа по очкам

Произведено 200 игр
Белые (DIEGO v1.0) победили 95 раз
Чёрные (UlexBot (Taktik 1.1)) победили 105 раз
Белые (DIEGO v1.0) ошиблись 0 раз
Чёрные (UlexBot (Taktik 1.1)) ошиблись 0 раз
Ничья 2 раз
------
DIEGO v1.0 (белые) баллы 1195216
UlexBot (Taktik 1.1) (чёрные) баллы 752837
DIEGO v1.0 победа по очкам


Я вроде догадался, почему она есть.
Время скорее всего засекается чем-то наподвид GetTickCount, дискретность у которого 1 мс. А что будет, если соревнуются два скоростных бота, которые партию разыгрывают каждый менее чем за 1 мс ?
И ещё вопрос, а ничьи куда считаются?

И вот картинки, которые выдавал FERZ 1040 (играют двое DIEGO м/у собой) несколько партий подряд.
Изображения
Тип файла: jpg 333.JPG (13.5 Кб, 102 просмотров)
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru

Последний раз редактировалось Ulex; 09.01.2009 в 09:39.
Ulex вне форума Ответить с цитированием
Старый 09.01.2009, 13:49   #67
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

да время считается через GetTickCount. Когда время слишком маленькое, эта функция даёт разные результаты.
Сейчас я работаю над своим ботом и уже он думает дольше чем LLFerzBot.
Ничьи никуда не считаются
rpy3uH вне форума Ответить с цитированием
Старый 09.01.2009, 14:05   #68
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

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

Все предыдущие картинки были получены на Celeron_e (~1300 МГц), а если будет пень 4 на 3GHz, да ещё и несколькоголовый, то вообще сплошная рулетка.

Может всё-таки попробовать QueryPerformanceCounter ?
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 09.01.2009, 14:20   #69
Роман Радер
Форумчанин
 
Аватар для Роман Радер
 
Регистрация: 16.12.2006
Сообщений: 859
По умолчанию

Могу помочь с тестированием на моем ноуте. у него 400 MHz (пентиум!) и 128 оперативки. для тестов - самое оно.
PS да, там еще винчестер на 6 гигабайт. но это неважно в данном случае.
Роман Радер вне форума Ответить с цитированием
Старый 09.01.2009, 14:26   #70
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от Ulex Посмотреть сообщение
Все предыдущие картинки были получены на Celeron_e (~1300 МГц), а если будет пень 4 на 3GHz, да ещё и несколькоголовый, то вообще сплошная рулетка.
Может всё-таки попробовать QueryPerformanceCounter ?
ну ладно сделаю через QueryPerformanceCounter. Я всё буду тестить как раз на Pentium 4 3 GHz и 3 ГБ памяти.
rpy3uH вне форума Ответить с цитированием
Ответ


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



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