Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
домашняя работа №2.docx
Скачиваний:
6
Добавлен:
11.02.2015
Размер:
44.26 Кб
Скачать

Министерство образования и науки Российской Федерации

Федеральное агентство по образованию

ФГБОУ ВПО

«Магнитогорский Государственный Технический Университет им Г.И. Носова»

Кафедра Вычислительной Техники и Прикладной Математики

Домашняя работа №2: «Разработка и отладка программ на языке Assembler»

Дисциплина: «Организация ЭВМ»

Вариант № 8

Выполнила: студентка группы АВ-10

Барханова Э.Р.

Проверил: Ячиков И.М.

Магнитогорск 2013

Условие задачи

Составить игровую программу «ПОГОНЯ» в которой «заяц» постоянно убегает от «волка» в пространстве ограниченном стенками. Скорость «зайца» постоянна, но направление меняется с учетом направления «хищника». Вы управляете естественно «волком» и Ваша задача поймать зайца за более короткое время.

Примечание: Лучше использовать графический видеорежим, например 12h, но допустим и текстовый режим с псевдографикой.

Постановка задачи

Необходимо составить программу, которая будет непрерывно отслеживать нажатие на клавиатуре некоторых клавиш:

  • «вверх» – перемещение волка вверх;

  • «вниз» – перемещение волка вниз;

  • «вправо» – перемещение волка вправо;

  • «влево» – перемещение волка влево;

Управление волком происходит сразу после нажатия клавиши направления. Заяц начинает «убегать» от волка в сторону левой стены, а затем бежит к противоположному от волка углу. Как только появляется возможность, он «удирает» от волка в противоположную сторону. Идет отсчет времени и, как только волк «поймал» свою жертву, игра заканчивается.

Инструкция пользователю

При запуске программы появляется окно. В этом окне есть несколько областей, разделенных при помощи линии: область над линией – поле игры, область под линией – время от начала игры.

Игра происходит в клавиатурном режиме при помощи нажатия клавиш «вверх», «вниз», «вправо», «влево».

Волк обозначен квадратом синего цвета, заяц – белого. Когда погоня завершена, появляется красный квадратик. Заяц начинает движения сразу после начала движения волка. Как только хищник оказывается рядом с жертвой (на соседней клетке), то это означает окончание погони (т.е. волк догнал зайца) и конец игры.

Инструкция программисту

В программе используются следующие переменные, указанные в таблице 1.

Таблица 1 – Переменные

krol

Координаты зайца

wolf

Координаты волка

step

Флаг, указывающий, что сделан ход

exit

Флаг конца игры

time

Для хранения времени

В программе задействуются процедуры, указанные в таблице 2.

Таблица 2 – Процедуры

main

Главная процедура, которая запускает остальные процедуры, проверяет нажатую клавишу и т.д.

init

Инициализация данных, прорисовка разделительной линии, очистка экрана, сохранение времени

setscreen

Очистка экрана от «лишнего»

liner

Разметка разделительной линии

draw

Рисовка символа, координаты которого передаются в bx, атрибуты в ax

Окончание таблицы 2

drawkrolik

Рисовка «живого» кролика (белый квадратик)

drawdeadkrol

Рисовка «мертвого» кролика (красный квадратик)

drawwolf

Рисовка вога (синий квадратик)

clear

Очистка экрана

clearkrol

Очистка клетки с кроликом

clearwolf

Очистка клетки с волком

trans

Расчет положение в текстовом видеобуфере по заданным экранным координатам

getchar

Получение кода нажатой клавиши

prepare

Анализ нажатой клавиши

wolf_hod

Ход волка, т.е. расчет его новых координат

krol_hod

Ход зайца, т.е. расчет его новых координат

getdist

Расстояние между позицией волка и предполагаемой позицией зайца

info

Вывод времени игры

extest

Проверка на соседство зайца и волка