Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.56/75: Рейтинг темы: голосов - 75, средняя оценка - 4.56
5 / 5 / 1
Регистрация: 24.09.2012
Сообщений: 178

Покер

10.05.2013, 18:57. Показов 14747. Ответов 47
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хочу написать простенькую покерную программу на с++. Нужна помощь с архитектурой. Напишите, пожалуйста, какие классы стоит реализовать. Спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.05.2013, 18:57
Ответы с готовыми решениями:

Покер
Прошу помощи. Болел - ничего не понял. Скоро экзамен, а я ничего не понимаю в С++. Дали примерные задачи, а я не понимаю как решать. Вот...

Покер
Подскажите пожалуста где ошибка??????:help: компилятор выдает ошибки Ошибка 2 error LNK2005: "int __cdecl compareCards(void...

Задача Покер
Даны 5 целых чисел. Среди них: если одинаковы 5, то вывести "Impossible", иначе если одинаковы 4, то вывести "Four of a...

47
Заблокирован
13.05.2013, 23:50
Студворк — интернет-сервис помощи студентам
я тоже самое почти придумал седня
1)исправить массивы на векторы
2)вытянуть козырь
3)наименьшая козырная карта у игроков

??4)преобразование размерностей из string в int

5)у кого наименьшая тот ходит
6)выбор между бито и сходить картой той же размерности
7)алгоритм игры бота:
1)бот ходит сначала наименьшей картой
2)если игрок берет карту и нет карты той же размерности, то след. ход бот ходит картой той же масти
иначе если нет той же масти ходит наименьшей др. масти
3)если у бота есть карта той же размерности и карта не козырная то ходит
иначе если козырная то ходит картой меньше "Д"

но все же так как у меня плохо с деревьями, то надо именно их и использовать
0
 Аватар для ninja2
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
14.05.2013, 00:05
Цитата Сообщение от ТОрчОК Посмотреть сообщение
но все же так как у меня плохо с деревьями, то надо именно их и использовать
Я думаю не надо. Оформи в виде функций и все. Дерево это ж структура данных, как ты его будешь использовать? Что ты туда будешь помещать? От в настольных играх допустим шахматы там можно на перед до конца игры все возможные варианты исхода игры просчитать. А в дурака как просчитать? Ты ж ведь только знаешь 6 своих карт. Делай просто набор правил и даже не пытайся делать что то с деревом это морочно время я так думаю в пустую потратишь зря.

Добавлено через 4 минуты
Я б не заморачивался все игры созданы давно, конечно привлекает этот АИ мегамощьный, такой которого фиг обыграешь.
Ну конечно если интересно попробуй может получится. Альфа - бета отсечение называется наверно он и в картах применяется я не знаю просто чуток за него читал.
0
5 / 5 / 1
Регистрация: 24.09.2012
Сообщений: 178
14.05.2013, 01:00  [ТС]

Не по теме:

Уважаемый, ninja2!
При всём уважении к Вам, хочу попросить Вас больше никогда не писать в темах которые я создаю. У Вас ведь есть уникальная возможность создать свои собственные темы и задавать там вопросы. Спасибо за понимание!


Подскажите, (не считая метода startNewGame () ) всё ок?
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
#include "Deck.h"
#include "Player.h"
 
#include <list>
 
class Table
{
public:
    Table ();
    Table (const Table& table);
    Table (const int nPlayers);
    Table (const int nPlayers, const int nChips);
    Table (const int nPlayers, const int nChips, const int sb, const int bb);
 
    ~Table ();
 
    Table operator= (const Table& table);
 
    void setPlayer (const int position, const Player& player);
    void removePlayer (const int position);
 
    void setButton (const int button);
    int getButton () const;
    void moveButton ();
 
    void setBlinds (const int smallBlind, const int bigBlind);
    int getSmallBlind () const;
    int getBigBlind () const;
 
    void startNewGame ();
 
    void view () const;
 
 
private:
    std::vector<Player> players_; // indices means position
    Deck deck_;
    int button_; // current button position
    int smallBlind_; // sb value
    int bigBlind_; // bb value
    int pot_;
    std::vector<Card> board_;
};
0
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
14.05.2013, 01:13
Расскажите, пожалуйста, что делает ваш класс? Для чего он нужен?

Не по теме:

Есть такой забавный признак -- если в описании назначения сущности есть союз "и", надо декомпозировать дальше.

0
14.05.2013, 11:07

Не по теме:

Цитата Сообщение от vlad_light Посмотреть сообщение
Не по теме:
Уважаемый, ninja2!
При всём уважении к Вам, хочу попросить Вас больше никогда не писать в темах которые я создаю. У Вас ведь есть уникальная возможность создать свои собственные темы и задавать там вопросы. Спасибо за понимание!
Да нет дружище тебе как новичку помогать нада, а кто как не я научит новичка? :)

0
5 / 5 / 1
Регистрация: 24.09.2012
Сообщений: 178
14.05.2013, 17:15  [ТС]
Расскажите, пожалуйста, что делает ваш класс? Для чего он нужен?
Мой класс имитирует реальный покерный стол. Чтоб играть в покер нужно установить:
размеры блайндов и позицию баттона, затем разсадить игроков по местам.
Также на столе лежат: колода, борд (флоп, тёрн и ривер) и пот, хотя эти переменные уже больше относятся к самому процессу игры, чем непосредственно к столу (наверное).
А вот метод startNewGame () будет достаточно громоздким и я думаю, что ему стоит выделить отдельный класс.
0
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
14.05.2013, 19:17
Метод startNewGame явно лишний. Либо этот метод нужно назвать clear или reset.
Метод view стоит сделать внешним относительно класса.

У вас нет указателей в классе, поэтому вам не нужно переопределять ни деструктор, ни конструктор копирования, ни оператор присваивания.

А так да, нормально. Насколько будет удобно этим пользоваться конечно, вне обсуждения.
1
5 / 5 / 1
Регистрация: 24.09.2012
Сообщений: 178
14.05.2013, 20:08  [ТС]
я дома ещё подумаю и постараюсь усовершенствовать. Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.05.2013, 20:08
Помогаю со студенческими работами здесь

Задача Покер
Даны 5 целых чисел. Среди них: если одинаковы 5, то вывести &quot;Impossible&quot;, иначе если одинаковы 4, то вывести &quot;Four of a...

Графический покер
Доброго времени суток всем. Вот, немного запутался.... Есть игра покер...Нужно ее реализовать в упрощенном виде. Есть изображения...

Задача про покер
На сайте e-olymp проходит 97%. Где ошибка? Пишет, что третий тест не проходит, хотя у меня все работает. ...

Проверка на стрит(покер)
В одном из заданий из книги Дейтелов необходимо определить, имеется ли на руках у игрока стрит(пять карт последовательных номиналов). Но...

Моделирование игры в покер
Недавно начал изучать С++,использую книгу Харви М. Детела Как программировать на С++.В конце одной из глав есть упражнение,в котором нужно...


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

Или воспользуйтесь поиском по форуму:
48
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru