Базар вокруг игры / Комп в помощь / Самое быстрое определение покерной комбинации
|
korovin
Re: Самое быстрое определение покерной комбинации [ID=24581] [ответ на 24521 ()]
Пт, 8 сентября 2006 00:01 [#]
|
Запись 2 байта - номер комбинации, а почему в оперативку не положиш? У меня 2 гига стоит, все влазит, только грузится долго.
|
|
YuDmAk
Re: Самое быстрое определение покерной комбинации [ID=24582] [ответ на 24521 ()]
Пт, 8 сентября 2006 00:17 [#]
|
все нормально, просто вариантов будет не 13^7 а поменьше, ведь комбинаций типа 'AAAAAxx' не существует, итого всего примерно 30 метров.
Я понял, что у тебя к каждой записи привязан ее статус (т.е. ее сила)
Но как по заданной комбинации ты формируешь адрес в памяти? Или деревом все сделано?
|
|
YuDmAk
Re: Самое быстрое определение покерной комбинации [ID=24583] [ответ на 24521 ()]
Пт, 8 сентября 2006 00:41 [#]
|
Все, я понял: это как 13-ричная система: переводим соответственно руку типа 'AAAAKKK' в десятиричную - и ее номер готов.
Причем соответствие взаимооднозначное. Угадал? У тебя также наверное.
|
|
grey
Re: Самое быстрое определение покерной комбинации [ID=24584] [ответ на 24521 ()]
Пт, 8 сентября 2006 04:17 [#]
|
Korovin писал | Запись 2 байта - номер комбинации, а почему в оперативку не положиш? У меня 2 гига стоит, все влазит, только грузится долго. |
Цитата: | Давай так, во сколько раз будет быстрее твоего, такая и цена в $ ок? | Давай так, во сколько раз будет меньше памяти использовать, такая и цена в $ ок?
|
|
ёжик
Re: Самое быстрое определение покерной комбинации [ID=24585] [ответ на 24521 ()]
Сб, 9 сентября 2006 10:49 [#]
|
YuDmAk, может уже пора в личку переходить ... ?!
|
|
Fabrica
Re: Самое быстрое определение покерной комбинации [ID=24586] [ответ на 24521 ()]
Сб, 9 сентября 2006 11:34 [#]
|
А зачем иметь массив 52^5?
Достаточно иметь 13^5=371293 элементов. Имеем пятерку карт, разделяем отдельно на масти и номиналы. Перемножаем масти (их всего 4). У флешей произведение мастей всех 5 карт=1^5, 2^5, 3^5, 4^5. Если произведение не равно этим константам, значит не флеш. По номиналам определяем все кроме флешей, стритфлешей и роялей. Т.е. определяем нет игры, ТК, пара и т.д. как ячейка в массиве М(а[1],a[2],a[3],a[4],a[5]). За одно обращение к массиву и одно произведение 5 чисел определяем силу руки.
|
|
korovin
Re: Самое быстрое определение покерной комбинации [ID=24587] [ответ на 24521 ()]
Сб, 9 сентября 2006 11:59 [#]
|
Цитата: | А зачем иметь массив 52^5? | Я тоже так считал, раньше. Но теперь то реализация такого массива - не проблема. Если цкоь - максимальная скорость, почему нет?
|
|
Fabrica
Re: Самое быстрое определение покерной комбинации [ID=24588] [ответ на 24521 ()]
Сб, 9 сентября 2006 12:51 [#]
|
Если цель скорость, то конечно лучше сразу взять силу пятерки.
Но тогда можно с диска считывать не 52-массив, а 13-массив, и расширить его уже внутри программы на 52-массив, добавив все флеши в 13-массив. Тогда сократится время на загрузку массива. Или вообще переписать 13-массив в двоичном виде и подгрузить его в текст проги, и он будет ВСЕГДА сразу в проге , а после загрузки уже расширить его.
Хотя возможно проще считать массив с диска, чем проходить кучу циклов внутри программы.
|
|
korovin
Re: Самое быстрое определение покерной комбинации [ID=24589] [ответ на 24521 ()]
Сб, 9 сентября 2006 13:11 [#]
|
Меня 5-карточные руки интересуют как частный случай, так-что я сторонник всеже 13^n массивов. Однако я имел переписку с человеком, профессионально считающим МО игр для казино, который использует именно 52^5 массив, а 6-7 карточные руки определяет за 6 и 21 обращение к этому массиву. Дальше раскрывать чужие секреты считаю некорректным, а свои идеи я уже сформулировал.
|
|
grey
Re: Самое быстрое определение покерной комбинации [ID=24590] [ответ на 24521 ()]
Вт, 12 сентября 2006 11:44 [#]
|
Korovin писал | я имел переписку с человеком, профессионально считающим МО игр для казино | Долго думал IMHO профессионализм -- это не возможность получать деньги за свой труд (на поверку это просто умение или случай оказаться "в нужном месте и в нужное время"), а способность делать свое дело так, как мало кто может...
|
|
xRaven
Re: Самое быстрое определение покерной комбинации [ID=24591] [ответ на 24521 ()]
Вт, 12 сентября 2006 16:52 [#]
|
Цитата: | Долго думал IMHO профессионализм -- это не возможность получать деньги за свой труд (на поверку это просто умение или случай оказаться "в нужном месте и в нужное время"), а способность делать свое дело так, как мало кто может... | <div align="left">Рано или поздно до твоего уровня дорастут другие. Делать так, как мало кто может возможно только постоянно придумывая либо новые методы счета, либо сами обьекты этого счета(ИМХО
С нынешним темпом развития техники потребность в программный оптимизации отпадает. Можно будет просчитывать полным перебором с приемлимой скоростью, техника позволит.
Надеюсь человечество придумает что-то ещё более сложное и гем..ое сегодняшним клубным и казиношным играм, оно это умеет
Для определения статусности комбинации лично использую 52^5 и 13^(3-7) массива одновременно. К сожалению Дельфи не позволил создать 52^(5-6),чтобы позволило бы не вычленять масти вовсе</div>
|
|
grey
Re: Самое быстрое определение покерной комбинации [ID=24592] [ответ на 24521 ()]
Вт, 12 сентября 2006 17:30 [#]
|
Так ты и есть тот самый профессионал?
|
|
xRaven
Re: Самое быстрое определение покерной комбинации [ID=24593] [ответ на 24521 ()]
Вт, 12 сентября 2006 18:12 [#]
|
Вряд ли. Просто хорошо знаю тему. Есть люди более профессиональных чем я
|
|
KID
Re: Самое быстрое определение покерной комбинации [ID=24594] [ответ на 24521 ()]
Ср, 13 сентября 2006 15:50 [#]
|
YuDmAk писал пт, 08 сентября 2006 01:41 | Все, я понял: это как 13-ричная система: переводим соответственно руку типа 'AAAAKKK' в десятиричную - и ее номер готов.
Причем соответствие взаимооднозначное. Угадал? У тебя также наверное. | А масти куда деть? Проще наверно по два разряда на карту использовать.
|
|
Blitz
Re: Самое быстрое определение покерной комбинации [ID=24661] [ответ на 24521 ()]
Пн, 25 сентября 2006 21:48 [#]
|
Sharky писал чт, 07 сентября 2006 18:33 | Коровин где-то писал, что обмен 5 у него 2 сек на его супер компе. У меня все обмены и +1 карта -- 2,3 сек на моем компе с меньшей частотой в 2 раза. Запускал демку Блица, и засекал секундомером на мобилке его скорость перебора в районе 6-7 секунд против моих 2,3. | Шарки, а у тебя какая конфигурация копьютера? Такая скорость напоминает мне Р-III. Или ты имел ввиду тестовый точный движок? Так это не в счет, на то он и "тестовый"... Сравнивать нужно с коммерческой версией, но боюсь, что опять начнется баян про "скорость" и "точность".
Какие, кстати, современные достижения по скорости обсчета "пятака"?
Блиц.
|
|
Sharky
Re: Самое быстрое определение покерной комбинации [ID=24662] [ответ на 24521 ()]
Пн, 25 сентября 2006 22:10 [#]
|
Blitz писал пн, 25 сентября 2006 21:48 | Шарки, а у тебя какая конфигурация копьютера? Такая скорость напоминает мне Р-III. Или ты имел ввиду тестовый точный движок? Так это не в счет, на то он и "тестовый"... Сравнивать нужно с коммерческой версией, но боюсь, что опять начнется баян про "скорость" и "точность".
Какие, кстати, современные достижения по скорости обсчета "пятака"?
Блиц. | AMD Athlon XP 2000+
1,67 ГГц, 512 МБ
Замерял тестовый точный для всех обменов.. в демке вроде нет выбора..
По достижениям скорости, все нужно мерить на одном компе...
|
|
Blitz
Re: Самое быстрое определение покерной комбинации [ID=24663] [ответ на 24521 ()]
Пн, 25 сентября 2006 22:31 [#]
|
Sharky писал вт, 26 сентября 2006 00:10 | По достижениям скорости, все нужно мерить на одном компе... | Кто готов предоставить эталонный комп?
Блиц.
|
|
grey
Re: Самое быстрое определение покерной комбинации [ID=24664] [ответ на 24521 ()]
Вт, 26 сентября 2006 04:05 [#]
|
Sharky писал | По достижениям скорости, все нужно мерить на одном компе... | IMHO, скорость практически линейно зависит от тактовой частоты CPU, размер памяти не имеет значения. Ну если только вашей проге не требуется 2 гига мозгов...
|
|
Mariner
Re: Самое быстрое определение покерной комбинации [ID=24666] [ответ на 24521 ()]
Вт, 26 сентября 2006 05:05 [#]
|
Приветствую!
2 Blitz
Blitz писал вт, 26 сентября 2006 01:31 | Sharky писал вт, 26 сентября 2006 00:10 | По достижениям скорости, все нужно мерить на одном компе... | Кто готов предоставить эталонный комп?
Блиц. | Скоро должен прийтие сервер на Xeon. Вот на нем можно будет и померить.
|
|
Sharky
Re: Самое быстрое определение покерной комбинации [ID=24667] [ответ на 24521 ()]
Вт, 26 сентября 2006 05:28 [#]
|
Grey писал вт, 26 сентября 2006 04:05 | Sharky писал | По достижениям скорости, все нужно мерить на одном компе... | IMHO, скорость практически линейно зависит от тактовой частоты CPU, размер памяти не имеет значения. Ну если только вашей проге не требуется 2 гига мозгов... | У меня постоянно висят какие-то сервисы жрущие ресурсы в том числе процессорные, такие как фаервол, антивирус, БД и т.д. Плюс постоянно подключен к Lan, где постоянно шныряют броуткасты. Поэтому даже на таком же железе, но на другом компьютере скорость будет разниться. Поэтому для чистоты эксперимента нужно тестировать все проги на одной машине, а лучше на 2,3 и т.п. Только зачем это все и кому это нужно на самом деле?
|
|
|