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

Покер - 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 из... подробнее

Показать сообщение отдельно
stima
490 / 342 / 40
Регистрация: 22.03.2011
Сообщений: 1,095
Завершенные тесты: 2
13.05.2013, 04:06
2 vlad_light
Это по теме. Тема называется проектирование. Упростим. Как пример представьте вы разрабатываете класс Human. Человек может быть или мужчина или женщина. Это можно сделать так как предложил lemegeton.

C++
1
2
3
4
5
6
7
8
9
10
11
class Human
{
   typedef unsigned char uchar;
public:
    Human(uchar sex) :
           : sex(sex) {}
    ---------
private:
    uchar sex; //  где 0 это мужчина а 1 женщина
   ----------
};
Так вот. Такой код позволяет написать так
C++
1
Human human(42);
Что:
1. Компилируеться.
2. Линкуеться,
3. Работает

Но пола 42 нету. И нужно постоянно помнить кто 0, а кто 1. И это может сказаться потом часами отладки.

Или так как предложил я
C++
1
2
3
4
5
6
7
8
9
10
11
12
class Human
{
public:
    enum Sex  { Man, Women };
 
    Human(const Sex& sex) :
           : sex(sex) {}
    ---------
private:
    Sex sex;
   ----------
};
Теперь. Это
C++
1
Human human(42);
будет ошибкой компиляции.

Что же касается Вашего вопроса по поводу Player.
C++
1
То std::vector<Card>   cards_;
Следует заменить на
C++
1
2
То std::list<const Card*>   cards_;
//или То std::list<const Card&>   cards_;
Так как во первых у вас постоянная вставка/удаление (почитайте разницу междуstd::list и std::vector). Во вторых картами владеет колода, а не игрок. Игрок их только держит(указатель/ссылка) и не может менять их содержимое(const).

И почитайте про понятия pimpl или наследование. Тогда вот эти вот переменные
C++
1
2
int                 currentChips_;  
int                 investedChips_;
Уйдут в имплементацию(припустим PokerPlayer). И вы можете на основе Player описывать игроков для любой карточной игры.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru