С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/32: Рейтинг темы: голосов - 32, средняя оценка - 4.75
16 / 16 / 0
Регистрация: 10.04.2011
Сообщений: 271

Задача на создание карточной игры.

20.08.2011, 12:46. Показов 6530. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Собственно, само задание звучит, как "Написать программу, которая на основе классов реализует карточную игру Блэк-Джек.".

Главная проблема в том, как реализовать взаимодействие между игроками и казино ( очередность ходов, и т.д. ). Что лучше применить в этом случае? Раньше не сталкивался с подобной проблемой.

з.ы. Вот наброски:

Заголовочный файл:
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
#pragma once // вызывает только 1 раз
#include<iostream> //( подключекние библиотеки )
 
using namespace std;
 
class Player
{
    char* name;
    int stavka;
    int point;
    int k;
    int exit, a;  // n - счетчик игроков. a - карта. 2-10 - обычные, 11,12,13 - картинки, 14-туз
public:
    int n;
    Player(const char*name);
    
    void show();
 
    void hod();
 
};
 
class kazino
{
    
    int h;
public:
    int n;
    int summ_stavka; 
    int point; 
    kazino(); 
    
};
Вопрос в том, как сделать, чтобы все объекты Player, после нажатия "следующий ход" одновременно выполняли некие действия ( а конкретнее - брали карты ).
Как написать подобную программу для одного игрока - понимаю прекрасно, но вот как всё это "склеить"?

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

Допустим, есть класс:

class A
{ int n; };

Class B {
int summ_n;
number;
turn; };

При этом, объектов класса A может быть много ( счетчик - number ) и каждый ход ( счетчик ходов - turn ) n в каждом объекте класса А должно увеличиваться на определенную величину. Как создать такую простенькую программку?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.08.2011, 12:46
Ответы с готовыми решениями:

Создание карточной онлайн игры
Здравствуйте, я изучаю С++ по самоучителю, используя компилятор microsoft visual studio 6.0, почти уже закончил. хочу создать онлайн...

Создание карточной игры по сети и интернету
Всем привет. Более менее освоил язык C# и хотел бы создать свое первое нормальное приложение. Хотелось бы сделать карточную игру между 2-4...

GUI для карточной игры
Приветствую всех! Вот уже как месяц изучаю самостоятельно Python - немного разобрался с базовыми понятиями (переменные, встроенные...

9
Заблокирован
20.08.2011, 12:59
см в сторону "клиент-сервер"
0
16 / 16 / 0
Регистрация: 10.04.2011
Сообщений: 271
20.08.2011, 13:00  [ТС]
Не понимаю, при чём здесь клиент-сервер.
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
20.08.2011, 13:58
Цитата Сообщение от Arimand Посмотреть сообщение
Вопрос в том, как сделать, чтобы все объекты Player, после нажатия "следующий ход" одновременно выполняли некие действия
Примерно так:
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
/////////////////////////////////////////////////////////////////////////////////////////
// как сделать, чтобы все объекты Player, после нажатия "следующий ход" одновременно 
// выполняли некие действия 
/////////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <iostream>
#include <set>
#include <string>
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::string  T_str;
/////////////////////////////////////////////////////////////////////////////////////////
class T_player
{
    T_str  name_;
    int    stavka_;
    int    point_;
    int    k_;
    int    exit_;  
    int    a_;   //карта. 2-10 - обычные, 11,12,13 - картинки, 14-туз
public:        
    T_player(const T_str&  name) : name_(name)
    {}
    //-------------------------------------------------------------------------------
    void show()
    {}
    //-------------------------------------------------------------------------------
    void hod()
    {
        std::cout << "пошел игрок "
                  << name_
                  << std::endl;
    }
    //-------------------------------------------------------------------------------
    bool  operator< (const T_player&  player) const
    {
        return  name_ < player.name_;
    } 
};
///////////////////////////////////////////////////////////////////////////////////////// 
typedef std::set<T_player>  T_players;
///////////////////////////////////////////////////////////////////////////////////////// 
class T_kazino
{        
    int        h_;
    T_players  players_;
public:
    T_kazino(const T_players&  players) : players_(players)
    {}
    //-----------------------------------------------------------------------------------
    int n_;
    int summ_stavka_; 
    int point_; 
    //-----------------------------------------------------------------------------------
    void hod()
    {
        std::cout << "Ходят все игроки казино:"
                  << std::endl;
 
        std::for_each
            (
                players_.begin(),
                players_.end(),
                std::mem_fun_ref(&T_player::hod)
            );
        std::cout << std::endl;
    }        
};
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    
    T_str  players_names_arr[] =
        {
            "Вася",
            "Потап",
            "Илистрат",
        };
 
    T_players  players
        (
            players_names_arr, 
            players_names_arr + sizeof(players_names_arr) / sizeof(players_names_arr[0])
        );
 
    T_kazino  kazino(players);
    kazino.hod();
}
1
16 / 16 / 0
Регистрация: 10.04.2011
Сообщений: 271
20.08.2011, 14:29  [ТС]
Благодарю, буду разбираться) Только вот ошибку выдает:

