22:19

...пытаюсь поймать своё настроение...
Ммммм...не кидайте тапками.

Получила курсовик по С++. Игра "Колонки". Что это за игра никто не знает? И как примерно её реализовывать?

Комментарии
04.03.2007 в 13:14

А ты уже научился заряжать левой ногой свой телефон?
Нашел тут: http://softsearch.ru/programs/4-024...-download.shtml



Описание:

Это увлекательная логическая игра, чем-то напоминающая любимые всеми игры типа Lines или Balls. В прямоугольном окошке на дно падают вертикальные колонки, состоящие из трех разноцветных блоков. Игрок может перемещать колонку по полю во время ее падения, а также менять порядок цветных блоков внутри колонки. Упавшие блоки исчезают, если они образуют вертикальную, горизонтальную или диагональную линию одного цвета, длиной минимум в три блока. На протяжении всей игры ведется подсчет очков. При заполнении всего окна блоками, игра заканчивается.



А реализовывать требуется в консоли ?
05.03.2007 в 12:18

...пытаюсь поймать своё настроение...
SonicCat ну я и попала)))



К сожелению, не в консоли.
05.03.2007 в 19:47

А ты уже научился заряжать левой ногой свой телефон?
[Дверной косяк] К сожелению, не в консоли.

Ну вобще логично что не в консоли (но учителя разные бывают)



А реализовывать вам кончено муторно придется, как никак проект. Думаю можно на форме выделить участок под поле (я обычно для этого Image использую) разлинованное на клетки, в проге представить его двумерным массивом. Т.е. рисовать фигуру на поле можно просто закрашивая соответствующие клетки. Сами объекты можно хранить в отдельном динамическом списке ( СТЭК ). Для каждой с конца вызывать обработчик хода, т.е. если падает передвинуть. + придется учесть что сами объекты состоят из кусков, как никак ни удалении будет будет удалятся только часть объекта, вобщем ООП спасет вас.



А в ячейках карты можно храненить инфу: занято/свободно.
05.03.2007 в 22:01

...пытаюсь поймать своё настроение...
SonicCat мой препод - бывший хакер, который си знает как свои пять пальцев))) И требования соответственные. К сожалению, такого же интереса с моей стороны нет.Воти офигиваю теперь. Но за советы спасибо.
05.03.2007 в 23:55

Слабый всё время идёт по легкой дороге. Черта сильного - выбрать трудный путь.
Значится так. На мой взгляд помимо разлиновки поля и разметки занято/не занято надо добавить код цвета в тот же массив, дабы потом легче было обрабатывать события перестановки цветов и смещения, которые конечно надо реализовать по нажатию клавиш (события надо оформлять для image). Цвет можно менять 'всплыванием', т.е смещением на один вверх, при том первый квадрат сверху становится первым снизу, остальные сдвигаются вверх (можно и не сдвигать, т.к. переставив один квадрат фигура уже изменилась).

Смещение колонок легко реализовать, т.к. у нас уже есть массив-матрица, который показывает какие клетки заняты. Их надо будет сдвигать в массиве, а потом соответственно заполнять поле image.

Надо заранее уточнить сколько фигур (и их частей) в один момент времени может быть на форме; от этого сильно зависит алгоритм сдвижения (в стороны). И ещё по какому принципу разбивать на квадратики, т.е способ привязки квадрата к строке его характеристик в массиве (координатами или ещё чем), это я к тому, что форму-то растянуть/развернуть можно, а за ней растянется и картинка, а квадратики могут остаться на своём прежнем месте, что будет косяком.



Теперь про 'удаление'. У нас уже есть массив с данными занято/незанято/цвет. Теперь его при каждом шаге (падении колонки на 1 ступень) надо фильтровать в соответствии с системой ограничений (условиями игры, когда совпавшее убирается)

Если что-то убралось - надо заново фильтровать до тех пор пока совпадений не будет.

Всё это ИМХО, конечно, но буду рад, если смог помочь.
06.03.2007 в 00:00

...пытаюсь поймать своё настроение...
ainu Мне нельзя на ночь такое читать... ))
07.03.2007 в 00:07

Слабый всё время идёт по легкой дороге. Черта сильного - выбрать трудный путь.
Ну, знаешь...

Не зря же ты С++ изучаешь.

Я всего-лишь программист-любитель и часто пишу всякие там скрипты для администрирования, там дебри погуще игрушки.

Добрый тебе совет: составь сначала на бумаге план-каркас для программы в виде её структуры и констукций если->то, потом пройдись как бы решая задачу для одной итерации и посмотри, что будет твориться с условиями.



А вообще на ночь смотреть код вредно - плывущие мимо глаз строчки функций, и мысли, бегающие вокруг классов во сне, не способствуют хорошему самочувствию.



Never fear, C++ is here! В вольном переводе...



П.С. Будут вопросы - пиши в аську, номер в профиле.

07.03.2007 в 11:30

Слабый всё время идёт по легкой дороге. Черта сильного - выбрать трудный путь.
Да ещё кое-что. Старая шутка: пройдись дебагером... по мозгам:))
07.03.2007 в 13:42

...пытаюсь поймать своё настроение...
ainu Не зря же ты С++ изучаешь

когда меня родители отправляли на этот факультет и специальность, я вообще не собиралась ничем таким заниматься. И только через полгода учёбы поняла, что эти блок-схемы и куча дурацких символов никуда не денутся.



А вообще на ночь смотреть код вредно - плывущие мимо глаз строчки функций, и мысли, бегающие вокруг классов во сне, не способствуют хорошему самочувствию.

Зря!!! Между прочим, когда до сдачи остаётся одна ночь, все мысленные процессы очень активизируются.
08.03.2007 в 17:26

Слабый всё время идёт по легкой дороге. Черта сильного - выбрать трудный путь.
Я не учитываю условий, я в общем говорю.

Есть поговорка у программистов - любое исключение можно записать в виде условия в функций, но бывают исключения. ;))

Всё остальное содержание последнего твоего коммента - без комментариев.

Если возникнут какие-то конкретные вопросы по принципиальной реализации - пиши.
08.03.2007 в 21:53

...пытаюсь поймать своё настроение...
ainu спасибо. Я учту.

Расширенная форма

Редактировать

Подписаться на новые комментарии
Получать уведомления о новых комментариях на E-mail