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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Не по теме:

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

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

Не по теме:

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

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.08.2010, 08:47     Сделать бридж с применением ООП.
Еще ссылки по теме:

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

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

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

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

Составить программу c применением функции С++ - C++
Помогите составить программу для вычисления значений функции вида: cos(x2)+cos2(x3)+cos3(y4)


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

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

Не по теме:

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

Yandex
Объявления
12.08.2010, 08:47     Сделать бридж с применением ООП.
Ответ Создать тему
Опции темы

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