Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2007, 10:53   #11
Achtung-Partizanen
Пользователь
 
Аватар для Achtung-Partizanen
 
Регистрация: 04.05.2007
Сообщений: 14
По умолчанию

Ну вы в косынку играли? Так вот, косынка - это клондайк в чистом виде, а мой "канкан" - тоже разновидность клондайка.
О правилах: колода в 52 карты, с самого начала в нижней части поля раскладывается на 13 стопок с числом карт 1-2-3-4-5-6-7-6-5-4-3-2-1, в каждой стопке верхняя карта открыта, остальные закрыты. Таким образом, в этих стопках лежат 49 карт, оставшиеся 3 карты кладутся в левом верхнем углу поля на 3 особых места (насколько я понял, эти 3 места можно использовать как резервные, на каждом по 1 карте). Цель - выложить все карты по мастям в восходящем порядке от туза до короля на 4 основы в правом верхнем углу (вспомните косынку), в процессе этого из карт на столбцах можно выстраивать цепи по нисходящей, чередуя красный и черный цвет карт (опять же косынка), на пустое место столбца можно класть только цепь, начинающуюся с короля.
Соответственно, что нам может понадобиться: процедура проверки, является ли взятая игроком стопка карт цепью (т.е. идут ли достоинства подряд, чередуется ли цвет), является ли взятая карта королем (при перемещении на пустое место), что еще может понадобиться?
Achtung-Partizanen вне форума Ответить с цитированием
Старый 04.10.2007, 11:34   #12
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,100
По умолчанию

Ну понадобица еще проверка является карта, по которой ткнули закрытой или открытой
[offtop]ПГУ? Препод Коннова?[/offtop]

Последний раз редактировалось pu4koff; 04.10.2007 в 11:40.
pu4koff на форуме Ответить с цитированием
Старый 04.10.2007, 12:26   #13
Xandr
Пользователь
 
Регистрация: 12.07.2007
Сообщений: 60
По умолчанию

Вот компанент для создания подобных игр. Может пригодиться.
Вложения
Тип файла: rar Cards2.rar (348.7 Кб, 80 просмотров)
Xandr вне форума Ответить с цитированием
Старый 04.10.2007, 18:17   #14
Achtung-Partizanen
Пользователь
 
Аватар для Achtung-Partizanen
 
Регистрация: 04.05.2007
Сообщений: 14
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
Ну понадобица еще проверка является карта, по которой ткнули закрытой или открытой
А, точно.
Цитата:
Сообщение от pu4koff Посмотреть сообщение
[offtop]ПГУ? Препод Коннова?[/offtop]
Ага, ПГУ

:2:Xandr: Компонент гляну...
Achtung-Partizanen вне форума Ответить с цитированием
Старый 04.10.2007, 18:45   #15
QuAlex
 
Регистрация: 04.10.2007
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Achtung-Partizanen Посмотреть сообщение
Ну вы в косынку играли? Так вот, косынка - это клондайк в чистом виде, а мой "канкан" - тоже разновидность клондайка.
О правилах: <censored>
Перевормулируем правила на алгоритмическом языке:

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

Можно "захватить" одну из открытых карт и перетащить на другую колонку или специфическую позицию. Если операция удачна, то карта и вся ее нижележащая цепь будет перемещена на новое место. Если при этом верхней оказывается закрытая карта, то она открывается (?это не описано?). Если операция неудачна, то ничего не происходит (или пищит спикер).

На пустую колонку можно перетащить любого короля из любой (?а может только из буфера?) спецпозиции или любого открытого короля вместе с его цепью из другой стопки. На непустую колонку можно перенести только в зависимости от значения верхней карты. На туз ничего нельзя положить, на все остальные можно положить только одну (вместе с лежащими выше открытыми) из двух заранее определенных карт (старше на 1 и другого цвета).
На спецпозицию-буфер можно перенести (?убедись, что вообще туда можно таскать?) верхнюю из любой стопки или финала (?а может из финала нельзя?) при том, что эта позиция буфера будет пуста.
На каждую из финальных позиций мы можем положить только заранее указанную карту, причем только одну (?я предполагаю, что за каждой из позиций закреплена своя масть?), после перемещения эта позиция меняется на новую (+1 к стоимости, масть не меняется).
EOS {End of Specification}
Могу написать, какие классы надо создать, их интерфейс, какие классы Delphi использовать. Нужно?
...Наперекор всем сомнениям успеха добьется лишь тот, кто способен действовать в любых условиях...
Heinz Wilhelm Guderian

Последний раз редактировалось QuAlex; 04.10.2007 в 18:47.
QuAlex вне форума Ответить с цитированием
Старый 05.10.2007, 10:59   #16
Achtung-Partizanen
Пользователь
 
Аватар для Achtung-Partizanen
 
Регистрация: 04.05.2007
Сообщений: 14
По умолчанию

Цитата:
Сообщение от QuAlex Посмотреть сообщение
Есть несколько (у нас 13) колонок карт. Каждая колонка может быть: пустой, либо верхняя часть закрыта (от нуля и выше карт), а нижняя открыта (в нижней части >= 1 карта).
Есть 2 типа специфических позиций: 3 позиции под буфер для одной карты (любой) и финальные позиции, которые накапливают (?а может можно забрать верхнюю?) карты в соответствии с мастями строго по возрастанию достоинства.
В принципе, я думаю, что верхнюю с финала забрать можно. В разных программах я видел оба варианта - где-то можно, где-то нет. По мне, лучше, чтобы было можно (хотя запретить было бы и проще)
Цитата:
Сообщение от QuAlex Посмотреть сообщение
На пустую колонку можно перетащить любого короля из любой (?а может только из буфера?) спецпозиции или любого открытого короля вместе с его цепью из другой стопки. На непустую колонку можно перенести только в зависимости от значения верхней карты. На туз ничего нельзя положить, на все остальные можно положить только одну (вместе с лежащими выше открытыми) из двух заранее определенных карт (старше на 1 и другого цвета).
Думаю, все так. И короля можно брать откуда угодно
Цитата:
Сообщение от QuAlex Посмотреть сообщение
На спецпозицию-буфер можно перенести (?убедись, что вообще туда можно таскать?) верхнюю из любой стопки или финала (?а может из финала нельзя?) при том, что эта позиция буфера будет пуста.
На каждую из финальных позиций мы можем положить только заранее указанную карту, причем только одну (?я предполагаю, что за каждой из позиций закреплена своя масть?), после перемещения эта позиция меняется на новую (+1 к стоимости, масть не меняется).
По-моему, на буфер переносить можно. Короче, прилагаю скан того листа, на котором мне напечатали задание. Там все более менее ясно (если надо, могу и перевод выложить)
Цитата:
Сообщение от QuAlex Посмотреть сообщение
Могу написать, какие классы надо создать, их интерфейс, какие классы Delphi использовать. Нужно?
Давай. Поглядим.


2 Xandr: да, действительно программа стоящая. И хотя у тестовых прог проекты не компилируются, а экзешник у одной работает некорректно, а у второй его вообще нет, но модули действительно заслуживают внимания. Обязательно учту.
Achtung-Partizanen вне форума Ответить с цитированием
Старый 05.10.2007, 21:44   #17
QuAlex
 
Регистрация: 04.10.2007
Сообщений: 8
По умолчанию

Вернулся с работы, сделал маленький тестовый проектик на Delphi 5.

Их на самом деле два в проектной группе: один собирает картинки в dll, а второй демонстрирует загрузку картинок и техноголию "хвать-и-плюх"

Ресурсная dll имеет в своем составе только один .rc файл, который вставляет в себя картинки из текущего каталога с именами в кавычках на каждой строке. Картинки взяты из проекта Xandr, я их сделал доступными для свойства Transparent объекта TImage (обвел розовым).

Запускаемый проект загружает две картинки из dll. Джокера можно таскать и кидать на туза. При этом в строке статуса появляются интересные сообщения.

Я предлагаю загружать картинки так же, и таскать тоже, проверяя в OnDragOver целевой карты возможность переноса, а в OnDragDrop цели осуществлять перенос карт на стопку.
Вложения
Тип файла: rar Cards.rar (49.6 Кб, 35 просмотров)
...Наперекор всем сомнениям успеха добьется лишь тот, кто способен действовать в любых условиях...
Heinz Wilhelm Guderian
QuAlex вне форума Ответить с цитированием
Старый 06.10.2007, 11:43   #18
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

а не лучше так? (я про графику)
drag_card.rar
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 06.10.2007, 19:32   #19
Achtung-Partizanen
Пользователь
 
Аватар для Achtung-Partizanen
 
Регистрация: 04.05.2007
Сообщений: 14
По умолчанию

-> QuAlex: картинки нифига не грузит. Просто два зеленых прямоугольника, и левый берется и перетаскивается на правый (сообщения в статусной строке появляются). А при нажатии на кнопку Батон1 джокер найти не может. Возможно, из-за несовместимости версий (у меня 7-ая делфа)
Кстати, в данном пасьянсе ни джокер, ни зеро, ни крест не нужны будут. Если только для тестовых примеров...
И еще. Имхо картинки все надо загружать из dll, чтобы в случае необходимости можно было менять рисунки карт (к примеру, в настройках игры самим игроком) (возможно, понадобится), и чтобы игрок сам не мог с этими картинками ничего сделать (dll так просто не вскроешь )
Achtung-Partizanen вне форума Ответить с цитированием
Старый 12.10.2007, 19:28   #20
QuAlex
 
Регистрация: 04.10.2007
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Achtung-Partizanen Посмотреть сообщение
картинки нифига не грузит.
Ну, надо открыть .bpg файл (это проектная группа с проектами для exe и dll) через Delphi>Open Project и сделать Build All Projects.
dll и появится. Картинки можно подредактировать, и снова перебилдить.
В новом проекте я dll оставил, только запаковал UPX, чтоб не разбухала.

В этот раз я готов рассказать, что планировал: как все будет работать.
В приложенном файле (ReadMe.txt в архиве) я набросал заметки, получилось не очень, я торопился, но вроде относительно читабельно получилось.
Также там новый проект, который таскает карту и отображает, что таскает полупрозрачно.

Пока писал, нашел недостаки в модуле UnitCards. Исправлю.
Cледующее приложение будет уметь таскать все карты и обрабатывать простую логику. Оно будет готово примерно в течении недели, как получится освободить часа 4-5, так сразу напишу и выложу. Его можно будет уже переделывать под твою задачу.

Кстати, ты так и не выложил ТЗ. Или я его просто не вижу.

-> mutabor Ну, можно и так, но слишком много вычислений. Глянь, как я сделал, используя Std драг-дроп.
Вложения
Тип файла: rar Cards_01.rar (63.0 Кб, 41 просмотров)
...Наперекор всем сомнениям успеха добьется лишь тот, кто способен действовать в любых условиях...
Heinz Wilhelm Guderian
QuAlex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Курсовая работа deadh5n1 Помощь студентам 3 05.11.2008 20:05
курсовая lacost Фриланс 2 03.06.2008 21:26
Курсовая. Файлы Sid maksim Паскаль, Turbo Pascal, PascalABC.NET 6 13.05.2008 20:19
help! курсовая Nurik Фриланс 2 02.04.2007 11:57