1 / 1 / 0
Регистрация: 24.02.2010
Сообщений: 19
1

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

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

Задали мне такую задачу на курсах, но сколько не пытался никак не пойму с чего начать и как двигатся.
Помогите разобраца.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.08.2010, 12:32
Ответы с готовыми решениями:

Динамический массив с применением ООП
Пытаюсь на delphi динамический массив реализовать, применив ООП. И столкнулся с трудностью, когда...

Написать игру с применением ООП
Всем привет :) Так случилось что дали нам задание написать игру(Pascal), точнее игру нужно было...

На чем лучше писать программу с применением ООП
Есть на выбор Паскаль либо Visual c,на чем лучше и проще?

Создать программу-тест обучалку с применением ООП
Добрый вечер! у меня задание, создать программу-тест обучалку (какой именно-не имеет значения)...

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

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

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

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

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

Я не могу понять как сделать колоду...
Это 32 инта на карты + 32 буля для проверки есть карта в колоде или нет... не говоря уже про карты игроков... геморойно...
И как тасовку сделать??? Сколько мозгую не доходит...
0
Эксперт С++
5827 / 3478 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
10.08.2010, 21:16 9
Цитата Сообщение от CronoS0 Посмотреть сообщение
И как тасовку сделать???
Используй std::random_shuffle
0
1 / 1 / 0
Регистрация: 24.02.2010
Сообщений: 19
10.08.2010, 21:23  [ТС] 10
оО... не знал такого =)))
0
3 / 3 / 0
Регистрация: 09.08.2010
Сообщений: 61
10.08.2010, 22:28 11
vitaly1981, в Visual Studio реально хорошую карточную игру сделать без постороних прог,DirectX и т.д? и примерно сколько для этого времени понадобится новичку и за сколько времени сделаешь ты?))
1
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
11.08.2010, 07:07 12
CronoS0
1. Карта
свойства: масть, достоинство

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

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

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

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

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

Не по теме:

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

0
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
12.08.2010, 06:53 14
clicksel
Возьми самоучитель по visual studio 2005. На какой версии студии писать разница не сильно большая для начала. Почитай статьи про механизм рисования в окнах, в инете их много и даже с примерами.

Не по теме:

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

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

Не по теме:

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

1
3 / 3 / 0
Регистрация: 09.08.2010
Сообщений: 61
13.08.2010, 00:46 16
Цитата Сообщение от vitaly1981 Посмотреть сообщение
Возьми самоучитель по visual studio 2005.
Взял самоучитель Айвор Хортона "Visual C++ базовый курс.",там описывается создание виндовс приложении с помощию MFC и с помощью С++/CLI, какой из этих способов лучше подойдет для карточной игры, что посоветуете?

Почитай статьи про механизм рисования в окнах, в инете их много и даже с примерами.
я в этом рисовании пока не очень понимаю в гугле на запрос "механизм рисования в окнах C++" не так уж много нужных ссылок выдает да и "рисования в окнах C++" c примерами чет не заметил если не трудно будет киньте одну ссылку.
0
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
13.08.2010, 06:07 17
clicksel
CLI требует .NET Framework установленный у пользователя, а он 350 Мб весит....

Набери в поисковике "visual c++ рисование в окне" например
1
307 / 18 / 4
Регистрация: 01.05.2010
Сообщений: 250
13.08.2010, 11:11 18
Цитата Сообщение от clicksel Посмотреть сообщение
Взял самоучитель Айвор Хортона "Visual C++ базовый курс.",там описывается создание виндовс приложении с помощию MFC и с помощью С++/CLI, какой из этих способов лучше подойдет для карточной игры, что посоветуете?
Я бы на Вашем месте начал с процедурного(а соответственно и простого, но при этом очень мощного) WinAPI, MFC это то же самое, только в объектно-ориентированной обертке и понять СРАЗУ основные концепции будет довольно тяжело, а уж накодить по-быстрому и подавно

p.s. Если с английским дружите, добро пожаловать в лс - скину ссылки на интересные англоязычные сайты по WinAPI
1
3 / 3 / 0
Регистрация: 09.08.2010
Сообщений: 61
13.08.2010, 12:40 19
Цитата Сообщение от vitaly1981 Посмотреть сообщение
CLI требует .NET Framework установленный у пользователя, а он 350 Мб весит....
тоесть если напишу игру на СLI, чтоб кто-нибудь кроме меня в нее сыграл должен иметь на компе .NET Framework?

Не по теме:

Цитата Сообщение от AK3RN Посмотреть сообщение
p.s. Если с английским дружите, добро пожаловать в лс - скину ссылки на интересные англоязычные сайты по WinAPI
с английским дружим))

0
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
13.08.2010, 21:28 20
AK3RN WinAPI и MFC это далеко не одно и то же....
Кроме того можно писать программы используя ООП и без MFC.
Вы не путайте, ООП это методика построения программ, а WinAPI и MFC это библиотеки для взаимодействия с операционной системой и для упрощения построения программ.....

clicksel Именно так, конечно он в Windows 7 он уже встроен, но пользователям Windows XP его придется устанавливать.
Я предпочитаю использовать WinAPI и иногда MFC (не все его классы стоит использовать, они тоже косяки имеют)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.08.2010, 21:28
Помогаю со студенческими работами здесь

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

как сделать решение задачу Access с % с применением вба
вот задача. Вы работаете в парикмахерской. Ваша парикмахерская стрижет клиентов в соответствии с...

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

бридж и роутер
Несколько месяцев назад обратился с просьбой настроить вай фай на модеме dlink2600U (укртелеком...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru