Форум программистов, компьютерный форум CyberForum.ru

Архитектура программы карточной игры - C++

Восстановить пароль Регистрация
 
eoLithic
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 32
21.02.2014, 01:06     Архитектура программы карточной игры #1
Здравствуйте.

Во время создания карточной игры, я столкнулся с небольшой проблемой в архитектуре, которую не могу разрешить:
Есть классы Dealer, Human, Bot. Все наследуют от абстрактного класса Gamer. В игре наступает момент, когда игроку необходимо принять решение: взять дополнительную карту или нет?
Я решил добавить в Gamer чисто виртуальный метод willTakeAnotherCard() который возвращает булево значение.
Если с ботами и дилером, которые управляются программно, можно просто перегрузить willTakeAnotherCard(), то с Human ситуация становится немного сложнее.
Разумеется можно просто перегрузить willTakeAnotherCard() в Human как-то вот так:
C++
1
2
3
4
5
6
7
8
9
10
bool Human::willTakeAnotherCard()
{
    cout<<"Will you take another card?";
    char choice;
    cin>>choice;
    if ( choice = 'y' )
        return true;
    else
        return false;
}
Но дело в том, что я пытаюсь придерживаться MVC, а MVC не поощряет ввод данных прямиком в модели.
Но очень хочется оставить пользовательский ввод прямиком в модели, поскольку это дает мне одно большое удобство: я могу запихнуть объекты Human, Dealer, Bot в один массив и вызывать у них willTakeAnotherCard() через указатель на класс Gamer. Да здравствует полиморфизм!
Но, опять таки, это не по MVC. А нам очень нужен MVC.
Поэтому я пошел слегка корявым путем: получаем выбор игрока через представление, и через контроллер даем игроку карту(или не даем, зависит от выбора). Но при этом в Human валяется перегруженный метод willTakeAnotherCard() с пустым телом. Вот так вот.

Подскажите, пожалуйста, как бы мне вывернуться из этой ситуации, чтобы сохранить удобство и полиморфизм первого метода, а заодно сохранить нормальную архитектуру.

Заранее, спасибо вам.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2014, 01:06     Архитектура программы карточной игры
Посмотрите здесь:

C++ Подкиньте идею игры или программы
C++ Задача на создание карточной игры.
C++ Архитектура программы "Морской бой"
C++ Не в тот раздел) 3D,2D игры, программы
C++ Архитектура программы. Правильно ли сделал?
Как сделать систему ходов в карточной игре? C++
C++ Архитектура программы Доктор
C++ Srand в карточной игре

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 14:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru