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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.02.2011, 11:55
ak3000 ak3000 вне форума
Прохожий
 
Регистрация: 14.02.2011
Сообщения: 13
Репутация: 10
Сообщение Покер

По теме такой популярной игры, как покер, нужна помощь.

Мужики, помогите с элементарной вещью, наверняка у кого-то уже есть такой кусок кода, а если нет может кто все равно может помочь. Мне нужен правильный рабочий алгоритм, который будет определять старшую комбинацию из 7 карт (т.е. 2 карты которые на руках + 5 на board'е), но если у кого-то есть для 5 карт, тоже пойдет. Причем комбинация должна быть определена не просто скажем стрит, а стрит со старшей картой такой-то; если пара то пара чего и какие 3 остальные старшие карты, т.е. чтобы можно было сравнивать с комбинацией которая собралась у партнера. У меня такая процедурка уже написана, но что-то работает не правильно. Выяснил это очень просто: посчитал с помощью нее как стоит одна рука против другой (т.е. процент выйгрыша одной руки против другой) и сверил с pokerstove, получилось что значения немного расходятся, а иногда и не немного совсем.
Кодом программы могу поделится, если нужно, не вопрос.
Ответить с цитированием
  #2  
Старый 14.02.2011, 12:02
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Цитата:
Сообщение от ak3000
Мне нужен правильный рабочий алгоритм, который будет определять старшую комбинацию из 7 карт (т.е. 2 карты которые на руках + 5 на board'е), но если у кого-то есть для 5 карт, тоже пойдет.
Хоть опиши что оно такое.
Я вот например в покер не играл и не собираюсь начинать.
Но если будет описание, но сделать прогу не впорос.

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

Ок, сейчас поясню...
Вот ссылка например на то какие комбинации существуют:
http://www.pokerlistings.ru/poker-hand-ranking
Да, речь идет об обычном виде покера - техасский холдем.

Вот даже кое какой рабочий код (всю прогу скидывать наверное пока не буду, слишком сложно разобраться будет):
http://ak3000.by.ru/123.txt
Ответить с цитированием
  #4  
Старый 14.02.2011, 19:34
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Вобщем кое-как понял.

В проге что именно для вашего проекта критично?

1- Минимум памяти.
2- Минимум количесва операций.
3- Простота и понятность программы.

(можно выбрать только 1-но)

Ну или 4-е:
4- Та не важно, хоть как-то, лишь бы правильно работала.


П.с.: это все часть курсовой?) или дела куда серьезней?

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

Отлично!
В программе самое важное это скорость ее работы, т.к. потом нужно будет посчитать очень много значений вероятностей, как одна рука стоит против другой (т.е. к примеру AhKc vs QdJs), а потом 3-х мерную таблицу для 3-х игроков сразу (т.е. к примеру AhKc vs QdJs vs 9h7c). В первом случае AhKc 64.3% выиграет при вскрытии карт (соответственно в 35.7% QdJs выигрывает). А во втором случае AhKc имеет только 45.45% на победу, QdJs 31.14%, а 9h7c 23.42%. Эти значения можно посмотреть в простенькой бесплатной программе PokerStove, с ней я в конце и сверяюсь.

Нет, это не курсовая. Проект будет очень интересным я думаю, можно будет много чего научится считать вспомогательного, чтобы игра была эффективнее. На данном этапе я хочу написать программу которая будет "измерять удачу" грубо говоря. Ну а потом дальше буду думать, но это самое основное.

Да, кстати, там в файле не написано что такое MyArray1. Вот что я объявлял у себя выше:
type
MyArray1 = array[1..13] of byte;
MyArray2 = array[1..52] of boolean;
THand = record
Card1 : char;
Card2 : char;
Color1 : char;
Color2 : char;
end;

Последний раз редактировалось ak3000, 15.02.2011 в 08:54.
Ответить с цитированием
  #6  
Старый 15.02.2011, 09:18
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Хорошо,
до след понедельника, думаю, смогу написать программу.
Так как сейчас работы многовато
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter