Міністерство освіти і науки України
ФАКУЛЬТЕТ ІНФОРМАТИКИ
КАФЕДРА ІНФОРМАЦІЙНИХ УПРАВЛЯЮЧИХ СИСТЕМ ТА ТЕХНОЛОГІЙ
КУРСОВА РОБОТА
Тема:
Застосування BORLAND C++ BUILDER для створення ігрових програм
Підписи членів комісії
Зміст
Вступ
Новітня система об`эктно - орієнтованого програмування C++ Builder виробництва корпорації Borland призначена для операційних систем Windows 95 та NT. Інтегроване середовище C++ Builder забезпечує швидкість візуальної розробки, продуктивність повторно використовуваних компонентів у сполученні з міццю мовних засобів C++, удосконаленими інструментами та різномасштабними засобами доступу до баз даних. C++ Builder може бути використаний скрізь, де потрібно доповнити існуючі додатки розширеним стандартом мови C++, підвищити швидкодія та додати користувальницькому інтерфейсу якості професійного рівня.
Задачею нашої роботи, буде розробка простої ігрової програми “О счасливчик” з використанням дано мови програмування (Borland C++ Builder). В теоретичній частині наведемо основні відомості про інструмент розробки ігрового проекту.
Теорія
Форми є основою проектів C++ Builder. Створення користувальницького інтерфейсу проекту полягає в додаванні у вікно форми елементів обєктів C++ Builder, називаних компонентами. Компоненти C++ Builder розташовуються на палітрі компонентів, виконаної у вигляді многостранічного блокнота. Важлива особливість C++ Builder полягає в тому, що він дозволяє створювати власні компоненти та набудовувати палітру компонентів, а також створювати різні версії палітри компонентів для різних проектів.
Для додавання компонента у форму можна вибрати мишею потрібний компонент у палітрі та клацнути лівою клавішею миші в потрібнім місці проектованої форми. Компонент зявиться на формі, і далі його можна переміщати, міняти розміри та інші характеристики.
Кожен компонент C++ Builder має три різновиди характеристик: властивості, події та методи.
Якщо вибрати компонент із палітри та додати його до форми, інспектор обєктів автоматично покаже властивості та події, які можуть бути використані з тім компонентом. У верхній частині інспектора обєктів є список, що випадає, що дозволяє вибирати потрібний обєкт із наявних на формі.
Рис.3. Інспектор обєктів
При визначенні властивостей компонента під час проектування потрібно вибрати компонент на формі, відкрити сторінку властивостей в інспекторі обєктів, вибрати обумовлена властивість і змінити його за допомогою редактора властивостей (це може бути пусте поле для уведення тексту або числа, що випадає список, що розкривається список, діалогова панель і т.д.).
Для того, щоб додати оброблювач подій, потрібно вибрати на формі за допомогою миші компонент, якому необхідний оброблювач подій, потім відкрити сторінку подій інспектори обєктів і двічі клацнути лівою клавішею миші на колонку з поруч із подією, щоб змусити C++ Builder згенерувати прототип оброблювача подій і показати його в редакторі коду. При цьому автоматично генерується текст порожньої функції, і редактор відкривається в тім місці, де варто вводити код. Курсор позиціюється усередині операторних дужок { ... }. Далі потрібно ввести код, що повинен виконуватися при настанні події. Оброблювач подій може мати параметри, які вказуються після імені функції в круглих дужках.
Рис.4. Прототип оброблювача подій.
За замовчуванням проект спочатку містить файли для однієї форми та вихідного коду одного модуля. Однак більшість проектів містять кілька форм і модулів. Щоб додати модуль або форму до проекту, потрібно клацнути правою кнопкою миші та вибрати пункт New Form з контекстного меню. Можна також додавати існуючі форми та модулі до проекту, використовуючи кнопку Add контекстного меню менеджера проектів і вибираючи модуль або форму, яку потрібно додати. Форми та модулі можна видалити в будь-який момент протягом розробки проекту. Однак, через те, що форма звязані завжди з модулем, не можна видалити одне без видалення іншого, за винятком случаючи, коли модуль не має звязку з формою. Видалити модуль із проекту можна, використовуючи кнопку Remove менеджера проектів.
Якщо вибрати кнопку Options у менеджері проектів, відкриється діалогова панель опцій проекту, у якій можна вибрати головну форму проекту, визначити, які форми будуть створюватися динамічно, які параметри компіляції модулів (у тому числі створених в Delphi 2.0, тому що C++ Builder може включати їх у проекти) і компонування.
Рис. 6. Установка опцій проекту
Важливим елементом середовища розробки C++ Builder є контекстне меню, яке з`являється при натисканні на праву клавішу миші та дозволяє швидкий доступ до найбільше часто використовуваних команд.
Зрозуміло, C++ Builder має убудовану систему контекстно-контекстно-залежної допомоги, доступної для будь-якого елемента інтерфейсу та довідкової інформації, що є великим джерелом, про C++ Builder.
C++ Builder створює файл проекту з імям за замовчуванням Project1.cpp, а також make-файл із імям за замовчуванням Project1.mak. При внесенні змін у проект, таких, як додавання нової форми, C++ Builder обновляє файл проекту.
Рис.7 Файл проекту
Проект або додаток звичайно мають кілька форм. Додавання форми до проекту створює наступні додаткові файли:
· Файл форми з розширеням.DFM, що містить інформацію про ресурси вікон для конструювання форми
· Файл модуля з розширеням.CPP, що містить код на C++.
· Заголовний файл із розширенням .H, що містить опис класу форми.
Коли ви додаєте нову форму, файл проекту автоматично обновляється.
Для того щоб додати одну або більше форм до проекту , виберіть пункт меню File/New Form. Зявиться порожня форма, що буде додана до проекту. Можна скористатися пунктом меню File/New, вибрати сторінку Forms і вибрати підходящий шаблон з репозиторія обєктів.
Рис.8 Шаблони форм
Для того, щоб просто відкомпілювати поточний проект, з меню Compile потрібно вибрати пункт меню Compile. Для того, щоб відкомпілювати проект і створити виконує файл, що, для поточного проекту, з меню Run потрібно вибрати пункт меню Run. Компонування проекту є інкрементним (перекомпілюються тільки модулі, що змінилися).
Якщо при виконанні проекту виникає помилка часу виконання, C++ Builder робить паузу у виконанні програми та показує редактор коду з курсором, установленим на операторі, що є джерелом помилки. Перш ніж робити необхідну корекцію, варто запустити знову додаток, вибираючи пункт меню Run з контекстного меню або з меню Run, закрити додаток і лише потім вносити зміни в проект. У цьому випадку зменшиться ймовірність втрати ресурсів Windows.
Після цього виберемо на формі компонентів Edit і видалимо поточне значення властивості Text. Потім установимо властивість Caption для Button1 рівним "Додати".
Щоб додати оброблювач події OnClick для кнопки Додати, потрібно вибрати цю кнопку на формі, відкрити сторінку подій в інспекторі обєктів і двічі клацнути мишею на колонку праворуч від події OnClick. У відповідному рядку уведення зявиться імя функції. C++ Builder згенерує прототип оброблювача подій і покаже його в редакторі коду. Після цього варто ввести наступний код в операторні дужки { ... } тіла функції:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (!(Edit1->Text == ""))
{
ListBox1->Items->Add(Edit1->Text);
Edit1->Text = "" ;
}
}
Для компіляції проекту в меню Run виберемо пункт Run. Тепер можна що-небудь увести в редагує поле, що, нажати мишею на кнопку Додати та переконатися, що вводять строки, що, додаються до списку.
Рис.10. Так виглядає готовий додаток.
Тепер модифікуємо додаток, додавши кнопки Видалити та Вихід. Для цього додамо ще дві кнопки, змінимо їхню властивість Caption і створимо оброблювачі подій, повязаних з натисканням на ці кнопки:
Рис. 11. Модифікований додаток
Для кнопки Видалити:
void __fastcall TForm1::Button2Click(TObject *Sender)
{
if (!(ListBox1->ItemIndex == -1))
ListBox1->Items->Delete(ListBox1->ItemIndex);
}
Для кнопки Вихід:
Close();
Збережемо та скомпілюємо додаток, а потім протестуємо його.
Отже, ми познайомилися із середовищем розробки Borland C++ Builder і створили простий додаток.
Практична частина
Результатом нашої роботи є ігровий проект програми “О счасливчик”. Зауважимо лише, що для спрощення робити нами був реалізований лише текстовий інтерфейс взаємодії з користувачем (це було зроблено для економії часу). Впринципі загальна схема та алгоритм роботи програми достатньо простий і не потребує особливих коментарів.
Вся програма містиця в одному текстовому блоці prg.txt [дивись дискету] (лістинг 1).
Лістинг 1.
#include<stdio.h>
#include<conio.h>// Header Files
#include<graphics.h>
#include<string.h>
#include<time.h>
#include<stdlib.h>
// Inputs:void game()
void menu()
int question()
void contend()
void rules()
#include<stdio.h>
#include<conio.h>// Header Files
#include<graphics.h>
#include<string.h>
#include<time.h>
#include<stdlib.h>
#define n 10
#define NULL 0
int flag, take, choice;
char name[20][50];
void menu()
{
clrscr();
printf("nn WELCOME TO WHOLL BE A MILLIONAIRE "
"n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "
"nnt $$$$$$$$$$$$$$$$$$$$$ MAIN MENU $$$$$$$$$$$$$$$$$$$$ "
"n$ $ "
"n$ $ "
"nt $ Choice 1 : READ THE RULES OF THE GAME$ "
"n$ $ "
"nt $ Choice 2 : ENTER THE NAMES OF 10 CONTENDERS $ "
"n$ $ "
"nt $ Choice 3 : PLAY GAME$ "
"n$ $ "
"nt $ Choice 4 : EXIT$ "
"n$ $ "
"nt $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ");
printf("nnnPlease Enter Your Choice : ");
scanf(" %d", &choice);
}
float question()
{
time_t first, second;
char dummy[80];
float ret;
randomize(); // stdlib.h
raj :
{
if(random(20) == 0)// stdlib.h
{
first = time(NULL);
printf(" Whos Programmed [ WHOLL BE A MILLIONAIRE ] :? ");
printf("nn A) HARRY tt B) GURJIT n C) ALI tt D) MICHAEL ");
scanf(" %[^n]", dummy);
second = time(NULL);
ret = difftime(second, first);
if((strcmpi(dummy, "b") == 0) || (strcmpi(dummy, "gurjit") == 0) )
{
printf(" RIGHT ANSWER ");
flag = 1;
}
else
{
printf(" WRONG ANSWER______The Answer Is ---> B / GURJIT SINGH ");
flag = 0;
}
}
else if(random(20) == 1)
{
first = time(NULL);
printf(" Which Is The Deepest Ocean :? ");
printf("nn A) PACIFIC tt B) ATLANTIC n C) ARCTIC tt D) INDIAN ");
scanf(" %[^n]", dummy);
second = time(NULL);
ret = difftime(second, first);
if( (strcmpi(dummy, "a") == 0) || (strcmpi(dummy, "pacific") == 0) )
{
printf(" RIGHT ANSWER ");
flag = 1;
}
else
{
printf(" WRONG ANSWER______The Answer Is ---> A / PACIFIC ");
flag = 0;
}
}
else if(random(20) == 2)
{
first = time(NULL);
printf(" How Many Continents Are There On This Planet [EARTH] :? ");
printf("nn A) 4 tt B) 5 n C) 6 tt D) 7 ");
scanf(" %[^n]", dummy);
second = time(NULL);
ret = difftime(second, first);
if( (strcmpi(dummy, "d") == 0) || (strcmpi(dummy, "7") == 0) )
{
printf(" RIGHT ANSWER ");
flag = 1;
}
else
{
printf(" WRONG ANSWER______The Answer Is ---> D / 7 ");
flag = 0;
}
}
else if(random(20) == 3)
{
first = time(NULL);
printf(" C/C++ Are Products Of Which American Company :? ");
printf("nn A) MICROSOFT tt B) IBM n C) BORLAND tt D) NONE ");
scanf(" %[^n]", dummy);
second = time(NULL);
ret = difftime(second, first);
if( (strcmpi(dummy, "c") == 0) || (strcmpi(dummy, "borland") == 0) )
{
printf(" RIGHT ANSWER ");
flag = 1;
}
else
{
printf(" WRONG ANSWER______The Answer Is ---> C / BORLAND ");
flag = 0;
}
}
else if(random(20) == 4)
{
first = time(NULL);
printf(" The Fastest Running Mammal On This Planet [EARTH] :? ");
printf("nn A) CHEETAH tt B) CAMEL n C) MAN tt D) ELEPHANT ");
scanf(" %[^n]", dummy);
second = time(NULL);
ret = difftime(second, first);
if( (strcmpi(dummy, "a") == 0) || (strcmpi(dummy, "cheetah") == 0) )
{
printf(" RIGHT ANSWER ");
flag = 1;
}
else
{
printf(" WRONG ANSWER______The Answer Is ---> A / CHEETAH ");
flag = 0;
}
}
else if(random(20) == 5)
{
first = time(NULL);
printf(" Which Of These Is An Output Device :? ");
printf("nn A) SCANNER tt B) PRINTER n C) KEY BOARD tt D) MOUSE ");
scanf(" %[^n]", dummy);
second = time(NULL);
ret = difftime(second, first);
if( (strcmpi(dummy, "b") == 0) || (strcmpi(dummy, "printer") == 0) )
{
printf(" RIGHT ANSWER ");
flag = 1;
}
else
{
printf(" WRONG ANSWER______The Answer Is ---> B / PRINTER ");
flag = 0;
}
}
else if(random(20) == 6)
{
first = time(NULL);
printf(" Worlds Longest River :? ");
printf("nn A) NILE tt B) SMILE n C) MISSISSIPII t D) GANGA ");
scanf(" %[^n]", dummy);
second = time(NULL);
ret = difftime(second, first);
if( (strcmpi(dummy, "a") == 0) || (strcmpi(dummy, "nile") == 0) )
{
printf(" RIGHT ANSWER ");
flag = 1;
}
else
{
printf(" WRONG ANSWER______The Answer Is ---> A / NILE ");
flag = 0;
}
}
else if(random(20) == 7)
{
first = time(NULL);
printf(" The Highest Mountain Peak In The World :? ");
printf("nn A) K2 tt B) ROCKY n C) NEGHY t D) HIMALAYA ");
scanf(" %[^n]", dummy);
second = time(NULL);
ret = difftime(second, first);
if( (strcmpi(dummy, "d") == 0) || (strcmpi(dummy, "himalaya") == 0) )
{
printf(" RIGHT ANSWER ");
flag = 1;
}
else
{
printf(" WRONG ANSWER______The Answer Is ---> D / HIMALAYA ");
flag = 0;
}
}
else if(random(20) == 8)
{
first = time(NULL);
printf(" My Favourite Movie :? ");
printf("nn A) TITANIC tt B) TERMINATOR - 2 n C) MASK tt D) RAMBO ");
scanf(" %[^n]", dummy);
second = time(NULL);
ret = difftime(second, first);
if( (strcmpi(dummy, "a") == 0) || (strcmpi(dummy, "titanic") == 0) )
{
printf(" RIGHT ANSWER ");
flag = 1;
}
else
{
printf(" WRONG ANSWER______The Answer Is ---> A / TITANIC ");
flag = 0;
}
}
else if(random(20) == 9)
{
first = time(NULL);
printf(" Rabies a Disease Is caused By :? ");
printf("nn A) LION tt B) TIGER n C) DOG tt D) MONKEY ");
scanf(" %[^n]", dummy);
second = time(NULL);
ret = difftime(second, first);
if( (strcmpi(dummy, "c") == 0) || (strcmpi(dummy, "dog") == 0) )
{
printf(" RIGHT ANSWER ");
flag = 1;
}
else
{
printf(" WRONG ANSWER______The Answer Is ---> C / DOG ");
flag = 0;
}
}
else if(random(20) == 10)
{
first = time(NULL);
printf(" Capital City Of India :? ");
printf("nn A) NEW DELHI tt B) NEW YORK n C) SYDNEY tt D) LONDON ");
scanf(" %[^n]", dummy);
second = time(NULL);
ret = difftime(second, first);
if( (strcmpi(dummy, "a") == 0) || (strcmpi(dummy, "new delhi") == 0) )
{
printf(" RIGHT ANSWER ");
flag = 1;
}
else
{
printf(" WRONG ANSWER______The Answer Is ---> A / NEW DELHI ");
flag = 0;
}
}
else if(random(20) == 11)
{
first = time(NULL);
printf(" How Many Wonders Are There In This World :? ");
printf("nn A) 6 tt B) 27 n C) 8 tt D) 7 ");
scanf(" %[^n]", dummy);
second = time(NULL);
ret = difftime(second, first);
if( (strcmpi(dummy, "d") == 0) || (strcmpi(dummy, "7") == 0) )
{
printf(" RIGHT ANSWER ");
flag = 1;
}
else
{
printf(" WRONG ANSWER______The Answer Is ---> D / 7 ");
flag = 0;
}
}
else if(random(20) == 12)
{
first = time(NULL);
printf(" Tan 45 Degree :? ");
printf("nn A) 1/2 tt B) 2 n C) 1 ttt D) 0 ");
scanf(" %[^n]", dummy);
second = time(NULL);
ret = difftime(second, first);
if( (strcmpi(dummy, "c") == 0) || (strcmpi(dummy, "1") == 0) )
{
printf(" RIGHT ANSWER ");
flag = 1;
}
else
{
printf(" WRONG ANSWER______The Answer Is ---> C / 1 ");
flag = 0;
}
}
else if(random(20) == 13)
{
first = time(NULL);
printf(" Oracle 8i Is A :? ");
printf("nn A) LANGUAGE tt B) SUBJECT n C) DATABASE tt D) NONE ");
scanf(" %[^n]", dummy);
second = time(NULL);
ret = difftime(second, first);
if( (strcmpi(dummy, "c") == 0) || (strcmpi(dummy, "database") == 0) )
{
printf(" RIGHT ANSWER ");
flag = 1;
}
else
{
printf(" WRONG ANSWER______The Answer Is ---> C / DATABASE");
flag = 0;
}
}
else if(random(20) == 14)
{
first = time(NULL);
printf(" C++ Was Developed By :? ");
printf("nn A) BJARNE STROUSTRUP tt B) GURJIT n C) DENNIS RITCHIE tt D) KERNINGHAM ");
scanf(" %[^n]", dummy);
second = time(NULL);
ret = difftime(second, first);
if( (strcmpi(dummy, "a") == 0) || (strcmpi(dummy, "bjarne stroustrup") == 0) )
{
printf(" RIGHT ANSWER ");
flag = 1;
}
else
{
printf(" WRONG ANSWER______The Answer Is ---> A / BJARNE STROUSTRUP ");
flag = 0;
}
}
else if(random(20) == 15)
{
first = time(NULL);
printf(" Which Lizard Can Change Colors :? ");
printf("nn A) WALL tt B) MONSTER n C) CHAMELEON tt D) NONE ");
scanf(" %[^n]", dummy);
second = time(NULL);
ret = difftime(second, first);
if( (strcmpi(dummy, "c") == 0) || (strcmpi(dummy, "chameleon") == 0) )
{
printf(" RIGHT ANSWER ");
flag = 1;
}
else
{
printf(" WRONG ANSWER______The Answer Is ---> C / CHAMELEON ");
flag = 0;
}
}
else if(random(20) == 16)
{
first = time(NULL);
printf(" Mowgli Is a Character Of The Popular Comic :? ");
printf("nn A) CASPER tt B) JUNGLE BOOK n C) ANASTITIA tt D) ALLADIN ");
scanf(" %[^n]", dummy);
second = time(NULL);
ret = difftime(second, first);
if( (strcmpi(dummy, "b") == 0) || (strcmpi(dummy, "jungle book") == 0) )
{
printf(" RIGHT ANSWER ");
flag = 1;
}
else
{
printf(" WRONG ANSWER______The Answer Is ---> B / JUNGLE BOOK ");
flag = 0;
}
}
else if(random(20) == 17)
{
first = time(NULL);
printf(" Author Of The Jungle Book :? ");
printf("nn A) G B SHAW tttt B) PREM CHAND n C) WILLIAM SHAKESPEARE tt D) RUDYARD CIPLING ");
scanf(" %[^n]", dummy);
second = time(NULL);
ret = difftime(second, first);
if( (strcmpi(dummy, "d") == 0) || (strcmpi(dummy, "rudyard cipling") == 0) )
{
printf(" RIGHT ANSWER ");
flag = 1;
}
else
{
printf(" WRONG ANSWER______The Answer Is ---> D / RUDYARD CIPLING ");
flag = 0;
}
}
else if(random(20) == 18)
{
first = time(NULL);
printf(" India Is a :? ");
printf("nn A) PENNINSULA tt B) ISLAND n C) PLATEAU tt D) NONE ");
scanf(" %[^n]", dummy);
second = time(NULL);
ret = difftime(second, first);
if( (strcmpi(dummy, "a") == 0) || (strcmpi(dummy, "penninsula") == 0) )
{
printf(" RIGHT ANSWER ");
flag = 1;
}
else
{
printf(" WRONG ANSWER______The Answer Is ---> A / PENNINSULA ");
flag = 0;
}
}
else if(random(20) == 19)
{
first = time(NULL);
printf(" Earths Only Natural Satellite :? ");
printf("nn A) SUN tt B) PLUTO n C) JUPITER tt D) MOON ");
scanf(" %[^n]", dummy);
second = time(NULL);
ret = difftime(second, first);
if( (strcmpi(dummy, "d") == 0) || (strcmpi(dummy, "moon") == 0) )
{
printf(" RIGHT ANSWER ");
flag = 1;
}
else
{
printf(" WRONG ANSWER______The Answer Is ---> D / MOON ");
flag = 0;
}
} else
{
goto raj;
}
}
return(ret);
}
void rules()
{
clrscr();
printf("Hello And Welcome To WHOLL BE A MILLIONAIRE ");
printf(" nn");
printf(" This Game Will Be Played Using 10 Contenders One Out Of 10,");
printf(" Will n Be Selected In The First Round : FASTEST CONTENDER FIRST nn");
printf(" He/She Will Then be Asked 15 Questions And Shall Win Money[$] As : n");
printf("n Question No. 1 -> $1000 "
"n Question No. 2 -> $2000 "
"n Question No. 3 -> $3000 "
"n Question No. 4 -> $4000 "
"n Question No. 5 -> $5000[ 1st HURDLE ] "
"n Question No. 6 -> $10,000 "
"n Question No. 7 -> $20,000 "
"n Question No. 8 -> $40,000 "
"n Question No. 9 -> $80,000 "
"n Question No.10 -> $1,60,000 "
"n Question No.11 -> $3,20,000 [ 2nd HURDLE ] "
"n Question No.12 -> $9,60,000 "
"n Question No.13 -> $28,80,000 "
"n Question No.14 -> $86,40,000 "
"n Question No.15 -> $25,920,000 [ You Are a Millionaire ]");
printf("nnn To CONTINUE READING The Rules Of This Game Please Press ENTER.....");
getch();
printf(" nn (** If You Fail To Cross The [1st HURDLE] You Take Home $ 0 **)");
printf(" n (** Cross [1st HURDLE] = You Win atleast $10,000 **) n (** Cross [2nd HURDLE] = You Win Atleast $4,80,000 **) ");
getch();
}
void contend()
{
int j;
clrscr();
printf(" nn Please Enter The 10 Contenders : nn");
for(j = 0; j < n; j++)
{
printf("n CONTENDER %2d: ", j+1);
scanf(" %[^n]", &name[j]);
}
}
void game()
{
int que, i, val=0;
long sum = 0;
float ret=0, temp = 100;
clrscr();
for(i = 0; i < n; i++)
{
printf("nn %d. %s --- ", i+1, name[i]);
ret = question();
if(flag == 1)
{
printf("nn %s You took %f seconds", name[i], ret);
take = flag;
if(ret < temp)
{
temp = ret;
val = i;
}
}
}
if(take == 0)
{
printf("nn a NOBODY QUALIFIES FOR THE FINAL ");
getch();
}
else if(take == 1)
{
printf(" nn Congratulations %s You Shall Play Because You Took %f seconds ", name[val], temp);
printf(" nnn %s , Lets PLAY WHOLL BE A MILLIONAIRE ........PLEASE PRESS ANY KEY ", name[val] );
getch();
for(i = 0; i < 15; i++)
{
printf("nn Heres Your %d Question %s --> ", i+1, name[val]);
printf("n");
question();
if(flag == 1 && i <= 4)
{
printf("nn %s You WIN $ %ld ", name[val], sum += 1000);
}
else if(flag == 0 && i <= 4)
{
printf("nna %s SORRY You WIN $ 0", name[val]);
getch();
goto close;
}
if(i == 4)
{
textcolor(LIGHTMAGENTA);
printf("nn");
cprintf(" Congratulations %s -- $$ Crossing The 1st HURDLE -- YOU WIN $5000 ", name[val]);
}
if( (flag == 1) && (i > 4 && i <= 10) )
{
printf("nn %s You WIN $ %ld ", name[val], sum *= 2);
}
else if( (flag == 0) && (i > 4 && i <= 10) )
{
printf("nna %s SORRY You WIN $ 10,000", name[val]);
getch();
goto close;
}
if(i == 10)
{
textcolor(LIGHTGREEN);
printf("nn");
cprintf(" Congratulations %s -- $$ Crossing The 2nd HURDLE -- YOU WIN $3,20,000 ", name[val]);
}
if( (flag == 1) && (i > 10 && i <= 14) )
{
printf("nn %s You WIN $ %ld ", name[val], sum *= 3);
}
else if( (flag == 0) && (i > 10 && i <= 14) )
{
printf("nna %s SORRY You WIN $ 3,20,000", name[val]);
getch();
goto close;
}
if(i == 14)
{
for(int k = 0; k < 1000; k++)
{
textbackground(LIGHTRED);
textcolor(LIGHTGREEN);
cprintf("_ MILLIONAIRE _");
}
}
getch();
} // END OF for
}// END OF else
close:
}// END OF game()
main()
{
clrscr();
while(choice != 4)
{
choice = 0;
textcolor(LIGHTCYAN);
menu();
switch(choice)
{
case 1 : textcolor(LIGHTGREEN);
rules();
break;
case 2 : textcolor(LIGHTMAGENTA);
contend();
break;
case 3: textcolor(LIGHTCYAN);
game();
break;
case 4 : break;
default : printf("naSorry Wrong Choice Entered , ENTER ->> [1/2/3/4] ");
getch();
getch();
}
}
return(0);
}
Результат роботи програми
Скрін 1. Загальний текстовий інтерфейс ігрової програми
Скрін 2. Початок гри
Скрін 3. Етапи гри (варіанти відповідей)
Висновки
В роботі були проаналізовані питання відносно теоретичної основи побудови програм з простим інтерфейсом користувача а також проблеми, які виникають при цьому. Результатом цього є програма (ігрова) яка реалізує просту текстову інтерфейсну гру “О счасливчик”.
Програма відрізняється від існуючих на ринку простотою інтерфейсу і настроювань.
Література
Касаткин А.И., Вальвачев А.Н. Профессиональное прогрпммирование на языке Си. Мн., 1992. 240 С.
Бруно Бабэ. Просто и ясно о Borland C++. М., 1996. 400 С.
Справочник по классам Borland C++ 4.0. К., 1994. 256 С.
ObjectWindows для C++. К., 1993., 208 С.
! | Как писать курсовую работу Практические советы по написанию семестровых и курсовых работ. |
! | Схема написания курсовой Из каких частей состоит курсовик. С чего начать и как правильно закончить работу. |
! | Формулировка проблемы Описываем цель курсовой, что анализируем, разрабатываем, какого результата хотим добиться. |
! | План курсовой работы Нумерованным списком описывается порядок и структура будующей работы. |
! | Введение курсовой работы Что пишется в введении, какой объем вводной части? |
! | Задачи курсовой работы Правильно начинать любую работу с постановки задач, описания того что необходимо сделать. |
! | Источники информации Какими источниками следует пользоваться. Почему не стоит доверять бесплатно скачанным работа. |
! | Заключение курсовой работы Подведение итогов проведенных мероприятий, достигнута ли цель, решена ли проблема. |
! | Оригинальность текстов Каким образом можно повысить оригинальность текстов чтобы пройти проверку антиплагиатом. |
! | Оформление курсовика Требования и методические рекомендации по оформлению работы по ГОСТ. |
→ | Разновидности курсовых Какие курсовые бывают в чем их особенности и принципиальные отличия. |
→ | Отличие курсового проекта от работы Чем принципиально отличается по структуре и подходу разработка курсового проекта. |
→ | Типичные недостатки На что чаще всего обращают внимание преподаватели и какие ошибки допускают студенты. |
→ | Защита курсовой работы Как подготовиться к защите курсовой работы и как ее провести. |
→ | Доклад на защиту Как подготовить доклад чтобы он был не скучным, интересным и информативным для преподавателя. |
→ | Оценка курсовой работы Каким образом преподаватели оценивают качества подготовленного курсовика. |
Курсовая работа | Деятельность Движения Харе Кришна в свете трансформационных процессов современности |
Курсовая работа | Маркетинговая деятельность предприятия (на примере ООО СФ "Контакт Плюс") |
Курсовая работа | Политический маркетинг |
Курсовая работа | Создание и внедрение мембранного аппарата |
Курсовая работа | Социальные услуги |
Курсовая работа | Педагогические условия нравственного воспитания младших школьников |
Курсовая работа | Деятельность социального педагога по решению проблемы злоупотребления алкоголем среди школьников |
Курсовая работа | Карибский кризис |
Курсовая работа | Сахарный диабет |
Курсовая работа | Разработка оптимизированных систем аспирации процессов переработки и дробления руд в цехе среднего и мелкого дробления Стойленского ГОКа |