Последние записи
- Преобразовать массив байт в вещественное число (single)
- TChromium (CEF3), сохранение изображений
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
2nd
Фев
Программный подсчёт комбинаций и вероятностей в покере, создание покер бота
Posted by admin under c/c++, Общалка
Как создать покер рум, как сделать для него бота, начало работы над этим рассмотрим в этом посте.
На форуме уже ни одна тема была по созданию бота для покер рума, также в разделе win api на форуме — Работа с покер-румом. И даже выкладывались наработки, например, покера с костями. Все актуальные и более релевантные темы можно посмотреть через google — site:programmersforum.ru покер. Всё это и многое другое, например — игровые автоматы, делается для многих и многих онлайн казино на просторах интернета.
В начале работы с колодой карт в покере, вероятно, сначала стоит рассмотреть все комбинации в покере dixonich предлагает массив cards[52] .
dixonich:
собственно есть массив
cards[52] = {21,31,41,…,144}
последняя цифра — масть. это колода.
нужно осуществить проверку комбинаций. какие есть варианты, кроме 1000 ифов? ))
veniside предлагает решение:
veniside:
Вот, меня хватило только до Straight, но идея, думаю, понятна.
struct card {
int v; // 2=2, 3=3, ... 11=J, 12=Q, 13=K, 14=A
int suit; // 1=clubs, 2=spades, 3=hearts, 4=diamonds
};struct deck {
int count; // number of cards
card set[52]; // cards
};void sort(deck &d, bool byV) // bubble sort (by Value or by Suit)
{
bool sorted = false;
while (!sorted) {
//
int i = 0;
sorted = true;
while (i < d.count - 1) { // bool gt = byV ? d.set.v > d.set.v : d.set.suit > d.set.suit;
if (gt) {
//
sorted = false;
card tmp = d.set;
d.set = d.set;
d.set = tmp;
}
i++;
}
}
}int longrun(deck &d, int &second)
{
sort(d, true); // sort by value
//
second = 0;
int first = 1, current = 1;
//
int v = d.set[0].v;
int i = 0;
while (i++ < d.count - 1) { // if (v == d.set.v) current++; else { // if (current > first)
first = current;
if ((current < first) && (current > second))
second = current;
//
current = 1;
v = d.set.v;
}
}
if (current > first)
first = current;
if ((current < first) && (current > second))
second = current;
//
return first;
}bool Straight(deck &d, bool Flush)
{
sort(d, true); // sort by value
//
// check if values are increasing & all suits are same
int v = d.set[0].v;
int s = d.set[0].suit;
int i = 0;
while (i++ < d.count - 1) {
//
if ( (d.set.v != d.set[i-1].v + 1) || (Flush & (d.set.suit != s)) )
return false;
}
//
return true;
}bool RoyalFlush(deck &d)
{
if (Straight(d, true))
return (10 == d.set[0].v);
else
return false;
}bool FourOfAKind(deck &d)
{
int s;
return (4 == longrun(d, s));
}bool FullHouse(deck &d)
{
int f, s;
f = longrun(d, s);
return ((3 == f) && (2 == s));
}bool Flush(deck &d)
{
sort(d, false); // sort by suit
int s = d.set[0].suit;
int i = 0;
while (i++ < d.count - 1) {
//
if ( d.set.suit != s )
return false;
}
return true;
}
Использовать примерно так:
deck hand;
hand.count = 5;
hand.set[0].v = 10;
hand.set[0].suit = 1;
hand.set[1].v = 10;
hand.set[1].suit = 2;
hand.set[2].v = 9;
hand.set[2].suit = 1;
hand.set[3].v = 9;
hand.set[3].suit = 3;
hand.set[4].v = 9;
hand.set[4].suit = 2;
//
bool rf = RoyalFlush(hand); // Royal Flush
bool sf = Straight(hand, true); // Straight Flush
bool foak = FourOfAKind(hand); // Four Of A Kind
bool fh = FullHouse(hand); // FullHouse
bool f = Flush(hand); // Flush
bool s = Straight(hand, false); // Straight
Подробнее в теме на форуме — Проверка комбинаций в покере.
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)