Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 16.02.2011, 22:13
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Зачем так сложно? Если вся соль в функции, возвращающей комбинацию по N{2..7} картам - подождите полчаса, сейчас сделаем
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #17  
Старый 16.02.2011, 23:09
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Ну как я понял, нужно не сохранить (перебрать все возможные варианты) а была нужна функция которая по 5 картам скажет - что это за комбинация.
А уже саму функцию можно использовать для отбора лучших комбинаций...

30754167347537682B6558734950587735653067372B377037 4F58342F4344333875346739653733356649672F664C753869 4441796A4D774D4441704B536B70494F5878362B6767392B58 7837536B704B536B3D

Последний раз редактировалось Konrad, 17.02.2011 в 00:39.
Ответить с цитированием
  #18  
Старый 17.02.2011, 10:32
ak3000 ak3000 вне форума
Прохожий
 
Регистрация: 14.02.2011
Сообщения: 13
Репутация: 10
По умолчанию

По поводу букв либо названий комбинаций, то лучше сделать как у меня было:
1 - флэш рояль
2 - стрейт флэш
3 - каре
4 - фул хаус
5 - флэш
6 - стрэйт
7 - сет
8 - две пары
9 - пара
0 - ничего

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

DJ PhoeniX, покажи нам мастер-класс.
Konrad, ты как-то сложно выразился. Проще говоря нужна функция которой на вход дается 5 карт (а лучше 7, но это сложнее). И не от 2-х до 7, это совсем не нужно. Либо 5 либо 7. Это я там в своем примере заморачивался и сделал универсально, так совсем не обязательно. Так вот на вход ей допустим передаем 7 карт, а на выходе получаем строку с комбинацией. Вот и все что нужно пока.

Последний раз редактировалось ak3000, 17.02.2011 в 10:45.
Ответить с цитированием
  #19  
Старый 17.02.2011, 11:16
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Цитата:
Сообщение от ak3000
По поводу букв либо названий комбинаций, то лучше сделать как у меня было:
Так что мешает мой код подправить?
сделать s:integer;
Что-то терзает меня смутное сомнение что знаний не хватает сделать?)))))
Если так ======================>>>>>>>>>>>>>>>>раздел работа.

Цитата:
Сообщение от ak3000
Konrad, ты как-то сложно выразился.

Такс-с... проясним ситуацию)
Я написал так сложно потому что нужна была скорость.
Сравни время выполнения моего варианта со своим.

Я же справшивал - как нужно: 1 2 3...

Да, согласен, когда писал использовал довольно сложную теорию.

Цитата:
Сообщение от ak3000
Проще говоря нужна функция которой на вход дается 5 карт (а лучше 7, но это сложнее).
У меня так и реализовано.
К1,К2,К3,К4,К5 - иесть те 5 карт.

на выходе - получаем результат.

Последний раз редактировалось Konrad, 17.02.2011 в 11:34.
Ответить с цитированием
  #20  
Старый 17.02.2011, 13:03
ak3000 ak3000 вне форума
Прохожий
 
Регистрация: 14.02.2011
Сообщения: 13
Репутация: 10
По умолчанию

Твой код я то могу подправить, не проблема конечно.

Но у тебя пока что недоделанная функция, она возвращает пока только название старшей комбинации.
Ответить с цитированием
  #21  
Старый 17.02.2011, 13:36
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Цитата:
Сообщение от ak3000
Но у тебя пока что недоделанная функция, она возвращает пока только название старшей комбинации.
Я реализовал то что видно на рисунках.

А изучать
32 урока по Poker
39 статьи по Poker
ActiveX в Poker
Poker 2005 Секреты
Poker 2006 - Справочное пособие
Poker 6/7 базы данных и приложения
Poker 7: Для профессионалов
Poker Russian Knowledge Base
Poker и технология COM
Poker на примерах

особого желания нету.


Напиши что не так - будет видно...
Ответить с цитированием
  #22  
Старый 17.02.2011, 14:30
ak3000 ak3000 вне форума
Прохожий
 
Регистрация: 14.02.2011
Сообщения: 13
Репутация: 10
По умолчанию

Еще раз, задача состоит в том чтобы определить чья комбинация из присутствующих игроков сильнее! Если мы просто определяем что у 1-ый собрал пару, 2-ой тоже пару, и 3-ий игрок тоже собрал пару, то мы еще ничего не можем сказать о том кто победил, а кто нет. Я ведь пример приводил что возвращает моя программа. Поэтому, нужно определить не только что у него например "пара" или "сет" или "флэш", а нужно еще определить пара чего, например пара королей. Если собран флэш то нужно перечислить все 5 карт по старшенству упорядоченные, которые в него входят. Если это стрит то нужно указать старшую карту в этой комбинации, это раз. Далее, если мы указали еще не все 5 карт (т.к. комбинация в покере ВСЕГДА состоит из 5 карт), то их нужно указать. Например если у нас есть пара королей, функция возвращает "9КАQJ" - что означает что у нас есть пара (9) королей (К) и оставшиеся 3 карты старшие это туз (A) дама (Q) и валет (J). Если у нас собрался стрэйт, то мы просто возвращаем "6J" - т.е. 6 - указывает на то что собран стрэйт, а J - это старшая карта, таким образом нашей комбинацией является JT987, а зашифрована она в виде "6J".
Ответить с цитированием
  #23  
Старый 17.02.2011, 14:41
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

А завтра посетит форум студент мехфака и будет просить сделать ему программу по термодинамике, где все как он говорит просто, вот берешь
"Замкнутая (обменивается с термостатом только теплом) система — минимум свободной энергии.
Система с фиксированными температурой и давлением — минимум потенциала Гиббса......"
Но если термодинамику я еще могу почитать, так как возможно когда-то пригодится, то на какой нужен мне покер?

Для тебя очевидно что тройка того и пара то - мега комбинация, для меня все оно одино и то же.

А потому - составление ТЗ(технического задания) в виде - "та там вот мне нужно ну вот там такое ну как оно типа к=карта там ну оно же тут все просто" приводит к неожиданним порследствиям)
Ладно)

Последний раз редактировалось Konrad, 17.02.2011 в 14:44.
Ответить с цитированием
  #24  
Старый 17.02.2011, 14:55
ak3000 ak3000 вне форума
Прохожий
 
Регистрация: 14.02.2011
Сообщения: 13
Репутация: 10
По умолчанию

Цитата:
Но если термодинамику я еще могу почитать, так как возможно когда-то пригодится, то на какой нужен мне покер?
Термодинамику я кстати тоже могу понять. ) В покер можно играть ради удовольствия, точно так же как и в любую другую игру. )

Я не знаю почему возникло такое непонимание, мне казалось что я все довольно понятно объясняю.

Последний раз редактировалось ak3000, 17.02.2011 в 15:21.
Ответить с цитированием
  #25  
Старый 22.02.2011, 12:54
ak3000 ak3000 вне форума
Прохожий
 
Регистрация: 14.02.2011
Сообщения: 13
Репутация: 10
По умолчанию

Так ни у кого ничего и не получилось?
Ответить с цитированием
  #26  
Старый 24.02.2011, 14:52
ak3000 ak3000 вне форума
Прохожий
 
Регистрация: 14.02.2011
Сообщения: 13
Репутация: 10
По умолчанию

Ура, товарищи, ура! Я нашел в чем ошибка у меня была. Теперь все работает как надо.
Ответить с цитированием
  #27  
Старый 04.04.2011, 11:41
shaposh shaposh вне форума
Прохожий
 
Регистрация: 04.04.2011
Сообщения: 3
Репутация: 10
По умолчанию

Занимался аналогичным алгоритмом. И написал ну как то совсем по другому. Отсюда возник вопросик: а какую итоговую скорость Вы получили... Ну например за сколько времени получаются оценки всех возможных рук для Холдема (ну то есть для выборки 7 карт из 52). Ну или сколько раз в миллисекунду отрабатывает процедура (с характеристиками железа на котором оно отрабатывает, если можно)
Ответить с цитированием
  #28  
Старый 04.04.2011, 13:43
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Цитата:
Сообщение от shaposh
.................
Код тут приведен целяком.
Так что запускай и смотри на время.
Ответить с цитированием
  #29  
Старый 04.04.2011, 16:51
shaposh shaposh вне форума
Прохожий
 
Регистрация: 04.04.2011
Сообщения: 3
Репутация: 10
По умолчанию Производительность Вашего алгоритма

Да посмотрел я ваш код....
И что-то мне подсказывает что с производительностью всё плохо.
То есть совсем.
Именно поэтому нигде не опубликованы результаты этой производительности.

Ну результаты простейших тестов то есть:
1. Дро-покер, Определение старшинства всех возможных комбинаций
5 из 52, всего комбинаций: 2 598 960.

2. Холдем. Определение старшинства всех возможных комбинаций
7 из 52, всего комбинаций: 130 254 000:

3. Холдем, определение вероятности победы конкретной руки в сравнении со всеми остальными возможными: (например Туз пик, Туз треф против всех возможных сочетаний оставшихся карт). Возможных комбинаций 2 097 572 400

Есть подобные результаты?
Ответить с цитированием
  #30  
Старый 04.04.2011, 16:54
shaposh shaposh вне форума
Прохожий
 
Регистрация: 04.04.2011
Сообщения: 3
Репутация: 10
По умолчанию Производительность алгоритма

Ну или на худой конец количество рук которые алгоритм оценивает в секунду?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:09.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter