Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Розробка гри Життя

Тип Реферат
Предмет Информатика
Просмотров
1184
Размер файла
755 б
Поделиться

Ознакомительный фрагмент работы:

Розробка гри Життя

Міністерство освіти і науки України

Полтавський національний технічний університет

імені Юрія Кондратюка

Факультет інформаційних та телекомунікаційних технологій і систем

Кафедра комп’ютерних та інформаційних технологій і систем

Курсова робота

з дисципліни «Основи програмування та алгоритмічні мови»

КР ______

Розробив cтудент

групи 101-ТН

Керівник роботи

Полтава 2010

Зміст

Вступ

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

2. Розв’язання задачі

3. Алгоритм задачі

4. Реалізація програми 8

5. Демонстрація роботи програми

Висновок

Використана література

Вступ

Щоб виконати дану роботу треба мати достатні знання мови програмування Турбо Паскаль, а також вміння складати алгоритми. Для коду даної програми я використав навики з виконання практичних робіт.

Гру «Життя» вперше створив Дж. Конвей. Це власне не гра, а проста модель еволюції групи живих організмів. Пасивне спостереження над сукупністю великої кількості поколінь цієї гри може дати якусь задоволення.

Ігровим полем(«житєвим простором») в цій грі являється двохвимірна поверхня, розділена на квадрати. В нас це поверхня тора, яка не має границь: наявність границь завжди зв’язано з проблемами. Кожна клітинка має 8 сосідів. Ячейка може бути заселена одним організмом, або бути порожньою.

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

Розробити програму для вирішення поставленої прикладної задачі. При вирішенні задачі необхідно:

- Створити програму у середовищі програмування TurboPascal

- Розробити алгоритм функціонування програми

- Надати блок-схему алгоритму

- Продемонструвати роботу програми

УМОВА ЗАДАЧІ

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

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


2. Розв’язання задачі

Популяцію в першому поколінні задамо випадково. Це означає, що рішення про те, чи буде кожна клітка заселена, приймається з деякою вірогідністю. У програмі lifeпри відображенні групи віртуальних організмів використана анімація. Ефект анімації оснований на послідовній зміні кадрів – графічних зображень. Для швидкого переходу від одного «кадра» до іншого використаємо дві графічні сторінки. Графічна сторінка – область відеопам’яті, яка зберігає зображення. При цьому, якщо режим роботи відеоадаптера підтримує роботу тільки з однією сторінкою, її вміст відображається на екрані. В деяких режимах роботи підтримуються декілька графічних сторінок. Вміст однієї з них («візуальної») відображається не на екрані, а на другій («активній»), невидимій користувачу, в цей час може будуватися нове зображення. Підготовлене на новій сторінці зображення виводиться на екран. Такий спосіб можливий, наприклад, про роботі в режимі VGA з роздільною здатність 640х480, бо в цьому режимі є дві графічні сторінки.В розділі опису констант задані параметри програми, які якщо доведеться змінювати, то рідко, тому некомфортно їх вводити при кожному запуску програми:

Hor – кількість кліток по горизонталі

Ver – кількість кліток по вертикалі

Cell_width, cell_height – ширина та висота клітки

Prob_factor – параметр, що визначає вірогідність заселення кліток про формуванні початкової популяції.

Процедура init_cells формує початкову популяцію, встановлюючи елементам масива new_gen значення 0 або 1 з використаним параметром вірогідності.

Процедура next_generationбудує в масиві new_gen будує наступну популяцію за правилами.

Процедура init_screen ініціалізує графічний режим та заповнює масиви графічних координат центрів кліток. Процедура displayвиконує основну роботу по побудові зображення робочого поля гри на прихованій активній сторінці та виводить на екран. Це уможливлюють процедури SetActivePage та SetVisualPage, викликані з параметром 0 або 1, визначаючим номер графічної сторінки. Перша процедура при викликанні встановлює активну сторінку, а друга візуальну.

a. Алгоритм задачі

А) Головний алгоритм


Б) Алгоритм процедури init_cells


В) Алгоритм процедуриnext_generation


Г) Алгоритм процедури init_screen

Д) Алгоритм процедури display


Е) Алгоритм процедури rule_plane


Реалізація програми

PROGRAM LIFE;

uses crt,dos,graph;

const

hor=100;

ver=70;

cell_width=8;

cell_height=6;

prob_factor=0.5;

var

old_gen,new_gen:array[0..ver,0..hor] of 0..1;

prob:real;

ch:char;

x_center:array[0..hor] of word;

y_center:array[0..hor] of word;

gen_count,radius,page:word;

ss:string[10];

procedure init_cells;

var

j,k:word;

begin

gen_count:=0;

for j:=0 to ver do

for k:=0 to hor do

begin

old_gen[j,k]:=0;

if random<=prob then

new_gen[j,k]:=1

else

new_gen[j,k]:=0;

end;

end;

procedure next_generation;

var

j,k,m,prev_j,next_j,prev_k,next_k:word;

begin

old_gen:=new_gen;

for j:=0 to ver do

begin

if j=0 then

prev_j:=ver

else

prev_j:=j-1;

if j=ver then

next_j:=0

else

next_j:=j+1;

for k:=0 to hor do

begin

if k=0 then

prev_k:=ver

else

prev_k:=k-1;

if k=hor then

next_k:=0

else

next_k:=k+1;

