Старый параноик
Сообщения: 2423
Благодарности: 85
|
Профиль
|
Отправить PM
| Цитировать
Проверку на флеш делаем очень быструю, без массивов.
Флеш - это когда K[0]%4 == k[1]%4 == k[2]%4 == k[3]%4 == k[4]%4
% - остаток от деления
== - равно
Сорри за мой С :-Р
Поверки по номиналам даём с использованием промежуточного массива.
1. Делаем пустой масив номиналов S размером от 0(двойка) до 12 (туз), итого 13 элементов.
2. Инициализируем его нулями - это счётчики встреч
3. Для каждой карты K из массива k[0..4](пять карт) увеличиваем счётчик номинала.
для i от 0 до 4
счётчик[K[i]/4] ++
/ - целочисленое деление
++ - увеличение на 1.
Далее сортируем массив S (счётчиков номинала по возрастанию) и проверяем результат:
1. если первый элемент стал 4 - "каре".
2. если первый элемент стал 3:
2а. если второй элемент равен 2 - "полный дом".
2б. если второй элемент равен 0 или 1 - "тройка"
3. если первый елемент равен 2:
3а. если второй элемент равен 2 - "две пары".
3б. если второй элемент равен 0 или 1 - "пара"
Комбинации "туз" и "стрит-флеш" тоже легко вычисляются.
Осталось только расписать "сортируем массив счётчиков" - это простая пузырьковая сортировка, например. Или чего-нибудь продвинутое :]
|
Отправлено: 12:29, 18-04-2005
| #5
|