Форум программистов, компьютерный форум, киберфорум
Наши страницы

Покер - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Массив. Наименьший член последовательности заменить целой частью среднего арифметического всех членов http://www.cyberforum.ru/cpp-beginners/thread860882.html
1. Задан массив действительных чисел. Наименьший член последовательности заменить целой частью среднего арифметического всех членов, остальные члены оставить без изменений. Если в последовательности...
C++ Regex в char можно ли конвертировать boost::regex в char*? http://www.cyberforum.ru/cpp-beginners/thread860865.html
Куб суммы всех чисел C++
Господа, снова нуждаюсь в вашей помощи. И так задача следующая: Найти число с заданного промежутка, которое равно кубу суммы всех своих цифр. На пример 512 = (5+1+2)3
C++ Шифрование данных
Вообщем не могу справиться , если кто может помогите, или посоветуйте чтото Задание в следуйщем Используя двунаправленный список , который содержит символы и их шифры, зашифровать текст, который...
C++ Как сохранить текст на русском? http://www.cyberforum.ru/cpp-beginners/thread860835.html
Написал программу, но столкнулся с такой проблемой: не могу сохранить вводимый с клавиатуры текст в файл. Ну т.е. сам текст сохраняется, но в виде непонятных символов. Как это исправить, подскажите...
C++ ООП и контейнеры Здорова господа! От есть задачка: Напишите класс, производный от Container так, чтобы Vector из параграфа 16.2.1 мог использоваться в стиле контейнера из параграфа 16.2.2 От класс Vector из... подробнее

Показать сообщение отдельно
vlad_light
4 / 4 / 0
Регистрация: 24.09.2012
Сообщений: 178
12.05.2013, 23:11  [ТС]
Большое спасибо!

Не по теме:

Кстати, в первой программе классы определены именно так, как я и написал


Попробую написать прототипы классов без "шпаргалки", поскольку только учу с++ и хочу всё сделать самостоятельно

Добавлено через 7 часов 19 минут
вот, что я пока написал. Гляньте, пожалуйста, и укажите на явные ошибки. Спасибо!
Кликните здесь для просмотра всего текста
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
/****************************************************************
*                           Card.h                              *
****************************************************************/
#pragma once
 
#include <vector>
 
#include <iostream>
 
class Card
{
public:
    Card ();
    Card (const Card& card);
    Card (const int rank, const int suit);
 
    ~Card ();
 
    Card operator= (const Card& card);
 
    void set (const int rank, const int suit);
 
    int getRank () const;
    int getSuit () const;   
 
    void view () const;
 
private:
    int rank_; // Empty - 0, A - 1, 2 - 2, 3 - 3, ..., 
               // 9 - 9, T - 10, J - 11, Q - 12, K - 13, A - 14
    int suit_; // Hearts - 0, Diamonds - 1, Clubs - 2, Spades - 3
 
    std::vector<char> notation_; // rank/suit
 
    void initializeNotation_ ();
 
 
};
 
/****************************************************************
*                           Card.cpp                            *
****************************************************************/
 
#include "Card.h"
 
Card::Card ()
{
    rank_ = 0;
    suit_ = 0;  
 
    notation_.push_back ('#');
    notation_.push_back ('#');
}
 
Card::Card (const Card& card)
{
    rank_ = card.rank_;
    suit_ = card.suit_; 
 
    notation_ = card.notation_;
}
 
Card::Card (const int rank, const int suit)
{
    rank_ = rank;
    suit_ = suit;
 
    initializeNotation_ ();
}
 
Card::~Card ()
{
 
}
 
Card Card::operator= (const Card& card)
{
    rank_ = card.rank_;
    suit_ = card.suit_;
 
    notation_ = card.notation_;
 
    return *this;
}
 
void Card::initializeNotation_ ()
{
    if (rank_ == 0)
    {
        notation_.push_back ('#');
        notation_.push_back ('#');
        return;
    }
 
    if (rank_ < 10)
    {
        notation_.push_back ((char) '0' + rank_);
    }
    else
    {
        switch (rank_)
        {
        case 10 :
            notation_.push_back ('T');
            break;
 
        case 11 :
            notation_.push_back ('J');
            break;
 
        case 12 :
            notation_.push_back ('Q');
            break;
 
        case 13 :
            notation_.push_back ('K');
            break;
 
        case 14 :
            notation_.push_back ('A');
            break;
        }
    }
 
    notation_.push_back ((char) suit_ + 3);
}
 
void Card::set (const int rank, const int suit)
{
    rank_ = rank;
    suit_ = suit;
 
    initializeNotation_ ();
}
 
int Card::getRank () const
{
    return rank_;
}
 
int Card::getSuit () const
{
    return suit_;
}
 
void Card::view () const
{
    std::cout << notation_.at (0) << notation_.at (1);
}

Кликните здесь для просмотра всего текста
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
/****************************************************************
*                           Deck.h                              *
****************************************************************/
#pragma once
 
#include "Card.h"
 
#include <ctime>
#include <cstdlib>
 
class Deck
{
public:
    Deck ();
    Deck (const Deck& deck);
 
    ~Deck ();
 
    Deck operator= (const Deck& deck);
 
    void initialize ();
    void shuffle (const int iterations);
 
    Card getTopCard ();
 
    void view () const;
 
private:
    std::vector<Card> cards_;
 
    void swapCards_ (const int cardNo1, const int cardNo2);
};
 
 
/****************************************************************
*                           Deck.cpp                            *
****************************************************************/
#include "Deck.h"
 
Deck::Deck ()
{
 
}
 
Deck::Deck (const Deck& deck)
{
    cards_ = deck.cards_;
}
 
Deck::~Deck ()
{
 
}
 
Deck Deck::operator= (const Deck& deck)
{
    cards_ = deck.cards_;
 
    return *this;
}
 
void Deck::initialize ()
{
    cards_.clear ();
    cards_.reserve (52);
 
    for (int suit = 0; suit < 4; ++suit)
        for (int rank = 2; rank < 15; ++rank)
            cards_.push_back (Card (rank, suit));
}
 
void Deck::shuffle (const int iterations)
{
    const int CURRENT_DECK_SIZE = cards_.size ();
 
    srand (time (0));
 
    for (int i = 0; i < iterations; ++i)
        swapCards_ (rand () % CURRENT_DECK_SIZE, rand () % CURRENT_DECK_SIZE);
}
 
Card Deck::getTopCard ()
{
    Card topCard (*cards_.crbegin ());
 
    cards_.pop_back ();
 
    return topCard;
}
 
void Deck::swapCards_ (const int cardNo1, const int cardNo2)
{
    Card temporaryCard (cards_.at (cardNo1));
    cards_.at (cardNo1) = cards_.at (cardNo2);
    cards_.at (cardNo2) = temporaryCard;
}
 
void Deck::view () const
{
    const int CURRENT_DECK_SIZE = cards_.size ();
 
    for (int i = 0; i < CURRENT_DECK_SIZE; ++i)
    {
        cards_.at (i).view ();
        std::cout << " ";
 
        if ((i + 1) % 13 == 0)
            std::cout << std::endl;
    }
}

Позже попробую написать более сложные классы: игрок и стол.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.