Написання гри "Змійка" засобами мови Turbo Pascal » Українські реферати
Теми рефератів
Авіація та космонавтика Банківська справа Безпека життєдіяльності Біографії Біологія Біологія і хімія Біржова справа Ботаніка та сільське гос-во Бухгалтерський облік і аудит Військова кафедра Географія
Геодезія Геологія Держава та право Журналістика Видавнича справа та поліграфія Іноземна мова Інформатика Інформатика, програмування Історія Історія техніки Комунікації і зв'язок Краєзнавство та етнографія Короткий зміст творів Кулінарія Культура та мистецтво Культурологія Зарубіжна література Російська мова Маркетинг Математика Медицина, здоров'я Медичні науки Міжнародні відносини Менеджмент Москвоведение Музика Податки, оподаткування Наука і техніка Решта реферати Педагогіка Політологія Право Право, юриспруденція Промисловість, виробництво Психологія Педагогіка Радіоелектроніка Реклама Релігія і міфологія Сексологія Соціологія Будівництво Митна система Технологія Транспорт Фізика Фізкультура і спорт Філософія Фінансові науки Хімія Екологія Економіка Економіко-математичне моделювання Етика Юриспруденція Мовознавство Мовознавство, філологія Контакти
Українські реферати та твори » Информатика, программирование » Написання гри "Змійка" засобами мови Turbo Pascal

Реферат Написання гри "Змійка" засобами мови Turbo Pascal

Написання гри "Змійка" засобами мови Turbo Pascal


Зміст

1. Постановка завдання

2. Ключові слова

3. Теоретичний матеріал

4. Структурний опис розробки

5. Функціональне опис

6. Висновок

7. Список використаної літератури

8. Додатка

Додаток 1

Додаток 2


1. Постановка завдання

Мета роботи - написати гру "Змійка". Правила гри: на полі розміром 25 * 80 рухається змійка, що складається з декількох сегментів і розкидана їжа. Мета гри - рухатися по полю літерами w (вгору), s (вниз), a (вліво), d (вправо) і збирати їжу. Кожна зібрана їжа збільшує довжину змійки на один сегмент. Якщо змійка ударяється об стіну, гра закінчується.

2. Ключові слова

Ігрове поле, координати їжі і частин змійки, довжина змійки, малювання змійки і їжі, вихід за межі поля.

3. Теоретичний матеріал

Дана контрольна робота була виконана в текстовому режимі Turbo Pascal.

При роботі в текстовому режимі екран монітора розбивається на рядки, рядки - на позиції, в кожну з яких можна помістити один символ. Положення символу на екрані задається двома координатами - вертикальної X і горизонтальної Y. X - це номер позиції в рядку, а Y - Номер рядка. Модуль CRT містить описи констант, процедур і функцій, забезпечують управління текстовим режимом роботи монітора.

ClrScr Очищає екран або вікно і поміщає курсор у верхній лівий кут.

Delay ( D : Word ) Припиняє роботу програми на вказане число D мілісекунд. Практично час затримки залежить від тактової частоти процесора.

GotoXY ( X , Y : Byte ) Переміщає курсор в позицію X рядки Y екрану.

TextBackGround ( Color : Byte ) Встановлює колір фону.

TextColor ( Color : Byte ) Встановлює колір символів.

У програмі використовуються кілька процедур для реалізації поставленого завдання.

4. Структурний опис розробки

Програма написана середовищі програмування Turbo Pascal. У ній створено контекстне меню, що з'являється спочатку гри, що містить у собі підказку з управління змійкою, поле, на яке помеается компонент, що містить в собі тіло змійки і В«ЇжаВ».

При запуску програми виконуються наступні дії:

-відкривається контекстне меню з довідкою про управління пересуванням тіла змійки

-пропонується перейти до гри

-далі з'являється з'являється зелене поле, з довільними координатами промальовується їжа і відображається змійка по початковим параметрам, яка починає рухатися вправо.

Управління здійснюється клавішами:

w - здійснює рух змійки вгору

s - вниз

a - вліво

d - вправо

Координати кожної частини змійки зберігаються в матриці, при натисканні певної клавіші вони міняються і змійка рухається.

