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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
eoLithic
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 32
#1

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

21.02.2014, 01:06. Просмотров 322. Ответов 0
Метки нет (Все метки)

Здравствуйте.

Во время создания карточной игры, я столкнулся с небольшой проблемой в архитектуре, которую не могу разрешить:
Есть классы 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() с пустым телом. Вот так вот.

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

Заранее, спасибо вам.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2014, 01:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Архитектура программы карточной игры (C++):

Задача на создание карточной игры. - C++
Здравствуйте. Собственно, само задание звучит, как &quot;Написать программу, которая на основе классов реализует карточную игру Блэк-Джек.&quot;. ...

Архитектура программы Доктор - C++
Доброе время суток) пишу программу по теме поликлиника... работа с классами и всем всем всем... но я запуталась в классах... у меня их...

Архитектура программы. Правильно ли сделал? - C++
Собствено с архитектурой вроде определился. Хотелось бы конструктивной критики. Задача по сути следующая: - Считывать данные...

Архитектура программы: как лучше реализовать иерархию классов? (игра "Тамагочи") - C++
Здравствуйте! Пишу игру тамагочи на с++ ооп. Есть класса Critter (основная). Походными классами од Critter являются Dog , Cat, Hamster. ...

Архитектура программы "Морской бой" - C++
Пишу морской бой, с возможностью игры, как с компьютером, так и с другим человеком по сети. Не получается продумать архитектуру программы. ...

Srand в карточной игре - C++
подскажите как сделать так что бы srand выдавал числа в диапазоне от 1 до 36 без повторов можно ли это сделать без массивов ? ...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.02.2014, 01:06
Привет! Вот еще темы с ответами:

Не в тот раздел) 3D,2D игры, программы - C++
Прошу сильно не ругаться типа: &quot;Не по годам; сначала научись основам и.т.п&quot;)) Мне нужно подключить 3D персонажа в файл с беком(background),...

Подключение в процессу программы, игры - C++
Подскажите. Я написал программу которая программно нажимает нужные мне клавиши (для игры ) так вот- в браузере (на робочом столе в...

Как сделать систему ходов в карточной игре? - C++
Здравствуйте,я делаю карточную игру,но столкнулся с тем,что не знаю как сделать ходы по очереди,тоесть, чтобы игроки ходили по...

Подкиньте идею игры или программы - C++
я занимаюсь C++) в TurboC30) могли бы подкинуть идей какой нибудь игрушки или программки) программки даже более интересно) но я очень мало...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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