m:=old_gen[prev_j,prev_k]

+old_gen[prev_j,k]

+old_gen[prev_j,next_k]

+old_gen[j,prev_k]

+old_gen[j,next_k]

+old_gen[next_j,prev_k]

+old_gen[next_j,k]

+old_gen[next_j,next_k];

if (old_gen[j,k]=1) and ((m<=1) or (m>=4)) then

new_gen[j,k]:=0

else

if (old_gen[j,k]=0) and (m=3) then

new_gen[j,k]:=1

else

new_gen[j,k]:=old_gen[j,k];

end;

end;

end;

procedure init_screen;

var

graphdriver,graphmode:integer;

j,k:word;

begin

graphdriver:=vga;

graphmode:=vgamed;

page:=0;

initgraph(graphdriver,graphmode,'');

if graphresult<>grOk then

halt;

for k:=0 to hor do

x_center[k]:=k*cell_width+cell_width div 2;

for j:=0 to ver do

y_center[j]:=j*cell_height+cell_height div 2;

radius:=4;

end;

procedure display;

var

j,k:word;

procedure rule_plane;

var

j,k:word;

begin

setviewport(0,0,getmaxx,getmaxy,clipon);

setfillstyle(solidfill,blue);

bar(0,0,getmaxx,10);

setcolor(white);

outtext('Generation: ');

outtextxy(250,0,'Q: Quit');

outtextxy(450,0,'Any other key: renew');

str(gen_count,ss); outtext(ss);

setbkcolor(darkgray);

end;

begin

if gen_count<>0 then

next_generation;

inc(gen_count);

page:=1-page;

setactivepage(page);

cleardevice;

setcolor(yellow);

for j:=0 to ver do

for k:=0 to hor do

if new_gen[j,k]=1 then

circle(x_center[k],y_center[j],radius);

rule_plane;

setvisualpage(page);

end;

begin

init_screen;

repeat

randomize;

prob:=0.1+prob_factor*random;

outtextxy(0,0,'Game of life');

writeln;

outtextxy(0,15,'Live cells inserted at random,');

str(prob:3:3,ss);

outtextxy(0,30,'with probability '+ss);

outtextxy(0,60,'Press any key to start: ');

ch:=readkey;

cleardevice;

init_cells;

repeat

display;

if keypressed then

begin

ch:=readkey;

break;

end;

until false;

setviewport(0,0,getmaxx,getmaxy,clipon);

cleardevice;

setcolor(white);

if upcase(ch)='Q' then

break;

until false;

closegraph;

end.


b. Демонстрація роботи програми

Початкове вікно програми

Процес генерації 12 популяції


ВИСНОВОК

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


ВИКОРИСТАНА ЛІТЕРАТУРА

«Основи програмування»Т.В. Ковалюк

«TurboPascal» В.Фаронов


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156492
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
64 096 оценок star star star star star
среднее 4.9 из 5
им. С.Ю.Витте
Работа выполнена досрочно, содержание по существу, маленький недочет был исправлен. Спасибо!
star star star star star
БПТ
Обращался к Елене Александровне второй раз Всё очень здорово и оперативно сделанно, без за...
star star star star star
"КрасГАУ"
Заказываю в первый раз у Евгения , и остался максимально доволен , всё чётко !)
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

Решение задач по предмету «Математика»

Решение задач, Математика

Срок сдачи к 29 дек.

1 минуту назад

Отчет с выполнением заданий

Решение задач, Отчет, бух учет

Срок сдачи к 25 дек.

4 минуты назад

Расчет параметров участка электроэнергетической системы

Решение задач, Электрические системы, электроника, электротехника

Срок сдачи к 8 янв.

4 минуты назад
4 минуты назад

Сделать курсач по методике

Курсовая, Электротехника

Срок сдачи к 26 дек.

5 минут назад

Психология безопасности труда

Реферат, Русский язык и культура речи

Срок сдачи к 29 дек.

7 минут назад

Сделать реферат и презентацию

Презентация, Биомеханика

Срок сдачи к 25 дек.

7 минут назад

написать курсовую работу по уголовному праву

Курсовая, Уголовное право

Срок сдачи к 25 дек.

7 минут назад

Начертить 12 чертежей

Чертеж, Начертательная геометрия

Срок сдачи к 9 янв.

8 минут назад

Феномен успеха и успешность в профессиональном развитии

Реферат, Психология

Срок сдачи к 28 дек.

9 минут назад

В файле прикреплен пример выполнения задания

Контрольная, Криминология

Срок сдачи к 27 дек.

9 минут назад

9-11 страниц. правовые основы военной реформы в ссср в 20-е гг

Реферат, История государства и права России

Срок сдачи к 26 дек.

10 минут назад

Выполнить реферат. История Англии. Е-01554

Реферат, Английский язык

Срок сдачи к 26 дек.

10 минут назад

Составить Проект массового взрыва

Контрольная, Взрывное дело, горное дело

Срок сдачи к 8 янв.

12 минут назад

Термодинамика

Решение задач, Термодинамика

Срок сдачи к 26 дек.

12 минут назад

Нужен реферат, объем 15-20 страниц

Реферат, Безопасность в техносфере

Срок сдачи к 5 янв.

12 минут назад

Выполнить реферат. История Англии. Е-01554

Реферат, История

Срок сдачи к 26 дек.

12 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно