Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
8 / 8 / 4
Регистрация: 23.07.2012
Сообщений: 261
1

Написать программу для определения покерной комбинации из 7 карт

28.07.2014, 22:24. Показов 5220. Ответов 25
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Появилась необходимость написать программу для определения покерной комбинации из 7 карт. Емеем:


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
string card1 = ""; // "2","3","4","5","6","7","8","9","T","J","K","Q","A"
string card2 = "";
string card3 = "";
string card4 = "";
string card5 = "";
string card6 = "";
string card7 = "";
 
string card1mast = ""; // "buba", "chirva", "pika", "krest"
string card2mast = "";
string card3mast = "";
string card4mast = "";
string card5mast = "";
string card6mast = "";
string card7mast = "";
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.07.2014, 22:24
Ответы с готовыми решениями:

Можно ли написать программу для нажатия комбинации CTRL+X?
В общем нужна программа чтобы нажимала сочетание клавиш CTRL и X много раз, допустим после нажатия...

Можно ли написать программу для нажатия комбинации CTRL+X?
В общем нужна программа чтобы нажимала сочетание клавиш CTRL и X много раз, допустим после нажатия...

Написать программу для определения вида треугольников
Написать программу для определения вида треугольников (прямоугольный, равносторонний,...

Написать программу для определения места символа
Задана строка символов и отдельный символ. Определить на каком месте в строке впервые встречается...

25
8 / 8 / 4
Регистрация: 23.07.2012
Сообщений: 261
02.08.2014, 15:46  [ТС] 21
Author24 — интернет-сервис помощи студентам
JudFai, спасибо ошибка исправилась. Сейчас попробую понять с какой стороны подойти.

Добавлено через 14 минут
JudFai, к сожалению не пойму как работать с вашим кодом
0
15 / 15 / 1
Регистрация: 05.04.2013
Сообщений: 94
02.08.2014, 17:11 22
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var comboOne = new Combination(
    new Card('A', 'h'), 
    new Card('K', 's'), 
    new Card('2', 'h'), 
    new Card('3', 'd'), 
    new Card('4', 'c'), 
    new Card('5', 'c'));
 
var comboTwo = new Combination(
    new Card('7', 'h'), 
    new Card('7', 's'), 
    new Card('7', 'c'),
     new Card('7', 'd'),
     new Card('T', 'c'),
     new Card('Q', 'c'));
 
    if (comboOne > comboTwo)
        Console.WriteLine(comboOne + " Win");
    else
        Console.WriteLine(comboTwo + " Win");
Добавлено через 18 минут
В комбинация есть свойство Precedence - старшинство среди комбинаций, то есть, если 1 - это FlashRoyal или FlushStraight, 2 - это FourOfKind, 3 - FullHouse и т.д. Вплоть до кикера, но я думаю, что в конструкторе Вы найдёте всё, что Вам нужно. Конечно, сейчас бы многие вещи я переделал, но это лирика.
1
8 / 8 / 4
Регистрация: 23.07.2012
Сообщений: 261
02.08.2014, 17:25  [ТС] 23
О спасибо.

C#
1
2
3
4
5
6
7
8
9
10
11
            var comboOne = new Combination(
            new Card('A', 'h'),
            new Card('K', 's'),
            new Card('2', 'h'),
            new Card('3', 'd'),
            new Card('4', 'c'),
            new Card('4', 'h'),
            new Card('A', 'c'));
 
 
            Console.WriteLine(comboOne.Name);
Добавлено через 1 минуту
Так получил название комбинации.

Было бы неплохо получить всё комбинацию из 5ти карт комбинация + кикер(ы)
0
15 / 15 / 1
Регистрация: 05.04.2013
Сообщений: 94
02.08.2014, 17:48 24
Свойство Priority показывает старшинство среди комбинации, то есть если это FullHouse, то он вернёт 3-х или 4-х значное число xxyy, где xx - это старшинство среди тройки, а yy - старшинство среди пар. Среди 2-х пар число может быть до 5-6-ти знаков, то есть будет как-то так: xxyyzz, где xx - первая пара, yy- вторая, zz - кикер. Если одна пара, то 7-8 знаков, а если кикер, то до 9-10. Всё это парсится с помощью регулярки. Так сделано потому, что в покере комбинация состоит из 5-ти карт, если это техасский холдем, конечно.
1
8 / 8 / 4
Регистрация: 23.07.2012
Сообщений: 261
02.08.2014, 18:20  [ТС] 25
Цитата Сообщение от JudFai Посмотреть сообщение
Всё это парсится с помощью регулярки
вот тут по подробней. Что такое парсер текста вроде понятие имею небольшое. А вот что за регулярка?

Добавлено через 5 минут
думаю понимаю примерно что вы имеете ввиду. Думаю моя задача на данный момент почти решена. Пока не разберусь лучше в языке буду использовать ваш код. После попробую написать свой.

Добавлено через 9 минут
Почему сказал почти решена. Есть необходимость добавить в список комбинаций несколько дро комбинаций.
0
15 / 15 / 1
Регистрация: 05.04.2013
Сообщений: 94
02.08.2014, 18:47 26
Лучший ответ Сообщение было отмечено riotel как решение

Решение

Нет, я ошибся, с помощью регулярных выражений это не получится, но есть масса вариантов, как это сделать:
1) Делить с остатком. Если у нас есть две пары, то делить надо на 10000. Например: если priority: 20306, то с делением получим 306, если ещё разделить на 100, то получим 6. 6 - это кикер, 3 - это вторая пара, 2 - это третья пара
2) Можно использовать Substring, но это более грубый вариант, который приведёт к куче проверок.

Добавлено через 3 минуты
Дро - это уже совсем другая история.
1
02.08.2014, 18:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.08.2014, 18:47
Помогаю со студенческими работами здесь

Помогите написать программу для определения анаграмм!
Вводятся две строки, нужно определить является ли первая строка анаграммой второй. Я ее написал но...

Написать программу для определения заданной величины
Ребят, нужно оконное приложение "В массиве Р (12) записаны показатели предприятия по месяцам года....

Написать программу для определения знака числа
Написать программу для сравнения 2-х чисел, что бы она определяла 0, положительное, отрицательное....

Написать программу для определения пренадлежнасти точки
Помогите написать программу Даны координаты точки М(х,у). Определить, принадлежит ли данная...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru