/
evsyukov.s
/
DiceGame
Обзор
Документация
Войти
/
evsyukov.s
/
DiceGame
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
src/DicePoker.Core/Models/HandRank.cs
47 строк
2 KB
evsyukov.s
Декомпозиция файла Program.cs
20 дек 2025, 02:54
20 дек 2025, 02:54
56ab8a4
Код
Авторство
О чём код?
namespace DicePoker.Core.Models { /// <summary> /// Перечисление всех возможных покерных комбинаций (категорий рук). /// Значения указаны в порядке возрастания старшинства комбинаций. /// </summary> public enum HandCategory { /// <summary>Старшая карта (самая слабая комбинация)</summary> HighCard = 1, /// <summary>Одна пара костей</summary> Pair = 2, /// <summary>Две пары костей</summary> TwoPair = 3, /// <summary>Три кости одного значения</summary> ThreeOfAKind = 4, /// <summary>Последовательность пяти костей (1-2-3-4-5 или 2-3-4-5-6)</summary> Straight = 5, /// <summary>Три кости одного значения и две кости другого значения</summary> FullHouse = 6, /// <summary>Четыре кости одного значения</summary> FourOfAKind = 7, /// <summary>Пять костей одного значения (самая сильная комбинация)</summary> FiveOfAKind = 8 } /// <summary> /// Запись, представляющая рейтинг (ранг) покерной комбинации. /// Содержит информацию о категории комбинации, ключевых значениях и кикерах. /// Используется для сравнения и подсчета очков игроков. /// </summary> public sealed record HandRank( HandCategory Category, int Primary, int Secondary, int[] Kickers) { /// <summary> /// Функция, вычисляет числовое значение комбинации для сравнения и подсчета очков. /// Используется формула: (категория × 1,000,000) + (основное × 10,000) + (вторичное × 100) + сумма кикеров. /// </summary> public int ScoreValue => ((int)Category * 1_000_000) + (Primary * 10_000) + (Secondary * 100) + Kickers.Sum(); } }