|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,631
|
|||||||||||||||||||||||||||||||||
Раздача карт и оценка комбинации13.07.2016, 23:30. Показов 6912. Ответов 30
Привет! Думаю, ничего нового в моей теме не будут, но все же интересно, очередное задание из Дейтелов, звучит так:
Кликните здесь для просмотра всего текста
Программа на рис 8.27 выглядит так первый файл: DeckOfCards.h Кликните здесь для просмотра всего текста
второй файл: DeckOfCards.cpp Кликните здесь для просмотра всего текста
третий файл:Fig08_27.cpp Кликните здесь для просмотра всего текста
Хотел сам сделать, но не получается, дело вот в чём, я написал как сдать пять карт, слегка подправив функцию сдачи, вот так: Кликните здесь для просмотра всего текста
затем написал функции, хотя они и выглядят не примечательно, но, тем не менее, работают, вот: Кликните здесь для просмотра всего текста
Вывод результата делал для наглядности, чтобы понять работает или нет функция. затем даётся следующее задание, цитирую: Кликните здесь для просмотра всего текста
Не мудрствуя долго, я просто подправил прежнюю функцию сдачи, вот так: Кликните здесь для просмотра всего текста
Здесь я создал ещё две структуры. Хотел сделать так, чтобы сдавалось по одной карте каждому игроку, например, первому игроку первая карта, второму игроку вторая затем первому третья, второму четвёртая.... и.т.д. Вроде, работает, но остаётся вопрос, хотя, этого в задаче нет, а что если, потребуется, троим игрокам раздать, опять код править что ли или это можно как-то реализовать вроде запроса: "Сколько игроков?" Это до меня не доходит никак. Новые классы создавать для каждого игрока?! Хотя, возможно, с этим я забегаю вперёд, так что это не обязательно. Далее нужно сравнить карты игроков, и вывести на экран у кого карта сильнее, вот тут я и завис. Как это сделать, например, если возвращать из функции значения типа bool , то опять же непонятно какая функция, какая комбинация сильнее... (хотя я правила покера не знаю) Если обозначить функции в порядке возрастания, например, пара - это "0", две пары - это "1" и.т.д в предположении, что пара самая маленькая комбинация, ну, может, слабее её только, если вообще ничего не выпала, тогда встаёт вопрос, а если одинаковые комбинации выпали, то, что с чем сравнивать, чтобы понять какая карта сильнее... Ещё получается каждую функцию проверки нужно вызывать дважды для первого игрока и затем для второго игрока, как-то всё очень примитивно, на моё взгляд! Вот с этим вопросом я к вам и обращаюсь, для начала! Я пока делаю без классов (слабо в них ориентируюсь).
0
|
|||||||||||||||||||||||||||||||||
| 13.07.2016, 23:30 | |
|
Ответы с готовыми решениями:
30
Раздача карт, оценка комбинации и выяснение сколько карт взять, сколько сбросить
|
| 13.07.2016, 23:42 | |
|
Закатываешь Енум - перечень всех вариантов комбинаций - пара, две пары, тройка,
0
|
|
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,631
|
|
| 15.07.2016, 02:59 [ТС] | |
|
0
|
|
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,631
|
|
| 16.07.2016, 05:47 [ТС] | |
|
Я что один по этим Дейтелам изучаю, такое ощущение, что на форуме никого нет.
0
|
|
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,631
|
|||||||||||
| 20.07.2016, 22:15 [ТС] | |||||||||||
|
_Ivana
Как создать указатель на вектор, почитал, нашёл такое решение:
0
|
|||||||||||
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,631
|
|||
| 21.07.2016, 04:14 [ТС] | |||
|
Всё до банальности просто, если из обычного массива указатель сделать возможно, то возможно ли сделать тоже самое и с вектором. Попробовал проделать те же действия, которые я проделывал для создания указателя на массив (обычный) ничего не получилось, стал искать ответ, нашёл статью, где описывалась такая вот конструкция, которую я привёл выше в вопросе, но возникла ошибка. Не по теме:
0
|
|||
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,631
|
|
| 21.07.2016, 05:46 [ТС] | |
|
0
|
|
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,631
|
||||||||||||||||||
| 26.07.2016, 05:15 [ТС] | ||||||||||||||||||
Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
Но после попытался вникнуть в правила игры, точнее, как определяется выигрышная комбинация и оказалось, что там много нюансов, я решил эти мелочи попытаться воплотить в код, например, если выпала две пары у обоих игроков, то как определить победителся, Когда у двух игроков есть две пары, тот, у кого есть более высокая пара, выигрывает. Если старшие пары обоих – одного достоинства, выигрывает тот, чья вторая пара выше. Если и они одинаковы, то победитель определяется по старшинству кикера. Кликните здесь для просмотра всего текста
Вот как-то так...
0
|
||||||||||||||||||
| 26.07.2016, 18:27 | ||
|
Код не смотрел, а про
0
|
||
|
257 / 234 / 185
Регистрация: 02.04.2016
Сообщений: 898
|
|
| 26.07.2016, 18:32 | |
|
Liss29, Только вчера закончил Дейтейла. Там полностью весь код написан. Просто перепишите и все.
0
|
|
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,631
|
|||
| 26.07.2016, 21:39 [ТС] | |||
|
shilko2013
1
|
|||
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,631
|
||||||||
| 27.07.2016, 06:01 [ТС] | ||||||||
|
_Ivana
А как в реализации с классами указать, что надо сдать двум игрокам, как вообще этих двух игроков создать? Создать два объекта, так?! Добавлено через 7 минут А вот ещё и продолжение эпопеи с покером: Кликните здесь для просмотра всего текста
У меня даже спина вспотела, три раза прочёл и не понял, что значит лицом вниз, как будто в предыдущем задании они были лицом вверх Ужас в общем.Добавлено через 7 часов 50 минут _Ivana А возможно ли структуры объявить в нутри класса, как данные или это лучше делать в отдельном файле(хедере)? И вообще допустимо объявление структур внутри класса? Например, так: Кликните здесь для просмотра всего текста
0
|
||||||||
|
257 / 234 / 185
Регистрация: 02.04.2016
Сообщений: 898
|
|
| 27.07.2016, 09:45 | |
|
_Ivana, Мне не понравился учебник
0
|
|
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,631
|
|
| 29.07.2016, 23:08 [ТС] | |
|
Добавлено через 18 часов 46 минут
Не могу понять, что значит, чтобы программа исполняла роль сдающего, пока у меня только такая идея: сдать карты пять штук игроку, затем сдать ещё пять карт как бы в банк (откуда, при необходимости, игрок будет брать карты для замены своих карт). Как бы на этом полёт моей фантазии иссяк, как сравнивать, как выбрать карту, которую надо скинуть и заменить на карту из банка, чтобы комбинация стала более сильной, а может вообще не надо менять ничего. Получается надо брать первую карту и сравнивать с картами из банка, если есть совпадения, тогда меняем, и так сравнить все карты из сданных на руки игроку с теми что в банке. Что-то надо будет скинуть, я так понимаю, что скидывать будем самую маленькую, не имеющую комбинаций, карту. Вот всё что смог придумать, правда, этот вариант мне не кажется таким уж удачным. Карта кладутся лицом вниз, блин, но как это организовать, я не умею карты прорисовывать, может, просто знаки вопроса вывести, вместо номиналов карт... Оценить качество карт сдающего, мне это видится так, выясняем какая карта на руках, например, пара, две пары или отсутствие комбинации, и смотрим, например, если есть пара, то нужно как-то понять, есть ли в банке карты одного ранга с этой парой, чтобы сделать комбинацию три или каре, если нет, то проверяем на другую комбинацию, остальные три карты не имеющие отношения к паре,(кароль, кароль, восемь, пять, два| Проверяем: восемь, пять два) мы сравниваем с картами из банка в надежде получить фулл-хаус, если совпадений нет, то ничего не меняем, а если есть, можно сделать из пары, комбинацию две пары... Нужна помощь, в этой задаче без неё, видимо, никак.
0
|
|
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,631
|
||||||
| 31.07.2016, 21:13 [ТС] | ||||||
|
deckOfCards.h
Кликните здесь для просмотра всего текста
0
|
||||||
|
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,631
|
|||||||||||
| 31.07.2016, 21:15 [ТС] | |||||||||||
|
deckOfCards.cpp
Кликните здесь для просмотра всего текста
Добавлено через 42 секунды fig08_13.cpp Кликните здесь для просмотра всего текста
0
|
|||||||||||
| 31.07.2016, 21:19 | ||
![]() Но я ее про100 4итал, без выполнения упражнений, ибо мне хватило выполнения задач из ранее прочитанной книги Лафоре. PS: после дейтелов идеальным вариантом будет прочтение липпмана, очень много нового по языку для себя узнаете
0
|
||
| 31.07.2016, 21:19 | |
|
Помогаю со студенческими работами здесь
20
Реализовать структуру "Колода карт"; сформировать случайную перетасовку карт для трёх игроков Раздача карт из колоды Раздача игральных карт на 3 человека
Раздача колоды из 32 карт на 3 человека Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|