При збігу координат їжі і почала змійки (поїдання їжі змійкою) координати їжі довільно змінюються, довжина змійки збільшується на один сегмент.

Програма постійно перевіряє, чи немає перетину змійкою меж поля. Якщо це трапляється, то виводиться повідомлення про програші і меню з пропозицію витйті з гри.

У випадку, коли гравець збирає всю їжу і змійка сягає максимальної довжини з'являється повідомлення про виграш.

5. Функціональне опис

У даній програмі використовуються:

Тип даних створений користувачем:

spoint = record; {тип даних для точки}

Консанти:

maxwidth = 10; {максимальна довжина змійки}

Змінні:

width: integer; {довжина змійки}

e: spoint; {координати їжі}

snakebody: array [1 .. maxwidth] of spoint; {координати частин тіла змійки}

i {лічильник циклу}, nx, ny: integer; {координати голови змійки}

v: byte; {вектор напрямку голови змійки}

gameover: boolean; {прапор закінчення гри}

key: char; {буфер клавіші}

Процедури і функції:

function checknext (x: integer; y: integer): boolean; {перевіряє чи вільна клітка і чи не виходить вона за кордону поля}

procedure neweat; {створює їжу на поле}

procedure movesnake (x, y: integer); {переміщує змійку}


Висновок

В ході проробленої роботи був вивчений текстовий режим мови програмування Turbo Pascal, розглянуті та застосовані процедури та функції.


Список використаної літератури

1. Малихіна М.П. Програмування на мові високого рівня Turbo Pascal. - видавництво В«СПб: БХВ-ПетербургВ», 2006.

2. Павловська Т.О. Паскаль. Програмування на мові високого рівня - видавництво Пітер 2008.

3. .nesterova.ru


Додаток 1:

В· Лістинг програми

{

=============================================== ==============

APPOINTMENT: Play "Snake"

AUTHOR: Ryzhenkova Olga

DATE: 11.11.2023

VERSION: 1.00

=============================================== =============}

program zmeika;

uses crt;

type

spoint = record

x: integer;

y: integer;

end; {тип для точки}

const

maxwidth = 10; {максимальна довжина змійки}

var

width: integer; {довжина змійки}

e: spoint; {координати їжі}

snakebody: array [1 .. maxwidth] of spoint; {масив з координатами частин тіла змійки}

i, {лічильник циклу} nx, ny: integer {координати голови змійки};

v: byte; {вектор напрямку голови змійки}

gameover: boolean; {прапор закінчення гри}

key: char; {буфер клавіші}

{перевіряє чи вільна клітка і чи не виходить вона за кордону поля}

function checknext (x: integer; y: integer): boolean;

var

isset: boolean; {прапор перевірки зайнятості клітини або її виходу за межі поля}

i: integer;

begin

isset: = true;

for i: = 1 to width do

begin {перевіряємо чи немає на місці клітини змійки}

if (x = snakebody [i]. x) and (y = snakebody [i]. y) then

isset: = false;

end;

if isset then

begin {перевіряємо чи не вийшла голова змійки за межі поля}

if (x <= 0) or (y <= 0) or (x> = 80) or (Y> = 25) then isset: = false;

end;

checknext: = isset;

end;

{створює їжу на поле}

procedure neweat;

begin

e.x: = random (78) +2;

ey: = random (23) +2; {генеруємо координати їжі}

{якщо місце зайняте, генеруємо ще раз, і так поки не знайдемо вільне}

while (not checknext (e.x, e.y)) do

begin

e.x: = random (78) +2;

e.y: = random (23) +2;

end;

end;

{переміщує змійку

procedure movesnake (x, y: integer);

var

i: integer; {лічильник циклу}

begin

for i: = 1 to width do

begin

snakebody [i]: = snakebody [i +1];

end; {переміщаємо всі складові змійки на місце сусідньої}

snakebody [width]. x: = x;

snakebody [width]. y: = y; {голові змійки присвоюємо нові координати}

if (x = ex) and (y = ey) then {якщо голова знайшла їжу}

begin

width: = width +1; {збільшуємо довжину змійки на 1}

snakebody [width]. x: = x;

snakebody [width]...


Страница 1 из 2Следующая страница

Друкувати реферат
Замовити реферат
Товары
Наверх Зворотнiй зв'язок