Курсовой проект: реализация игры Змейка на языке ассемблера (TASM) и анализ алгоритмов сортировки

МИНИСТЕРСТВО ОБРАЗОВАНИЯ и науки РЕСПУБЛИКИ КАЗАХСТАН
Казахский Национальный Технический Университет имени Каныша Сатпаева
Кафедра Вычислительной техники
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовому проекту
Тема
Руководитель
должность, уч. cтепень и звание
И. О. Ф.
""19___г.
Нормоконтролер
И. О. Ф.
Студент Ф. И. О.
Специальность
Группа
Алматы 2003
ÒÀÏÑÛÐÌÀ
Æûëàíøà» îéûíûí ìåíãåðåòií ïðîãðàììà æàçû»ûç
Òàïñûðìàíû áåðãåí ″___″2003æ. Àãà îêûòóøû : Ìóñòàôèíà Á. Ì.
Òàïñûðìà àëãàí ″___″2003г. студент : Íóðáàåâ À. Б.
ÌÀÇ̵ÍÛ
Êiðiñïå. …. . ………4
1. äiñòi ñèïàòòàó . . . 5
2. Ïðîãðàììàíû ñèïàòòàó. . 6
2. 1 Æàëïû ìà¹ë½ìàòòàð. ………6
2. 2 Ôóíêöèîíàëäûº áåëãiëåíói . ……. . 7
3. Ëîãèêàëûº ñòðóêòóðà ñèïàòòàìàñû . . . 7
3. 1 Блок-схема . 7
3. 2 Ïðîãðàììàíû» æîëäûº ñèïàòòàìàñû. 8
3. 3 Øàºûðó æ¸íå æ¾êòåó. 9
3. 4 Ïàéäàëàíûëàòûí òåõíèêàëûº æàáäûºòàð. …. . 9
²îðûòûíäû. . 10
°äåáèåòòåð òiçiìi. 11
²îñûìøà А 12
²îñûìøà В 23
ÊIÐIÑÏÅ
Áóë êóðñòûê æîáà æûëàíøà îéûíûí ìå»ãåðåòií ïðîãðàììàíû äåóãå àðíàëãàí. Программа ассемблер òiëiíäå æàçûëãàíäûêòàí, îë îíû» æóìûñ iñòåó æûëäàìäûãûí åäàóið æîãàðûëàòûï¸ êîëåìií àéòàðëûêòàé àçàéòàäû¸áàñòàïêû ñèÿêòû îðûíäàëàòûí ôàéë êîëåìií äå.
Àссемблер òiëi - áóë ìàøèíàëûê òiëäi» ñèìâîëäûê êîðiíiñi. Ìàøèíåäåãi áàðëûê óðäiñòåð å» òîìåí¸ àïïàðàòòûê äå»ãåéäåí àðåêåòêå òåê ìàøèíàëûê òiëäi» èíñòðóêöèÿëàðû àðêûëû êåëåäi. Áóäàí æàëïû áåëãiëåíóãå êàðàìàñòàí àññåìáëåð òiëi àðáið êîìïüþòåð òèïi óøií æåêåøå. Áóë àññåìáëåð òiëiíäå æàçûëãàí ïðîãðàììàíû» iøêi òóðiíå äå êàòûñòû. Àññåìáëåð òiëií áiëìåé àïïàðàòóðàìåí áàéëàíûñòû åñåïòåðäi øåøó ìóìêií åìåñ. Программист æàíå ïàéäàëàíóøû êåç êåëãåí æîãàðû äå»ãåéëi æàáäûêòàðäû âèðòóàëäû àëåì êóðóãà áîëàòûí æàãäàéëàðãà äåéií ïàéäàëàíà àëàäû.
Аë åíäi ïðîãðàììèñòòå êèûí æàãäàé òóûíäàäû äåëiê¸ ïðîãðàììèñò êàíøàëûêòû àêûëäû áîëñà äภîë ïðîãðàììàíû æàçãàí òië êàíøàëûêòû æàêñû áîëñà äภàññåìáëåðäi áiëìåéiíøå áóë æàãäàéäû» øåøiìií òàáó êèûí. Ñîíäûêòàí áàðëûê æîãàðû äå»ãåéëi òiëäåð êîìïèëÿòîðëàðû êóðàìûíû» ìîäóëäåðiíi» àññåìáëåð òiëiíi» ìîäóëüäåðiìåí áàéëàíûñòû æàáäûêòàðû áàð íåìåñå àññåìáëåð ïðîãðàììàëàó äå»ãåéiíå øûãóäû êîëäàéäû И поэтому практически все компиляторы языков высокого уровня содержат средства связи своих модулей с модулями на языке ассемблера, либо поддерживают выход на ассемблерный уровень программирования.
Ñîíäûêòàí êîìïüþòåðìåí áàéëàíûñòû àðáið àäàì óøií àññåìáëåð òiëií áiëó ìà»ûçäû.
1 Àäiñòi ñèïàòòàó
- Массивòåðäi ñóðûïòàó
Àäåòòå ñóðûïòàó åñåïòåðií øåøó êåçiíäå êîñûìøà æàäûíû ìèíèìàëäû ïàéäàëàíó øàðòû àëãà òàðòûëàäû¸ áóäàí êîñûìøà ìàññèâòåðäi ïàéäàëàíó ìóìêiíøiëiãi àçàÿäû.
Àð òóðëi ñóðûïòàó àäiñòåðiíi» àëãîðèòìäåðiíi» òåç àðåêåòòiëiãií áàãàëàó óøií åêi êîðñåòêiø ïàéäàëàíûëàäû:
- ìåíøiêòåó ñàíû;
- ñàëûñòûðó ñàíû.
Áàðëûê ñóðûïòàó àäiñòåðií åêi óëêåí òîïêà áîëóãå áîëàäû:
- ñóðûïòàóäû» òóðà àäiñòåði;
- ñóðûïòàóäûí æàêñàðòûëãàí àäiñòåði.
Ñóðûïòàóäû» òóðà àäiñòåðií 3 òîïøàãà áîëóãå áîëàäû:
- êîþ àðêûëû ñóðûïòàó (êîñó àðêûëû) ;
- òà»äàó àðêûëû ñóðûïòàó (áîëó àðêûëû) ;
- àóûñòûðó àðêûëû ñóðûïòàó («пузырьковая» ñóðûïòàó) .
ÑУлучшенные методы сортировки основываются на тех же принципах, что и прямые, но используют некоторые оригинальные идеи для ускорения процесса сортировки. Прямые методы на практике используются довольно редко, так как имеют относительно низкое быстродействие. Однако они хорошо показывают суть основанных на них улучшенных методов. Кроме того, в некоторых случаях (как правило, при небольшой длине массива и/или особом исходном расположении элементов массивов) некоторые из прямых методов могут даже превзойти улучшенные методы.
- Сортировка вставкой
Áåðiëãåí êóðñòûê æîáàäà æîãàðûäà ê¼ðñåòiëãåí ìàññèâòåðäi ñ½ðûïòàó ¸äiñi áàÿíäàëàäû.
ïринципi метода:
Массив 2 á¼ëiêêå á¼ëiíåäi: ñóðûïòàëãàí æàíå ñ. Элементы из не отсортированной части поочередно выбираются и вставляются в отсортированную часть так, чтобы не нарушить в ней упорядоченность элементов. В начале работы алгоритма в качестве отсортированной части массива принимают только один первый элемент, а в качестве не отсортированной части - все остальные элементы.
Таким образом, алгоритм будет состоять из n-1-го прохода (n-размерность массива), каждый из которых будет включать четыре действия:
- взятие очередного i-го не отсортированного элемента и сохранение его в дополнительной переменной;
- поиск позиции j в отсортированной части массива, в которой присутствие взятого элемента не нарушит упорядоченности элементов;
- сдвиг элементов массива от i-1-го до j-1-го вправо, чтобы освободить найденную позицию вставки;
- вставка взятого элемента в найденную j-ю позицию.
Для реализации данного метода можно предложить несколько алгоритмов, которые будут отличаться способом поиска позиции вставки.
- Сортировка выбором
Принцип метода:
Находим (выбираем) в массиве элемент с минимальным значением на интервале от 1-го элемента до n-го (последнего) элемента и меняем его местами с первым элементом. На втором шаге находим элемент с минимальным значением на интервале от 2-го до n-го элемента и меняем его местами со вторым элементом.
И так далее для всех элементов до n-1-го.
1. 1. 3 Сортировка обменом («пузырьковая» сортировка)
Принцип метода:
Слева направо поочередно сравниваются два соседних элемента, еcли их взаиморасположение не соответствует заданному условию упорядоченности, то они меняются местами. Далее берутся два следующих соседних элемента и так далее до конца массива.
После одного такого прохода на последней n-ой позиции массива будет стоять максимальный элемент (“всплыл” первый “пузырек”) . Поскольку максимальный элемент уже стоит на свей последней позиции, то второй проход обменов выполняется до n-1-го элемента. И так далее. Всего требуется n-1 проход.
2 Описание программы
2. 1 Общие сведения
Программа называется zmeya, программное обеспечение необходимое для функционирования программы: операционная система Windows 95/98/2000 и пакет программ Tasm .
2. 2 Ôóíêöèîíàëäûê áåëãiëåíói
Программа äåìàëó æàíå êпредназначена для развлечения и для поднятия настроения.
3 Описание логической структуры
Программа zmeya предназначенная для развлечения. Основной метод данной программы это сортировка массивов. Массив символов (змейка) - это наши звенья змейки. Змейка передвигается путем нажатия клавиш стрелок. При нажатии верхней стрелки змейка передвигается вверх, при нажатии нижней стрелки змейка передвигается вниз, при нажатии стрелки вправо змейка передвигается вправо, при нажатии стрелки влево змейка передвигается влево.
Змейка передвигается в заданной рамке, с заданной скоростью. При выходе змейки за пределы рамки, осуществляется конец программы и выходит сообщение о проигрыше игрока. Скорость можно задать напрямую из программы. Размер змейке соответствует размеру рамки, то есть если рамка 100х100, то размер змейки соответственно 1 символов.
Прежде чем начать игру выходит заставка, в этой заставке выход сообщения для ввода имени игрока.
После ввода имени запускается основная программы, то есть начало основной игры. Управление змейкой осуществляется как описано выше.
Появление символов осуществляется наугад также задаются наугад координаты этих символов, при этом учитывается занято ли то место координат другим символом, если занято задаются другие координаты.
3. 1 Блок- схема
(См. Приложение В)
0 НАЧАЛО
1 Описание переменных и установка данных
- Проверка на нажатие клавиши, если нажата то на блок 3, если нет то на блок 24
- Нажата ли стрелка вверх, да нажата то на блок 8, нет на блок 4
- Нажата ли стрелка вниз, да нажата то на блок 12, нет на блок 5
- Нажата ли стрелка вправо, да нажата то на блок 16, нет на блок 6
- Нажата ли стрелка влево, да нажата то на блок 20, нет на блок 7
- Нажата ли ESC, да нажата то на блок 24, нет на блок 2
- Стираем змейку со старого места и на блок 9
- Уменьшаем координату «у» на 1 и на блок 10
- Вызываем процедуру задержки и на блок 11
- Рисуем змейку на новом месте и на блок 2
- Стираем змейку со старого места и на блок 13
- Увеличиваем координату «у» на 1 и на блок 14
- Вызываем процедуру задержки и на блок 15
- Рисуем змейку на новом месте и на блок 2
- Стираем змейку со старого места и на блок 17
- Увеличиваем координату «х» на 1 и на блок 18
- Вызываем процедуру задержки и на блок 19
- Рисуем змейку на новом месте и на блок 2
- Стираем змейку со старого места и на блок 21
- Увеличиваем координату «х» на 1 и на блок 22
- Вызываем процедуру задержки и на блок 23
- Рисуем змейку на новом месте и на блок 2
24 КОНЕЦ
3. 2 Описание логики программы с привязкой к строкам текста
1 Описание модели программы
2 Выделение памяти для стека
3 Сегмент данных
4-17 Описание переменных
18 Сегмент кода
20 Создание макроса delay
21-34 Данный макрос выполняет функцию задержки
36 Создание макроса ust_sym
37-62 В данном макросе реализуется алгоритм установки символа в произвольные координаты экрана для последующего вызова этого макроса
64 Создание процедуры game
655-658 В данной процедуре реализуется сама игра. Алгоритм игры производится следующим образом, сначала ожидаем нажатия клавиши, потом идет проверка нажатой клавиши. Если нажата клавиша стрелка вверх то соответственно мы стираем змейку со старого места, уменьшаем координату «у» на единицу вызываем макрос delay, который был описан выше. Аналогично производим эту операцию для всех стрелок, то есть стрелка вниз, стрелка вправо, стрелка влево
658 Описываем метку start, которая указывает на начало нашей программы
670-671 Соединяем сегмент данных с регистром ds
663 Вызываем макрос clean, данный макрос очищает весь экран
667 Вызываем процедуру game, которая была описана выше
669-677 Конец программы
3. 3 Вызов и загрузка
Сначала необходимо откомпилировать программу с помощью файла tasm. exe, затем при отсутствии ошибок полученный obj файл отлинковать с помощью файла tlink. exe.
И только потом полученный ехе файл можно запускать на выполнение.
3. 4 Используемые технические средства
При работе над курсовым проектом использовался персональный компьютер Celeron 900 и струйный принтер DeskJet 3325.
ЗАКЛЮЧЕНИЕ
Во время разработке данного курсового проекта были использованы все теоретические и практические знания, полученные на занятиях по дисциплинам "Системное программирование", "Высшая математика" и алгебра логики.
Так как язык ассемблера является аналогом машинного языка, то он неразрывно связан с архитектурой самого микропроцессора. По мере внесения изменений в его архитектуру совершенствуется и язык ассемблера.
Работать на компьютере можно без знания языка ассемблера. Но элементом подготовки программиста - профессионала, обязательным является изучение ассемблера. Изучая ассемблер, вы обязательно попутно познакомитесь с архитектурой компьютера. А это, в свою очередь, позволит вам в дальнейшем создавать более эффективные программы на других языках и объединять их, при необходимости, с программами на языке ассемблера.
Без рассмотрения подобных вопросов невозможно любое сколько-нибудь серьезное компьютерное образование.
СПИСОК ЛИТЕРАТУРЫ
1. Юров В. Assembler -учебник : Санкт-Петербург, Питер, 2001.
2. Юров В. Assembler -справочник : Санкт-Петербург, Питер, 2001.
3. Черник А., Аваков С.
«Справочная книга программиста», Москва, 1991.
4. П. Абель "Язык ассемблера для IBM PC и про-
граммирования ", М. :Высшая школа,
1991
ПРИЛОЖЕНИЕ А.
1. model small
2. stack 100h
3. data
4 x1 db 25 dup(0) ; ¬ ббЁў Є®®а¤Ё в бва®Є
5 y1 db 80 dup(0) ; ¬ ббЁў Є®®а¤Ё в бв®«Ўж®ў
6 c1 db 25 dup(0)
7 d1 db 80 dup(0)
8 num1 db 100 dup(0) ; ¬ ббЁў бЁ¬ў®«®ў
... продолжение- Информатика
- Банковское дело
- Оценка бизнеса
- Бухгалтерское дело
- Валеология
- География
- Геология, Геофизика, Геодезия
- Религия
- Общая история
- Журналистика
- Таможенное дело
- История Казахстана
- Финансы
- Законодательство и Право, Криминалистика
- Маркетинг
- Культурология
- Медицина
- Менеджмент
- Нефть, Газ
- Искуство, музыка
- Педагогика
- Психология
- Страхование
- Налоги
- Политология
- Сертификация, стандартизация
- Социология, Демография
- Статистика
- Туризм
- Физика
- Философия
- Химия
- Делопроизводсто
- Экология, Охрана природы, Природопользование
- Экономика
- Литература
- Биология
- Мясо, молочно, вино-водочные продукты
- Земельный кадастр, Недвижимость
- Математика, Геометрия
- Государственное управление
- Архивное дело
- Полиграфия
- Горное дело
- Языковедение, Филология
- Исторические личности
- Автоматизация, Техника
- Экономическая география
- Международные отношения
- ОБЖ (Основы безопасности жизнедеятельности), Защита труда