Error 2 error C2664: 'void std::mem_fun_ref_t<_Result,_Ty>::operato r ()(_Ty &) const' : cannot convert parameter 1 from 'const T_player' to 'T_player &' c:\program files (x86)\microsoft visual studio 10.0\vc\include\algorithm 22
0
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
20.08.2011, 15:19
Цитата Сообщение от Arimand Посмотреть сообщение
Только вот ошибку выдает:
Error 2 error C2664: 'void std::mem_fun_ref_t<_Result,_Ty>::operato r ()(_Ty &) const' : cannot convert parameter 1 from 'const T_player' to 'T_player &' c:\program files (x86)\microsoft visual studio 10.0\vc\include\algorithm 22
Замени 27 строчку на:
C++
1
void hod() const
0
Заблокирован
20.08.2011, 15:21
Цитата Сообщение от Arimand Посмотреть сообщение
Не понимаю, при чём здесь клиент-сервер.
Согласно задаче, клиенты действуют одновременно
0
4 / 4 / 0
Регистрация: 09.07.2010
Сообщений: 12
20.08.2011, 17:07
Интересно как в Блэк-Джэк можно играть одновременно?
0
19 / 19 / 5
Регистрация: 24.01.2011
Сообщений: 120
20.08.2011, 17:14
Цитата Сообщение от Gera777 Посмотреть сообщение
Интересно как в Блэк-Джэк можно играть одновременно?
ну насколько я понял идёт речь о игре клиент-клиент и сервер раздаёт карты
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
20.08.2011, 22:53
Вообще-то по смыслу задачи ход изменяет состояние игрока, поэтому типом T_players лучше взять вектор, а уникальным идентификатором игрока в казино считать его индекс в этом векторе:
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
/////////////////////////////////////////////////////////////////////////////////////////
// как сделать, чтобы все объекты Player, после нажатия "следующий ход" одновременно 
// выполняли некие действия 
/////////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <functional>
#include <iostream>
#include <string>
#include <vector>
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::string  T_str;
/////////////////////////////////////////////////////////////////////////////////////////
class T_player
{
    T_str  name_;
    int    stavka_;
    int    point_;
    int    k_;
    int    exit_;  
    int    a_;   //карта. 2-10 - обычные, 11,12,13 - картинки, 14-туз
public:        
    T_player(const T_str&  name) : name_(name)
    {}
    //-------------------------------------------------------------------------------
    void show()
    {}
    //-------------------------------------------------------------------------------
    void hod()
    {
        std::cout << "пошел игрок "
                  << name_
                  << std::endl;
    }
};
///////////////////////////////////////////////////////////////////////////////////////// 
typedef std::vector<T_player>  T_players;
///////////////////////////////////////////////////////////////////////////////////////// 
class T_kazino
{        
    int        h_;
    T_players  players_;
public:
    T_kazino(const T_players&  players) : players_(players)
    {}
    //-----------------------------------------------------------------------------------
    int n_;
    int summ_stavka_; 
    int point_; 
    //-----------------------------------------------------------------------------------
    void hod() 
    {
        std::cout << "Ходят все игроки казино:"
                  << std::endl;
 
        std::for_each
            (
                players_.begin(),
                players_.end(),
                std::mem_fun_ref(&T_player::hod)
            );
        std::cout << std::endl;
    }        
};
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    
    T_str  players_names_arr[] =
        {
            "Вася",
            "Потап",
            "Илистрат",
        };
 
    T_players  players
        (
            players_names_arr, 
            players_names_arr + sizeof(players_names_arr) / sizeof(players_names_arr[0])
        );
 
    T_kazino  kazino(players);
    kazino.hod();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.08.2011, 22:53
Помогаю со студенческими работами здесь

Unity Разработка карточной игры
Здравствуйте! Занимаюсь разработкой карточной онлайн игры на андроид. Хочу сделать игру-копию карточной игры Гвинт из Ведьмак 3. Видео...

Написание карточной игры с графикой
Добрый день! Уже и просили, есть карточная игра с графикой процесса какая-н для примера увидеть? Дурак или хоть покер с блэкджеком ...

Код для карточной игры
Добрых! Необходима ваша помощь. Изучаю пхп. Решил написать карточную игру &quot;21&quot; на этом языке. На данном этапе разработки, мне нужно...

Паттерн для карточной игры
Доброго времени, собираюсь написать в Windows Forms карточную игру, пока остановился на модели MVC, но на мой взгляд этот шаблон...

Вероятности для карточной игры
Привет. Высшую математику учил давно. Поэтому что то затупил. Задача такая у меня. Рассчитать вероятность выпадения карты. Что...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru