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

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

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

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

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

Да, спасибо!

0%

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

0%

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

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

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

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


Створення програми гри "Шибениця"

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

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

Створення програми гри "Шибениця"

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

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

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

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

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

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

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

Розробив 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" В. Фаронов


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
157252
рейтинг
icon
6081
работ сдано
icon
2741
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
67 669 оценок star star star star star
среднее 4.9 из 5
ОМГТУ
Спасибо большое, работа была выполнена досрочно. Приятно отрабатывать задания с такими ис...
star star star star star
Дальрыбвтуз
Прекрасная работа, если у вас есть не совсем понятные аббревиатуры раскрывайте их сразу)
star star star star star
ИРНИТУ
Работа выполнена досрочно, исполнитель всегда на связи, можно обсудить интересующие вопрос...
star star star star star

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

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

Ядерная геофизика и радиометрия скважин

Лабораторная, Ядерная геофизика и радиометрия скважин

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

только что

Теоретическая часть+2 задачи по варианту

Контрольная, Технология и эксплуатация нефтяных и газовых скважин

Срок сдачи к 22 окт.

7 минут назад

Физика плата

Практическая работа, Физика плата

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

8 минут назад

Зарубежная криминология: история и современност

Понизить процент ИИ в работе, Криминология

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

8 минут назад

.

РГР, Металлические конструкции

Срок сдачи к 20 нояб.

10 минут назад

Индентификация веществ

Лабораторная, Органическая химия

Срок сдачи к 23 окт.

11 минут назад

Выполнить курс. физическая культура и спорт / до 2025 iii. п-00301

Контрольная, Физическая культура и спорт

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

11 минут назад

Подготовить сообщение о современных авторах

Презентация, Литература

Срок сдачи к 22 окт.

11 минут назад

!Макет проекта

Индивидуальный проект, Опытно-экспериментальная работа педагога-психолога

Срок сдачи к 22 окт.

11 минут назад

Написать 2 доклада

Доклад, Промышленное и гражданское строительство

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

11 минут назад

курсовая

Курсовая, Экономика предприятия

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

11 минут назад

.

РГР, Железобетонные конструкции

Срок сдачи к 20 нояб.

11 минут назад

тема курсовой - подследственность: понятие, виды, значение

Курсовая, предварительное следствие

Срок сдачи к 15 нояб.

11 минут назад

Решить задачи

Решение задач, Процессы и аппараты химической технологии

Срок сдачи к 30 окт.

11 минут назад

помогите срочно ответить на вопросы и не дорого

Реферат, Подземная разработка месторождений полезных ископаемых

Срок сдачи к 23 окт.

11 минут назад

Заполнить дневник и отчет по практике

Дневник по практике, Логистика

Срок сдачи к 10 нояб.

11 минут назад

Написать ВКР и бланк задания

ВКР, Педагогика начального образования

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

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

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

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

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

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

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

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

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