0 / 0 / 0
Регистрация: 27.11.2021
Сообщений: 1
1

Создание колоды из 24 карт

28.11.2021, 17:43. Показов 1308. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
добрый день, нужно создать колоду из 24 карт, состоящих из 9,10, валета,дамы, короля и туза.
выводит только 9-12, подскажите пожалуйста в чем ошибка.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
enum Suit { clubs, diamonds, hearts, spades };
// от 9 до 10 обычные числа
const int jack = 11;
const int queen = 12;
const int king = 13;
const int ace = 14;
/////////////////////////////////////////////////////////////
class card
{
private:
    int number;
    Suit suit;
public:
    card() // конструктор
    { }
    void set(int n, Suit s) // установка значения
    {
        suit = s; number = n;
    }
    void display();          // показ карты
};
/////////////////////////////////////////////////////////////
void card::display()
{
    if (number >= 9 && number <= 14)
        cout << number;
    else
    {
        switch (number)
        {
        case jack: cout << 'J'; break;
        case queen: cout << 'Q'; break;
        case king: cout << 'K'; break;
        case ace: cout << 'A'; break;
        }
    }
    switch (suit)
    {
    case clubs: cout << static_cast<char>(5); break;
    case diamonds: cout << static_cast<char>(4); break;
    case hearts: cout << static_cast<char>(3); break;
    case spades: cout << static_cast<char>(6); break;
    }
}
/////////////////////////////////////////////////////////////
int main()
{
    card deck[24];
    int j;
 
    cout << endl;
    for (j = 0; j < 24; j++)   // создаем упорядоченную колоду карт
    {
        int num = (j % 6) + 7;
        Suit su = Suit(j / 6);
        deck[j].set(num, su);
    }
    // показываем исходную колоду
    cout << "isxodnaya coloda:\n";
    for (j = 0; j < 24; j++)
    {
        deck[j].display();
        cout << "  ";
        if (!((j + 1) % 6)) 
            cout << endl;
    }
    srand(time(NULL));     // инициализируем генератор случайных чисел
    for (j = 0; j < 24; j++)
    {
        int k = rand() % 24;     // выбираем случайную карту
        card temp = deck[j];    // и меняем ее с текущей
        deck[j] = deck[k];
        deck[k] = temp;
    }
    // показываем перемешанную колоду
    cout << "\n peremeshannaya coloda:\n";
    for (j = 0; j < 24; j++)
    {
        deck[j].display();
        cout << "  ";
        if (!((j + 1) % 6)) 
            cout << endl;
    }
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.11.2021, 17:43
Ответы с готовыми решениями:

Написать функцию случайного выбора 6 карт из колоды 36 карт, используя структуры. с++
Вот начало кода #include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; struct card {...

Сколькими способами из колоды (36 карт) можно выбрать неупорядоченный набор из 6 карт, удовлетворяющих условию
Сколькими способами из колоды 36 карт можно выбрать неупорядоченный набор из 6 карт, чтобы в этом...

Класс колоды карт и карты
помогите найти ошибку не компелируется! #include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include...

Написать программу сортировки колоды карт
Необходимо упорядочить колоду карт (36 листов) сначала по мастям (пики, трефы, бубны и черви), а...

1
Модератор
Эксперт CЭксперт С++
5164 / 2889 / 1498
Регистрация: 14.12.2018
Сообщений: 5,225
Записей в блоге: 1
29.11.2021, 06:55 2
Цитата Сообщение от Yanka_1608y Посмотреть сообщение
выводит только 9-12, подскажите пожалуйста в чем ошибка.
Цитата Сообщение от Yanka_1608y Посмотреть сообщение
int num = (j % 6) + 7;
В строке 59 заменяйте число 7 на 9.
C++
1
int num = (j % 6) + 9;

------------------
И можно переделать метод display() (думаю, что это будет лучше):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void card::display()
{
    switch (number)
    {
    case 9: cout << 9; break;
    case 10: cout << 10; break;
    case jack: cout << 'J'; break;
    case queen: cout << 'Q'; break;
    case king: cout << 'K'; break;
    case ace: cout << 'A'; break;
    }
    switch (suit)
    {
    case clubs: cout << static_cast<char>(5); break;
    case diamonds: cout << static_cast<char>(4); break;
    case hearts: cout << static_cast<char>(3); break;
    case spades: cout << static_cast<char>(6); break;
    }
}
0
29.11.2021, 06:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.11.2021, 06:55
Помогаю со студенческими работами здесь

Создать два производных класса от колоды карт
Создать класс карта, имеющая ранг и масть. Карту можно перевернуть и открыть. Создать класс -...

Реализовать иерархию классов для моделирования работы магазина, продающего колоды карт (по 36 и 52 карты)
Задание: 1. Реализовать класс: Магазин колод карт. Добавить возможность добавлять новые...

Сколькими способами можно из колоды игральных карт (36 карт) раздать двум игрокам по шесть карт?
Задача на комбинаторику с подвохом Сколькими способами можно из колоды игральных карт (36...

Из колоды карт (36 карт) наудачу берут пять карт
Здравствуйте! С теорией вероятностей всегда имел проблему, не могу никак сообразить. Задание такое:...

Из колоды в 36 карт выбирают 6 карт. Сколькими способами это можно сделать
Из колоды в 36 карт выбирают 6 карт. Сколькими способами это можно сделать, если: а) среди...

Сколькими способами из колоды в 36 карт можно выбрать неупорядоченный набор из 5 карт?
Здравствуйте, можете помочь с этим заданием? Сколькими способами из колоды в 36 карт можно выбрать...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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