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

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

Показать сообщение отдельно
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
13.05.2013, 02:27
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
#include <iostream>
#include <string>
 
/**
 * Игральная карта. Один байт в памяти.
 */
class Card {
 public:
  static const std::string SUIT_NAMES[];
  static const std::string RANK_NAMES[];
  Card(unsigned char id) : id(id) {}
  Card(unsigned char rankId, unsigned char suitId) : id((suitId << 5) | rankId) {}
  unsigned char getId() const { return id; }
  unsigned char getRankId() const { return id & 31; }
  unsigned char getSuitId() const { return id >> 5; }
  const std::string &getRankName() const { return RANK_NAMES[getRankId()]; }
  const std::string &getSuitName() const { return SUIT_NAMES[getSuitId()]; }
 private:
  unsigned char id;
};
 
const std::string Card::SUIT_NAMES[] = {"spades", "diamonds", "clubs",
  "hearts"};
const std::string Card::RANK_NAMES[] = {"2", "3", "4", "5", "6", "7",
  "8", "9", "10", "jack", "queen", "king", "ace"};
 
bool operator<(const Card &a, const Card &b) {
  return a.getId() < b.getId();
}
 
std::ostream &operator<<(std::ostream &stream, const Card &c) {
  return stream << c.getRankName() << " of " << c.getSuitName();
}
Набор карт можно сделать просто набором битов. 52 карты уложатся в восемь байт.
Шаффл вообще не нужен -- нужно просто брать рандомную карту.

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