Рефераты. Разработка приложения, представляющего собой

4.Опиание алгоритма решения в псевдокоде (команды в виде текста на русском языке).

Алгоритм.


1) Описываются переменные и константы

2) Выбор начальных координат случайным образом

3) Прорисовка начального положения

4) Генерация на поле яблок случайным образом

5) Проверка: не появилось ли яблоко на черве.

6) Управление “Змейкой” с клавиатуры.

7) Проверка: “не укусила” ли “змейка сама себя”, если укусила выводится информационное окно (Информационная форма), в противном случае переходим к следующему пункту.

8) Проверка: “не съела” ли “змейка” “яблоко” если съела, то наращиваем ей хвост и переходим к пункту 3), в противном случае см. Следующий пункт.

9) Перерисовка “Змейки”


Игра на ловкость “Змейка”


Законченный вариант игры змейка должен содержать:

4)    “Змейку”, которая может двигаться в ограниченной плоскости. Маневрами “Змейки” должен управлять играющий. “Змейка” должна увеличиваться в размерах при столкновении с “яблоком” и погибать при столкновении с “стеной”, при пересечении самой себя и при выходе за границы плоскости заданной программистом.

5)    “Яблоко” или другой объект, при столкновении с которым “Змейка” “съедает” его(увеличивается в длину в зависимости от условий заданных программистом.

6)    “стена” объект при столкновении с которым змейка погибает.


“змейка” может управляться с помощью клавиш на форме, игра может иметь счетчик набранных очков, таблицу лучших игроков, которая может сохранятся и считываться из файла, а также другие элементы которые увеличивают играбельность игры.

 

Функции управления экранными объектами.

 

сообщение

назначение

аргументы

GotoXY( )

Размещение объекта

Координаты х,у

Level()

Вы никогда не выиграете, если не будете бдительны

Координаты х,у

Move(Game &g)

Функция которая двигает и рисует

Game &g

PlusJabloko(Game &g)

Функция разброски яблок


Game &g

skorostGame(Game &g)


Функция старта змейки ее координат и скорости



Game &g

SetColor(ConsoleColor text, ConsoleColor background)

Изменение цвета

ConsoleColor text, ConsoleColor background

STENA_2()                    

Функция рисования стены

Координаты х,у

стены

ZmejaStart()

Старт игры

GotoXY(10,15)

Main()

Главная функция



Описание функций.

//Функция разброски яблок

void PlusJabloko(Game &g){}

1.Процесс….int x,y,i;

Int n=g.gaduka.pCount;

2.Заводим цикл do while ,в котором задаем координаты объекта- яблоко

x = rand() % 56+3; //

y = rand() % 19+3; //кординаты яблока

3.проверяем объект-яблоко,попало ли оно на объект-змейку.

4. Если попало->break;

5.Если все нормально,запоминаем позицию объекта-яблоко

6.переносим курсор в эту позицию

7.присваиваем цвет объкту-яблоко

8.рисуем объект-яблоко-> символом 4(5,6)

printf("%c", 6); //рисуем яблоко каким хотим символом


// Функция старта змейки ее координат и скорости

void skorostGame(Game &g){}

1.задаем точки-размер объека-змейка

2.когда создали-запоминам позицию

3.задаем скорость передвижения объекта-змейки

4.рисуем объект-яблоко


//Функция которая двигает и рисует


int Move(Game &g){}


1.вводим координаты головы объекта- змейка

2. вводим координаты хвоста объекта- змейка

3.проверяем следующую точку по направлению.

4.проверяем объект-змейка и объект- стенка, не наехал ли объект-змейка на объект-стенка

         -если да-то выход

         -если нет, то продолжаем

5.проверяем объект-змейка саму на себя ,не наехали на себя

         -если да – то конец

         -если нет – то продолжаем

6.при создании объекта- змейка перекомпилируем змейку путем увеличения ее длины на одну точку

7.появляется новый массив, больший на 1-цу

8.при съедании объекта-яблока -закрашиваем его в цвет змейки

9.закрашиваем хвостик змеи в зеленый цвет

10.закрашиваем курсор в белый цвет(голова змейки)

Цвета.

Экранные объекты можно закрашивать разными цветами .В объекте могут присутствовать два цвета- внутренний и цвет контура.

Цвета кодируются цифрами:

enum ConsoleColor

{

           Pink  = 0,

                   Blue  = 1,

                   Green  = 2,

                   Cyan  = 3,

                   Red   = 4,

                   Magenta  = 5,

                   Brown  = 6,

                   LightGray = 7,

                   DarkGray  = 8,

                   LightBlue = 9,

                   LightGreen = 10,

                   LightCyan = 11,

                   LightRed  = 12,

                   LightMagenta = 13,

                   Yellow = 14,

                   White  = 15


Если значение кода задать большим 7,будет использован остаток от его деления на 7.

При создании экранных объектов по умолчанию происходит следующее:

-информационные рамки располагаются вертикально друг под другом в правой части экрана, остальные объекты размещаются в точке с координатами(0,0)

-все объекты создаются белыми с черным контуром.


Структуры:

struct Zmeja // структура змейка

{        COORD *t; //точки

         int PCount; //количество яблок

};

enum uprawlenie{LEFT,UP,RIGHT,DOWN}; //направление змейки


struct Game //даные-точности: змейки, яблок, передвижение по X и Y, задержка, направление

{

         Zmeja gaduka; //змейка

         COORD jabloko; //яблоко

         int dx,dy, //передвижение

                   pause; //задержка

         int nap; //направление

};


Сообщения.

функция

координаты

сообщения

Void Level()

GotoXY(10,10)


GotoXY(10,11)


<<"Wu nikogda ne wuigraete "<<endl;

<<"eslu ne bydete bdutelnu!!!"<<endl;


Void ZmejaStart()

GotoXY(10,15)


<<"Soberite 75 Jablok "<<endl;


Void STENA_2()

GotoXY(20,0)

GotoXY(64,2)

GotoXY(64,3)

GotoXY(64,4)

GotoXY(64,5)

GotoXY(64,7)

GotoXY(64,8)

GotoXY(64,9)

GotoXY(64,10)

GotoXY(64,11)

GotoXY(64,13)

GotoXY(64,14)

GotoXY(64,15)

GotoXY(64,16)

GotoXY(2,2)-(2,23)

GotoXY(61,3)-(61,23)

<< "Igra \"Zmejka\" Maiko Ekaterini" <<endl;

<< "Danue:" << endl ;

<< "Jablok:0" << endl ;

<< "Dlina:3"<< endl;

<< "Speed:0" << endl;

<< "Uprawlenie:" << endl;

<< "Esc:Wuxod" << endl;

<< "P:Pause" << endl;

<<"S:Start" << endl;

<<"L:Level" << endl;

<<":Wwerx"<<endl;

<<":Wniz"<<endl;

<<":Wlewo"<<endl;

<<":Wprawo"<<endl;

printf("*");

                                                              

printf("*");


Void main()

GotoXY(15,1)

GotoXY(15,6)

GotoXY(15,7)

GotoXY(23,1)

<< "Wu wuigrali(maladec!!!)" << endl;

printf( "\n\t\t\t" );

printf( "\n\t\t\t" );

printf("Wu proigrali(xa-xa-xa!!!)\n\n\t\t\t");



Входные параметры:

1.установка позиции курсора х,у;

void GotoXY(int X, int Y)

{

         COORD coord = { X, Y };

         SetConsoleCursorPosition(hStdOut, coord);

}


2. Структура объекта – змейка

 

struct Zmeja // структура змейка

{

         COORD *t; //точки

         int PCount; //количество яблок

};


3. даные-точности: змейки, яблок, передвижение по X и Y


struct Game задержка, направление

{

         Zmeja gaduka; //змейка

         COORD jabloko; //яблоко

         int dx,dy, //передвижение

         pause; //задержка

         int nap; //направление


};


Выходные параметры:


1.Если выиграл


GotoXY(15,1); cout << "Wu wuigrali(maladec!!!)" << endl;

                                               GotoXY(15,6);printf( "\n\t\t\t" );

                                               GotoXY(15,7);printf( "\n\t\t\t" );

                                               getch();

Страницы: 1, 2, 3



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.