1

Тема: Консольна програма "Покер" на С++

Задано 5 цілих чисел. Серед них:
якщо однакові 5, то вивести "Impossible",  інакше
якщо однакові 4, то вивести "Four of a Kind"I, інакше
якщо однакові 3 і 2, то вивести "Full House", інакше
якщо є 5 послідовних, то вивести "Straight", інакше
якщо однакові 3, то вивести "Three of a Kind", інакше
якщо однакові 2 і 2, то вивести "Two Pairs", інакше
якщо однакові 2, то вивести "One Pair", інакше
вивести "Nothing"

Потрібен код для цієї програми на с++

2

Re: Консольна програма "Покер" на С++

Приведіть допис у відповідність з п. 3.5 Правил.

3

Re: Консольна програма "Покер" на С++

koala, Що саме ви мали на увазі?

4

Re: Консольна програма "Покер" на С++

Узагалі-то я не зобов'язаний вас носом возити, ви галочку про Правила ставили, коли реєструвалися, і зараз теж можете їх відкрити, але якщо вже так хочете

3.5. Теми без будь-яких напрацювань будуть просто ігноруватись учасниками форуму, а модератори при першій можливості перенесуть їх в кошик для сміття.

Подякували: Naziks1

5

Re: Консольна програма "Покер" на С++

Що саме додати я повинен?

6

Re: Консольна програма "Покер" на С++

Очевидно, те, що ви зробили. Із описом проблеми, з якою зіткнулися. Якщо ви нічого не зробили - то що ви тут робите? Це форум програмістів, а ви програмувати не збираєтеся.

7

Re: Консольна програма "Покер" на С++

Мені потрібна допомога для того щоб зрозуміти як вирішити це завдання

8

Re: Консольна програма "Покер" на С++

Ви точно певні, що вам потрібна саме допомога, а не підручник? Ви вже підручник читали - зокрема, про масиви та if-и?

9

Re: Консольна програма "Покер" на С++

Так про масиви і if я знаю.

10

Re: Консольна програма "Покер" на С++

Тобто вам не зрозуміло, що робити, а код ви написати зможете?

11

Re: Консольна програма "Покер" на С++

Так, зможу.

12

Re: Консольна програма "Покер" на С++

Переміщаю тему в Алгоритми. Наступного разу формулюйте коректніше.

Подякували: Naziks1

13

Re: Консольна програма "Покер" на С++

Так, дякую.

14

Re: Консольна програма "Покер" на С++

Для початку вам треба зробити підрахунок введених чисел. Найкоректніше, звісно, словником, але якщо ще не вчили - то двовимірного масиву 5х2 вистачить, чисел мало.
Тобто якщо введено 1 3 8 3 3
то в масиві буде щось таке:
1 1
3 3
8 1
0 -1
0 -1
Як робити - ніби зрозуміло: для кожного введеного числа шукаємо його рядок, якщо дійшли до "0 -1" - вписуємо туди це число і 1.
Тепер вибираємо лише другий стовпчик і шукаємо максимум, він нам покаже більшість варіантів - наприклад, якщо максимум 4, то відповідь - "Four of a Kind".
Що лишається? "Straight" - значить, доведеться окремо відсортувати перший стовбчик (точніше, скопіювати його кудись і відсортувати) та перевірити.
3+2 - максимум 3, всього в таблиці заповнені 2 рядки.
2+2 - масимум 2, всього в таблиці заповнені 3 рядки.

Подякували: Naziks1

15

Re: Консольна програма "Покер" на С++

koala, дякую я зрозумів як зробити

16

Re: Консольна програма "Покер" на С++

Про всяк випадок - код на Python:

from collections import Counter
def combination_name(cards):
    count = Counter(cards)
    if len(count)==1:
        return "Impossible"
    elif max(count.values())==4:
        return "Four of a Kind"
    elif len(count)==2:
        return "Full House"
    elif sorted(cards)==list(range(min(cards),min(cards)+5)):
        return "Straight"
    elif max(count.values())==3:
        return "Three of a Kind"
    elif len(count)==3:
        return "Two Pairs"
    elif len(count)==4:
        return "One Pair"
    else:
        return "Nothing"
Подякували: leofun01, Naziks, 221VOLT3

17 Востаннє редагувалося Naziks (29.11.2018 21:55:04)

Re: Консольна програма "Покер" на С++

Дякую.