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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.79
CronoS0
1 / 1 / 0
Регистрация: 24.02.2010
Сообщений: 19
#1

Сделать бридж с применением ООП. - C++

10.08.2010, 12:32. Просмотров 1783. Ответов 23
Метки нет (Все метки)

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

Как написать консольную программу Шашки с применением ООП? - C++
Задали написать шашки на С++, с применением ООП для консоли. Помогите пожалуйста какие классы создавать (какие в них должны быть методы)....

Игра Бридж - C++
Ребята кто может помочь в написаниии игры на с++? нужно позарез. 1)структура одной карты : масть, значение, достоинства, сколько карта...

Игра в Бридж. Модифицировать программу - C++
В игре бридж каждому из игроков раздают 13 карт, таким образом колода расходуется полностью. Модифицируйте программу CARDARAY так, что бы...

Две Программы по С++ по ООП - не получается сделать - C++
Вот две задачки по ООП не могу сделать, кто может напишите код пожалуйста, лучше с коментариями для каждой строчки, буду очень признателен...

ООП пример как сделать конструктор копирования на С++ - C++
Покажите пожалуйста пример конструктора копирования на С++

C++ (ооп) как из трех файлов (2 cpp и h) сделать одну программу? code blocks - C++
C++ (ооп) как из трех файлов (2 cpp и h) сделать одну программу? code blocks

23
solar_wind
759 / 750 / 42
Регистрация: 06.07.2009
Сообщений: 2,977
Завершенные тесты: 1
10.08.2010, 12:41 #2
ну для начала нужно определиться что он конкретно будет делать....
0
CronoS0
1 / 1 / 0
Регистрация: 24.02.2010
Сообщений: 19
10.08.2010, 13:23  [ТС] #3
Ну, нужно зашить, скорее всего в двухмерный масив 9х4, все карты.
В main сделать цикл с меню и выводом на экран (текущих карт + "поля боя") можно с применением system ("cls").
Потом поотделять все класы:
- клас хранящий в себе текущие карты пользователей и оставшиеся в колоде.
- клас отвечающий за "поле боя" и изменяющий набор карт в предидущем класе с использованием логики правил игры берущего данные со следующего класа.
- клас выводящий на экран текущие карты с предлогом пользователю выбрать чем ходить, после чего розписать логику для компьютера, затем ходы с картами посылаются в предидущий клас...
- клас показывающий всевозможные результаты...
Затем в main с кучей функций сделать вывод на экран, меню, всё зашить в цикл.

Всё вроде ясно, но когда начинаю делать, ничего не получается...
0
solar_wind
759 / 750 / 42
Регистрация: 06.07.2009
Сообщений: 2,977
Завершенные тесты: 1
10.08.2010, 13:44 #4
Если на Visual Studio писать то можно так:
1. создаешь класс для поля с картами, наследуешь от какого нибудь из оконных классов. переопределяешь функцию OnPaint и пишешь функцию Draw для рисования поля.
2. Определяешь структуры данных, на основании которых будет рисоваться поле и карты на нем.
3. Далее определяешь события при которых будет производиться перерисовка поля (например нажатие кнопки конца хода, захват мышью карты, перемещение мыши над полем и т.д.)

Добавлено через 1 минуту
Каждую карту лучше всего представить так же окном.
0
Puporev
Модератор
52993 / 40804 / 14054
Регистрация: 18.05.2008
Сообщений: 94,890
10.08.2010, 13:48 #5
Цитата Сообщение от CronoS0 Посмотреть сообщение
в двухмерный масив 9х4,
Вообще-то в бридже используют колоду из 52 карт.
1
CronoS0
1 / 1 / 0
Регистрация: 24.02.2010
Сообщений: 19
10.08.2010, 18:43  [ТС] #6
Цитата Сообщение от Puporev Посмотреть сообщение
Вообще-то в бридже используют колоду из 52 карт.
В бридже есть много разновидностей и даже в разных компаниях присутствуют разные правила...
Но это не главное.

Цитата Сообщение от vitaly1981 Посмотреть сообщение
(например нажатие кнопки конца хода, захват мышью карты, перемещение мыши над полем и т.д.)
Каждую карту лучше всего представить так же окном.
Я так понял это Visual C++, я еще не умею делать оконные приложения и к тому же с мышкой...
Мне нужно сделать всё в консоли...
0
solar_wind
759 / 750 / 42
Регистрация: 06.07.2009
Сообщений: 2,977
Завершенные тесты: 1
10.08.2010, 20:05 #7
Именно в консоли, вообще без графики?
Ну классы можно сделать такие:
1. Карта
2. Колода
3. Игрок

Дальше делаешь цикл, который будет организовывать взаимодействие между экземплярами этих классов.
0
CronoS0
1 / 1 / 0
Регистрация: 24.02.2010
Сообщений: 19
10.08.2010, 21:11  [ТС] #8
Цитата Сообщение от vitaly1981 Посмотреть сообщение
Именно в консоли, вообще без графики?
Да, без графики... (ну там может шарпики, амперсандики...)

Я не могу понять как сделать колоду...
Это 32 инта на карты + 32 буля для проверки есть карта в колоде или нет... не говоря уже про карты игроков... геморойно...
И как тасовку сделать??? Сколько мозгую не доходит...
0
Nameless One
Эксперт С++
5780 / 3429 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
10.08.2010, 21:16 #9
Цитата Сообщение от CronoS0 Посмотреть сообщение
И как тасовку сделать???
Используй std::random_shuffle
0
CronoS0
1 / 1 / 0
Регистрация: 24.02.2010
Сообщений: 19
10.08.2010, 21:23  [ТС] #10
оО... не знал такого =)))
0
clicksel
3 / 3 / 0
Регистрация: 09.08.2010
Сообщений: 60
10.08.2010, 22:28 #11
vitaly1981, в Visual Studio реально хорошую карточную игру сделать без постороних прог,DirectX и т.д? и примерно сколько для этого времени понадобится новичку и за сколько времени сделаешь ты?))
1
solar_wind
759 / 750 / 42
Регистрация: 06.07.2009
Сообщений: 2,977
Завершенные тесты: 1
11.08.2010, 07:07 #12
CronoS0
1. Карта
свойства: масть, достоинство

2. Колода - содержит массив ссылок типа карты, перемешивание можно сделать используя функции для генерации случайных значений. Алгоритм перемешивания может быть различный, например генерируешь 2 случайных числа от нуля до количества карт в колоде и карты с полученными номерами меняешь местами и так какое то количество раз, можно случайное (только нижнюю границу задай приемлемую).
методы: перемешать, выдать верхнюю карту...и т.д.

3. Игрок - содержит массив ссылок типа карты
методы: извлечь карту, дополнить картой.

4. Стол - содержит массив ссылок типа карты
методы: положить карту, извлечь карту

5. Куча - содержит массив ссылок типа карты, сюда складываются сброшенные карты.
методы: положить карту

clicksel
Конечно можно. При условии что есть все изображения для карт, стола и т.д. , известны все нюансы логики игры, мне на разработку понадобилось примерно день на то что бы накидать саму программу + дня 3 на отладку и тестирование. Новичку понадобится еще изучить механизмы рисования, работу с окнами, ООП и т.д. все зависит от того насколько это новичек. Если хорошо знаешь механизмы ООП, то за неделю при напряженной работе написать возможно, если не знаешь ООП, то тут сроки определить нереально вообще.
0
clicksel
3 / 3 / 0
Регистрация: 09.08.2010
Сообщений: 60
11.08.2010, 21:49 #13
vitaly1981, знаю ООП учу по самоучителю почти доучил. но я умею создавать только консольные приложения. щас установил visual studio 2005(на диске была просто эта версия,установить новее или на этой тоже напишется игра?)и может подскажешь как разобраться, выучить, как создавать полноценые win32 приложения, мож какойнить самоучитель посоветуешь?

Не по теме:

И я убду тебе очень признателен если ты мне свои контактные данные дашь,чтоб если что к тебе можно было обратиться за советом и каждый раз не создавать тему, не боися часто беспокоить не буду люблю во всем сам разбаиратся только когда очень туго будет обращусь)).

0
solar_wind
759 / 750 / 42
Регистрация: 06.07.2009
Сообщений: 2,977
Завершенные тесты: 1
12.08.2010, 06:53 #14
clicksel
Возьми самоучитель по visual studio 2005. На какой версии студии писать разница не сильно большая для начала. Почитай статьи про механизм рисования в окнах, в инете их много и даже с примерами.

Не по теме:

Ну если что vstl@yandex.ru

1
AK3RN
307 / 18 / 3
Регистрация: 01.05.2010
Сообщений: 250
12.08.2010, 08:47 #15
Цитата Сообщение от clicksel Посмотреть сообщение
как создавать полноценые win32 приложения, мож какойнить самоучитель посоветуешь?
Могу порекомендовать Charles Petzold "Programming in Windows 95", книжка довольно старая, в обычных магазинах вряд ли найдешь, но в интернет-магазине заказать вполне реально

Не по теме:

причем советую именно изучать бумажную версию книги, а не электронную

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

Работа с применением стека - C++
Ломаю голову над алгоритмом для следующей задачи: используя стек, вывести из экзаменационной ведомости список студентов, получивших...

Функция с применением меню - C++
Описать набор функций. Организовать эти функции меню. Заполнение массива случайными числами в диапазоне, указанном пользователем,...

Программа с применением массива - C++
Помогите сделать программу с применением массива в С++. Условие: Втсавить число 0 в середину массива М (20), предварительно сдвинув...

Задача с применением классов - C++
Здравствуйте! Из классов должна состоять прога. Надо чтобы было 2 класса, комплексных и дробей. в каждый класс должно входить 3 операции -...


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

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

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