Задать вопрос
Портал помощи студентам №1

Учебные работы на заказ без посредников
и переплат!

,

ул. Добролюбова, 16/2

support@professsor.com
Служба техподдержки
ЛабораторнаяЗаказ 6844

Генерация и выход из лабиринта

договорная

На аукционе

17 декабря 2017 в 20:00
19 декабря
Описание работы

#include #include #include #define UP 0 #define LT 1 #define DN 2 #define RT 3 int main() { const int Width = 10;//Ширина const int Height = 10;//Высота const int CellSize = 50;//Размер клетки в пикселях int Cell[Width][Height] = { //Задаем массив клеток { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, { 1, 0, 1, 1, 1, 1, 1, 0, 1, 1 }, { 1, 0, 0, 0, 1, 0, 0, 0, 1, 1 }, { 1, 1, 1, 1, 1, 0, 1, 1, 1, 1 }, { 1, 0, 0, 0, 1, 0, 0, 0, 0, 1 }, { 1, 1, 1, 0, 1, 0, 1, 1, 0, 1 }, { 2, 0, 0, 0, 0, 0, 1, 0, 0, 3 }, { 1, 1, 1, 1, 1, 0, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, }; int xb;//Координаты начальной клетки int yb; int xt;//Кооринаты текущей клетки int yt; int xe;//Координаты конечной клетки int ye; int i = 0; int j = 0; for (i = 0; i"); xb = i; yb = j; } else if (Cell[i][j] == 3) { printf(" >"); xe = i; ye = j; } putch('\n'); } int dir = UP;//Направление //всегда пытается повернуть налево, //если не получается, вперед, //если и это не получается, направо, //если и это не получается, назад xt = xb; yt = yb; int k = 0;//номер шага while ((xt != xe || yt != ye) && k < 1000) { k++; if (Cell[xt][yt] != 2) Cell[xt][yt] = 4; if (dir == UP) { if ((yt > 0) && Cell[xt][yt - 1] != 1) { yt--; dir = LT; }//налево else if ((xt > 0) && Cell[xt - 1][yt] != 1) { xt--; dir = UP; }//вверх else if ((yt < Width - 1) && Cell[xt][yt + 1] != 1) { yt++; dir = RT;}//направо else if ((xt < Height - 1) && Cell[xt + 1][yt] != 1) { xt++; dir = DN;}//вниз } else if (dir == LT) { if ((xt < Height - 1) && Cell[xt + 1][yt] != 1) { xt++; dir = DN; } else if ((yt > 0) && Cell[xt][yt - 1] != 1) { yt--; dir = LT; } else if ((xt > 0) && Cell[xt - 1][yt] != 1) { xt--; dir = UP; } else if ((yt < Width - 1) && Cell[xt][yt + 1] != 1) { yt++; dir= RT; } } else if (dir == DN) { if ((yt < Width - 1) && Cell[xt][yt + 1] != 1) { yt++; dir = RT; } else if ((xt < Height - 1) && Cell[xt + 1][yt] != 1) { xt++; dir = DN; } else if ((yt > 0) && Cell[xt][yt - 1] != 1) { yt--; dir = LT; } else if ((xt > 0) && Cell[xt - 1][yt] != 1) { xt--; dir = UP; } } else if (dir == RT) { if ((xt > 0) && Cell[xt - 1][yt] != 1) { xt--; dir = UP; } else if ((yt < Width - 1) && Cell[xt][yt + 1] != 1) { yt++; dir = RT; } else if ((xt < Height - 1) && Cell[xt + 1][yt] != 1) { xt++; dir = DN; } else if ((yt > 0) && Cell[xt][yt - 1] != 1) { yt--; dir = LT; } } } if (k == 1000) printf("Don't find! \n"); else printf("Find! \n"); putch('\n'); printf("k=%d\n", k); putch('\n'); for (i = 0; i"); else if (Cell[i][j] == 3) printf(" >"); else if (Cell[i][j] == 0) putch(' '); else if (Cell[i][j] == 2) putch('>'); else if (Cell[i][j] == 3) putch('>'); else printf(" ."); putch('\n'); } system("pause"); return 0; } написать программу на подобие этой, но чтобы код отличался. + блок-схема


Вход на сайт
Войти
Данная функция доступна только
для зарегистрированных пользователей
Пожалуйста, авторизуйтесь, или пройдите регистрацию
Войти
Подтвердите ваш e-mail

Для завершения регистрации подтвердите свой e-mail: перейдите по ссылке, высланной вам в письме.

После этого будет создан ваш аккаунт и вы сможете войти на сайт и в личный кабинет.

ОК