Игра Tetris
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ им. Н.Э. БАУМАНА КАЛУЖСКИЙ ФИЛИАЛ КАФЕДРА ЭИУ2-КФ «КОМПЬЮТЕРНЫЕ СИСТЕМЫ И СЕТИ» КУРСОВАЯ РАБОТА по курсу “Технология программирования” «Игра Tetris» ВведениеИгры - непременная составляющая любой человеческой культуры. Слово «игра» мы прилагаем почти ко всякому детскому занятию. Посредством игры наиболее интенсивно развивается целостное восприятие окружающего мира, наглядно-образное мышление, творческое воображение. Поэтому кроме программ, которые облегчают людям работу, программисты придумали увлекательное развлечение-компьютерные игры. Сначала в эти игры играли только они сами, но очень скоро их эстафету приняли дети и взрослые по всему миру. Сейчас уже трудно найти человека, имеющего компьютер и ни разу не игравшего в компьютерные игры. В 1977г. Atari выпустила 2600 VCS, первую игровую приставку с несколькими играми. Ее технические характеристики по нынешним временам могут вызвать только улыбку, но по тем временам два килобайта ПЗУ и 128 байт ОЗУ были вполне достаточны, чтобы обеспечить немалый коммерческий успех. А дальше все понеслось с невероятной скоростью, как лавина по склону горы. В 1977 году фирма Apple начала продажи Apple II, в 1978 знаменитейшая игра Space Invaders родилась все в той же японской фирме Taito, а в 1979 разработчиками из Atari основана фирма Activision. Тогда же появилась Atari 800, где впервые был задействован восьмибитный процессор.Восьмидесятые, а точнее, самое их начало, очень и очень быстро показали, что время компьютерных игр пришло всерьез и надолго. Phillips, подключившись ко всеобщей гонке, создает Odyssey2, Mattel выпускает Intellivision, хотя и с лучшей графиков, но весьма жутким устройством управления. Namco изобретает игру, дожившую до наших дней практически без изменений: великий Pac-Man, и по сей день регулярно реализуемый на разных платформах и в разных видах. Индустрия в эти годы благополучно взяла крупный рубеж: больше одного миллиарда долларов (а если пересчитать эту цифру на современные доллары, получится около двух с половиной миллиардов). Продано было около 300000 приставок и игральных автоматов. Atari не стояла на месте и изобрела Asteroids, да и в остальных жанрах застоя не намечалось: в приключенческих играх родился классический текстовый квест от Infocom под названием Zork (впоследствии переросший в серию), да и первая игра из серии Ultima вышла все в том же 1980... А на следующий год бум достиг вообще невообразимого размаха. Продаж уже больше шести миллиардов долларов, игры так и сыпались: Donkey Kong от Nintendo, Galaxian, Centipede, Tempest, сестричка Pac-Man'а по имени Ms.Pac-Man. И все в том же 1981 произошло не слишком заметное поначалу, зато впоследствии полностью перевернувшее мир, событие: IBM впервые представила публике IBM PC. И понеслось... Да как понеслось. Моментально стали образовываться фирмы, ориентированные исключительно на домашние компьютеры: Sierra On-Line, Broderbund, BudgeCo, Electronic Arts. А в 1983 году всех ждал суровейший кризис, продлившийся несколько лет. Фирма Mattel потеряла на Intellivision 225 миллионов долларов, столько, сколько ей удалось заработать за все предыдущие четыре года. Atari тоже столкнулась с серьезными финансовыми проблемами. Coleco вообще рухнула. К 1984 году общий объем игровой индустрии составлял всего около 800 миллионов долларов. Правда, несмотря на грустные условия, рождались и шедевры, ставшие чуть позднее основой для нового подъема. Например, Commodore 64, несложный домашний компьютер, проданный в количестве около 20 миллионов штук. А все в том же, богатом на сенсации, 1984 году Apple впервые представила народу Macintosh, и за первые шесть месяцев продала сто тысяч штук. Sierra On-Line выпустила первую игру из серии King's Quest, сохранившей популярность и до сих пор. 1986 год до сих пор многие вспоминают с теплым, хотя и грустным, чувством: именно тогда появилась "подружка" (Amiga на испанском языке), выпущенная фирмой Commodore. Замечательная машинка, разработанная инженером из Atari Джеем Майнером (Jay Miner), была удивительно мощной и напичканной новаторскими идеями, но неудачный маркетинг способен похоронить любой шедевр, и Amiga так и не осилила дорогу в широкие массы. Правда, в последнее время ходят слухи об оживлении этой марки, но получится ли что-нибудь - пока неясно. Время шло, компьютеры потихоньку становились все мощнее, игры все красивее, где-то года с 1987 на IBM PC стали появляться игры, похожие на сегодняшние, как раз тогда начал широко применяться видеоадаптер VGA, а потом и SVGA, и показ 256 цветов вместо 16 очень сильно поднял качество графики. Хорошо это было? Наверное, да, хотя, откровенно говоря, после выхода Тетриса в 1988 году погоня за интересностью игр явно ослабела, заменившись погоней за зрелищностью. Надо еще, пожалуй, упомянть выпуск в 1989 году карманной компьютерной игры Gameboy, и рассказ о древних годах, заложивших фундамент того, что мы сегодня зовем индустрией компьютерных игр, можно считать законченным, тем более, что с начала девяностых почти одновременно "пошел" бум и в играх для PC и в приставках. К примеру, одна только фирма Nintendo в 1992 году продала товара на 7 миллиардов долларов (из них 4,7 миллиардов только в США), и получила большую прибыль, чем все американские кино- и телестудии вместе взятые. Увы, не назвать и всех эпохальных игр, они, видимо, рано или поздно получат свои страницы на сервере музея игр, например, самая-самая-самая игра всех времен на PC - знаменитый Myst, да и шедевр под названием DOOM... Появился мультиплеер, поддержка Internet, онлайновые миры - столько всего, что в небольшое введение все не поместится. Да и не надо, наверное: дело все-таки не в том, во что именно мы играем, а в том, зачем и почему мы это делаем... В настоящее время существует несколько разновидностей компьютерных игр. Данная курсовая работа выполняется в рамках предмета «Технология программирования» и в связи с этим хотелось бы в нескольких словах (из-за ограничения по объему) отметить важность данного предмета в повседневной жизни. Если ещё в начале прошлого века присутствовали консерватизм и недоверие к техническим новшествам, то в наши дни мы только радуемся техническим новинкам, от мобильных телефонов до стиральных машин. Сейчас уже вовсю применяется «безлюдная технология»-замена живого труда и относительно простых механизмов сложнейшими автоматами. Сразу же хочется предостеречь от узкого толкования слова «технология» как способа организации производства на заводах. Конечно, прогресс в технологии производства облегчает труд и повышает его производительность. Но в рамках данной курсовой работы нас интересует технология научного поиска и эксперимента, технология проектирования и, естественно, проблема взаимодействия человека и ЭВМ. 1. Исследовательская часть1.1 Постановка задачиВ данной курсовой работе требуется написать программу, реализующую графическое решение логической задачи «Волк, Коза и капуста, которые должны переправиться на другой берег, а вплавь они этого сделать не могут, так как капуста может плыть только по течению, и они должны прибегнуть к помощи лодочника». 1.2 Обзор аналогичных продуктовТщательный анализ всемирной сети Internet на предмет обнаружения аналогичных продуктов не дал никаких результатов, то же самое показало исследование магазинов с компьютерными играми, что показывает уникальность и неоспоримое преимущество нашей игры перед другими программными продуктами. Ведь в настоящее время рынок компьютерных игр заполнен предложениями иностранных фирм, которые навязывают пользователям свою культуру и восприятие мира, поэтому родители всегда стараются найти продукт отечественного производства, желательно знакомый им с детства, и наша игра точно нашла бы отклик в их сердцах. 1.3 Описание игрыДанная игра графически реализует всем известную задачу по перемещению волка, козы и капусты с одного на другой берег. Её правила очень просты: одновременно на одном берегу без присмотра лодочника не может находиться волк с козой и коза с капустой. В лодке, не считая лодочника, может находиться только волк, коза или капуста. Как только волк, коза и капуста оказались на другом берегу, задача является выполненной. 1.4 Описание программы1. Общие сведения.Программа называется "TETRIS", является классической версией отечественной игры ТЕТРИС.[1] Программа написана в интегрированной среде Borland Delphi 7. Для её компиляции требуется транслятор с этого языка и ОС Windows 95/NT. Техническая документация написана с использованием программного продукта Microsoft Word XP. 2. Используемые технические средства. Программа была написана и откомпилирована на компьютере со следующей конфигурацией Pentim III 500/128Mb RAM/32Mb VRAM/MS Windows 98. 3. Входные данные. Клавиши: "RIGHT", "LEFT", "UP" или "ESC" - вводимые в процессе игры в режиме реального времени. Данные переменные организованы в виде символьных переменных. 4. Выходные данные. Информация, выводимая на экран в графическом режиме: рисунок стакана, падающие и лежащие на дне фигуры, поле с выводом следующей фигуры. Все организовано в виде двумерных массивов. 5.Выводы по задаче. В результате использования программы не было ошибок в работе программы. Это позволяет сделать вывод о соответствии алгоритма постановке задачи. Выдача информации наглядна: на экране постоянно отображена игровая ситуация. Текст программы удобочитаем, т.к. содержит комментарии, поясняющие суть той или иной ситуации. 2. Описание программы2.1 Решение поставленной задачиГлавной проблемой в решении этой задачи являлся вывод графики в Паскале. Для построения изображений на экране используется система координат. Отсчет начинается от верхнего левого угла экрана, который имеет координаты (0,0). Значение Х (столбец) увеличивается слева направо, значение Y (строка) увеличивается сверху вниз. Чтобы строить изображения, необходимо указывать точку начала вывода. В текстовых режимах эту точку указывает курсор, который присутствует на экране. В графических режимах видимого курсора нет, но есть невидимый текущий указатель CP (Current Pointer). Фактически это тот же курсор, но он невидим. Изображение фона мы получили из Bmp-файла, из таких же файлов взят, курсор мыши и элементы интерфейса. Теперь необходимо правильно считать Bmp-файлы и перевернуть картинку «с головы на ноги». По решению разработчиков формат Bmp-файла не привязан к конкретной аппаратной платформе. Этот файл состоит из четырех частей: заголовка, информационного заголовка, таблицы цветов (палитры) и данных изображения. Если в файле хранится изображение с глубиной цвета 24 бита (16 млн. цветов), то таблица цветов может отсутствовать, однако в нашем, 256-цветном случае она есть. Структура каждой из частей файла, хранящего 256-цветное изображение, дана в таблице 1. |
Структура Bmp-файла | | Имя | Длина | Смещение | Описание | | Заголовок файла (BitMapFileHeader) | | Type | 2 | 0 | Сигнатура "BM" | | Size | 4 | 2 | Размер файла | | Reserved 1 | 2 | 6 | Зарезервировано | | Reserved 2 | 2 | 8 | Зарезервировано | | OffsetBits | 4 | 10 | Смещение изображения от начала файла | | Информационный заголовок (BitMapInfoHeader) | | Size | 4 | 14 | Длина заголовка | | Width | 4 | 18 | Ширина изображения, точки | | Height | 4 | 22 | Высота изображения, точки | | Planes | 2 | 26 | Число плоскостей | | BitCount | 2 | 28 | Глубина цвета, бит на точку | | Compression | 4 | 30 | Тип компрессии (0 - несжатое изображение) | | SizeImage | 4 | 34 | Размер изображения, байт | | XpelsPerMeter | 4 | 38 | Горизонтальное разрешение, точки на метр | | YpelsPerMeter | 4 | 42 | Вертикальное разрешение, точки на метр | | ColorsUsed | 4 | 46 | Число используемых цветов (0 - максимально возможное для данной глубины цвета) | | ColorsImportant | 4 | 50 | Число основных цветов | | Таблица цветов (палитра) (ColorTable) | | | ColorTable | 1024 | 54 | 256 элементов по 4 байта | | Данные изображения (BitMap Array) | | | Image | Size | 1078 | Изображение, записанное по строкам слева направо и снизу вверх | | |
Страницы: 1, 2
|