Створення програми гри "Шибениця"
Алгоритмічна мова програмування універсального призначення Turbo Pascal. Розробка і створення програми для гри "Шибениця". Алгоритм функціонування программи, блок-схема алгоритму. Використання додаткових модулів Graph та Crt у процессі створення програми.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 23.06.2010 |
Размер файла | 2,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
20
Міністерство освіти і науки України
Полтавський національний технічний університет
імені Юрія Кондратюка
Факультет інформаційних та телекомунікаційних технологій і систем
Кафедра комп'ютерних та інформаційних технологій і систем
Курсова робота
з дисципліни "Основи програмування та алгоритмічні мови"
Розробив cтудент
групи 101-ТН
Керівник роботи
Полтава 2010
Зміст
- Вступ
- Постановка задачі
- Розв'язання задачі
- Алгоритм задачі
- Реалізація програми
- Висновок
- Використана література
Вступ
Для виконання курсової роботи потрібно мати деякий початковий багаж знань по програмуванню. Володіти однією з мов програмування в моєму випадку це Turbo Pascal.
Turbo Pascal - алгоритмічна мова програмування універсального призначення. Існують діалекти мови з підтримкою об'єктно-орієнтованого програмування.
Роком створення Pascal вважається 1970-й, і творцем цієї мови програмування є Ніклаус Вірт. Початкова мета розробки мови диктувалася потребою інструмента "для навчання програмуванню як систематичній дисципліні". Pascal належить до Algol-подібних мов програмування, оскільки використовує семантику Algol-ла. Однак Pascal мав суттєве удосконалення - жорстку типізацію. Це означало, що присвоювання можна було виконувати лише для змінних, що належать до одного типу (одночасно вказувались правила, за якими типи вважались однаковими). Це удосконалення суттєво покращило стиль програмування, оскільки значну частину помилок вдавалось виявити ще на етапі компіляції - що збільшує надійність програм.
Виконуючи цю роботу я використав практичні знання, отримані при виконанні лабораторних робіт.
"Гра Виселица" - існує загадане слово, його потрібно відгадати називаючи по одній літері. Якщо названа літера відсутня у слові, то вимальовується наступний елемент вішалки.
Гра відбувається на екрані. Гравець бачить вішалку, що складається з семи частин та знаходиться зліва вгорі. Зправа вгорі знаходиться коротка інструкція до гри. Внизу показані названі літери.
Постановка задачі
Розробити программу для вирішення поставленої прикладної задачі. При вирішенні задачі необхідно:
Створити программу у середовищі програмування Turbo Pascal
Розробити алгоритм функціонування программи
Надати блок-схему алгоритму
Продемонструвати роботу программи
УМОВА ЗАДАЧІ (рус)
В игре "Виселица" один игрок загадывает слово, а другой пытается его угадать, называя по одной буквы. Если буквы нет в этом слове, то рисуется один из элементов картинки (вся картинка состоит из 7 элементов: эшафот, виселица, веревка, голова, руки, туловище и ноги). Если игрок угадывает букву, то буква (или буквы, если имеется несколько одинаковых букв) пишется на соответствующем месте. Если вся картинка будет нарисована, а слово не угадано, то игрок проигрывает. Если все буквы слова будут открыты, а картинка еще не дорисована, то игрок выигрывает.
В первой строке входного файла - загаданное слово.
Вывести одну из трех строк:
Win - выиграш
Lose - проиграш
Unknown - при исчерпании набора букв и невыполнении условий выиграша или проиграша.
Розв'язання задачі
У программы використані додаткові модулі Graph та Crt.
З модуля Crt використані функції:
ClrScr - для очистки графічного інтерфейсу.
Delay - для затримки виконання програм, але при використанні цієї команди на процесорах більше 200 MHz виникають проблеми, так як цикл затримки закінчується швидше і може виникнути помилка "Runtime error 200 at…".
З модуля Graph я використав:
Detect - для автовизначення графічного драйвера.
InitGraph - ініціалізація графічного режиму.
GraphResult (змінна середовища) - в неї заноситься результат ініціалізації графічного режиму.
Window - задає графічне вікно.
SetLineStyle - встановлення стилю лінії.
Rectangle - виводить прямокутник із заданими кординатами.
OutTextXY - виводить текст у заданих кординатах.
Line - малює лінію з вказаним початком та кінцем.
Circle - круг із заданим центром за радіусом.
SetColor - установка кольору кисті для виводу графіки.
CloseGraph - вихід із графічного режиму.
Стандартні команди мови програмування Pascal та типи даних, що використані у роботі:
String - строкова змінна, за вмовчанням розмір 256 (починаючи з 0)
Integer - числовий тип, що приймаж значення в діапазоні [-32768…32767].
Boolean - логчний тип, допустимі значення Truе (Так) та False (Ні).
Array - масив, діапазон змінних одного типу.
If…Then - умовні оператори.
For … to…do - цикл з лічильником.
While…Do - цикл з умовою
Моя программа розпочинаєть вибором випадково слова з текстового файлу word. dat, але заздалегідь потрібно вказати кількість слів у файлі. Слово може бути написано літерами латинського алфавіту, великими чи малими, так як всі переводяться у верхній регістр.
Потім програма ініціалізує графічний режим та виводить інтерфейс. Користувач бачить вішалку (її першу частину) у рамці. Зправа зображено короткі умови гри. Внизу під вищезгаданими блоками індикатор відгаданого слова. Трохи нижче знаходиться латинський алфавіт. Коли користувач натискає літеру, вона виділяється іншим кольором і заноситься в масив "використаних", щоб далі не враховувати повтори.
Користувач вводить символи поки не домалюються всі елементи вішалки, або слово буде відгадане. Є третій варіант завершення гри - "Невизначеність", коли літери названі всі, а слово не відгадане. Цей варіант спрацьовує коли у слові знаходяться недопустмі символи.
Алгоритм задачі
А) Головний алгоритм
Б) Алгоритм процедури ReDraw
В) Алгоритм процедури gExit
Г) Алгоритм процедури Init
Д) Алгоритм процедури IsInput
Реалізація програми
1
program Hangman;
uses crt,graph;
var
first: string [255] ;
second: string [255] ;
tru,fal: integer;
j,el: integer;
let: string [1] ;
alphabet: array [1. .26] of boolean;
isset: boolean;
f1: text;
Procedure redraw;
var k: integer;
begin
SetLineStyle (DottedLn, 0, NormWidth);
rectangle (1,1,275,275);
rectangle (300,1,550,275);
outtextxy (305,6,'ВИСЕЛИЦА');
outtextxy (305,15,'ВАМ_НУЖНО_УГАДАТЬ_СЛОВО');
outtextxy (305,24,'В_КВАДРАТНЫХ_СКОБКАХ');
outtextxy (305,33,'НАЖАТЫЕ_БУКВЫ');
SetLineStyle (SolidLn, 0, NormWidth);
if el>=1 then
begin
line (25,250,225,250);
line (25,250,25, 200);
line (25, 200,100, 200);
line (100, 200,100,225);
line (100,225,225,225);
line (225,225,225,250);
end;
if el>=2 then
begin
line (50, 200,50,25);
line (40,25,175,25);
end;
if el>=3 then
begin
SetLineStyle (DottedLn, 0, NormWidth);
line (150,25,150,65);
SetLineStyle (SolidLn, 0, NormWidth);
end;
if el>=4 then
begin
circle (150,75,10);
end;
if el>=5 then
begin
line (150,90,115,100);
line (150,90,185,100);
end;
if el>=6 then
begin
line (150,85,150,125);
end;
if el>=7 then
begin
line (150,125,175,150);
line (150,125,125,150);
end;
for k: =1 to 26 do
begin
if alphabet [k] =false then outtextxy (k*20,300,chr (k+64))
else
begin
setcolor (red);
outtextxy (k*20,300,chr (k+64));
setcolor (white);
end;
end;
for k: =1 to length (second) do
begin
rectangle (k*15+50,280,k*15+65,295);
if second [k] <>first [k] then
outtextxy (k*15+55,285,second [k]);
end;
end;
procedure gexit (s: string);
begin
closegraph;
writeln (s);
readkey;
exit;
end;
procedure init;
var i,j,k,grDriver,grMode,ErrCode: integer;
begin
randomize;
assign (f1,'word. dat');
reset (f1);
k: =random (10);
for j: =1 to k do
readln (f1,first);
el: =0;
close (f1); {уходя тушите свет:) }
for i: =1 to length (first) do
first [i]: =upcase (first [i]);
tru: =0; fal: =0;
second: =first;
grDriver: =Detect;
InitGraph (grDriver, grMode, '');
ErrCode: =GraphResult;
window (1,1,getmaxx,getmaxy);
If ErrCode <> grOk Then
Begin
WriteLn (Graph error: ', GraphErrorMsg (ErrCode));
delay (3000);
exit;
End;
end;
function isinput (s: string): boolean;
var p: integer;
begin
isinput: =false;
for p: =1 to 26 do
if alphabet [ord (s [1]) - 64] =true then isinput: =true;
end;
begin
init;
redraw;
while fal<7 do
begin
if tru=length (second) then gexit ('You win! ');
if tru>26 then gexit ('Unknown! ');
let: =upcase (readkey);
if isinput (let) =false then
begin
isset: =false;
for j: =1 to length (second) do
begin
if first [j] =let then
begin
isset: =true;
first [j]: =' ';
inc (tru);
end;
end;
alphabet [ord (let [1]) - 64]: =true;
if isset=false then
begin
inc (fal);
inc (el);
end;
end;
redraw;
end;
gexit ('Lose! ');
end.
5. Демонстрація роботи програми
Для знімку екрану я використав програму DosBox-0.72, що імітує режим MS-DOS у вікні. Стандартними методами це зробити не вдалося.
На малюнку зображена гра з декількома введеними літерами.
Висновок
Розроблена програма на мові Turbo Pascal дозволяє відпочити та розслабитися людині. Дану програму можна покращити шляхом добавляння нових слів та змінення старих. Також можна візуалізувати слова, написанням до них спеціальних файлів з елементами зображення. Тобто при вгадуванні літери вимальовується елемент загаданого об'єкту.
Використана література
1. "Основи програмування" Т.В. Ковалюк
2. "Turbo Pascal" В. Фаронов
Подобные документы
Розробка програми для вирішення графічної задачі. При вирішенні задачі необхідно cтворювати програму у середовищі програмування Turbo Pascal. Розробка алгоритму функціонування програми і надання блок-схеми алгоритму. Демонстрація роботи програми.
курсовая работа [1,3 M], добавлен 23.06.2010Обліковий запис root. Настройка атрибутів користувацького облікового запису. Програми для створення облікових записів користувачів. Створення програми-скрипта add_user для надання робочого інтерфейсу програмі useradd. Блок схема алгоритму програми.
курсовая работа [35,9 K], добавлен 10.01.2013Використання мови програмування Turbo Pascal, алгоритмів та графічних примітивів модуля Graph. Розробка та реалізація програми для сортування вагонів з довільного порядку в порядок через один. Присвоєння початкових значень та сортувальний алгоритм.
курсовая работа [1,2 M], добавлен 23.06.2010Створення програми "Шаховий кінь" в системі програмування Turbo Pascal. Генерування відповідно до заданих початкових кординат маршруту руху коня. Алгоритм задачі: початок, виведення зображення та пошук. Реалізація програми та демонтрація її роботи.
курсовая работа [1,3 M], добавлен 23.06.2010Розробка програми реєстрації і автоматизованого створення звіту на рік по викраденим машинам. Математична модель задачі, структура зберігаючих даних. Створення алгоритмів основної програми на мові Turbo Pascal і процедур Vvod і Red. Вихідний код програми.
курсовая работа [25,4 K], добавлен 07.10.2010Створення програми, що видає результати голосування та підсумки виборів. Алгоритм розробки програми. Опис структури даних та вимоги до них, стандартних процедур та функцій, файлів та їх призначення. Приклад тестування та результати роботи програми.
курсовая работа [1,0 M], добавлен 28.06.2012Розробка програми мовою Turbo Pascal для автоматизації процесу перевірки оцінок та аналізу успішності групи, для збереження і перегляду всієї інформації стосовно навчання. Формальна постановка задачі, створення алгоритму та вихідного коду програми.
курсовая работа [36,0 K], добавлен 13.10.2010Розгляд оригінального візерунку, що складається із суперпозиції чотирьох кривих. Проект реалізації алгоритму побудови цих кривих у вигляді програми функціональною мовою програмування Lisp. Головна особливість кривої Серпінського. Створення програми Serp.
курсовая работа [200,9 K], добавлен 23.04.2010Три типи файлів, які містять програми на Turbo Pascal. Призначення модулів та їх структура: заголовок, інтерфейсна частина та кінець. Стандартні модулі, їх особливості. Компіляція програм, які використовують модулі. Підключення модулів до програм.
контрольная работа [19,6 K], добавлен 18.05.2009Призначення драйверів та порядок роботи з драйверами в MS-DOS. Розробка драйверів консолі. Структура драйвера та призначення компонентів. Розробка структури алгоритму, програми налагодження драйвера. Опис змінних програми та роботи модулів програми.
курсовая работа [1,0 M], добавлен 22.06.2012