Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Пошук найкоротшого шляху в лабіринті

Реферат Пошук найкоротшого шляху в лабіринті





");

}

else

{

gotoxy (3,7); printf ("Найкоротший шлях: ");

Puty (& P, X1, Y1, X2, Y2);

}

// q (& P),

gotoxy (3,8); printf ("Press Esc to exit or any key to continue");

a = getch ();

} while (a! = 27);

closegraph ();

}

Заголовний файл:

# include

# include

# include

# include

# include

const

SX = 10,// Координати початку

SY = 130,// ​​

MX = 30,// ​​колво клітин по осях

MY = 17,

R = 20,

SetkaColor = DARKGRAY,

RebroColor = GREEN,

UzelColor = GREEN,

CursorColor = 15,

PutColor = RED;

struct Lab

{

int Map [MY +2] [MX +2];

// Карта лаб 0-непроходимо 1-двері 2-кімната

int Put [MY +2] [MX +2];

// Карта проходження 1-непрохідний

};

int Grin (struct Lab * P)

{

int gdriver = DETECT, gmode, errorcode;

initgraph (& gdriver, & Gmode, "");

errorcode = graphresult ();

if (errorcode! = grOk)

{

printf ("Graphics error:% s n ", grapherrormsg (errorcode));

printf ("Graphics error: Press any key: ");

getch ();

exit (1);

};

int x, y;

for (y = 0; y

for (x = 0; x

{

P-> Map [y] [x] = 0;/* Ініціалізує масиви */

P-> Put [y] [x] = 0;

}

for (y = 0; y

{

P-> Put [y] [0] = 1;

P-> Put [y] [MX +1] = -1;

}

for (x = 0; x

{

P-> Put [0] [x] = -1;

P-> Put [MY +1] [x] = -1;

}

// Setka

setcolor (SetkaColor);

for (y = 0; y <= MY; y + +)

for (x = 0; x <= MX; x + +)

{

line (SX + x * R, SY, SX + x * R , SY + R * MY);

line (SX , SY + y * R, SX + MX * R, SY + y * R);

}

return 0;

}

void maska ​​(int x, int y)

{

setcolor (0);

rectangle (SX + (x-1) * R +1, SY + (y-1) * R +1, SX + x * R-1, SY + y * R-1);

}

void vyvod (int x, int y)

{

setcolor (CursorColor);

rectangle (SX + (x-1) * R +1, SY + (y-1) * R +1, SX + x * R-1, SY + y * R-1);

}

void Rasstan (struct Lab * P)

{

int x = 1, y = 1;// Коорт курсору

gotoxy (55,4); printf ("Управління:");

gotoxy (55,5), printf ("я - видалити"),

gotoxy (55,6); printf ("д - двері");

gotoxy (55,7); printf ("до - кімната");

gotoxy (55,8); printf (" Enter - запровадити "),

vyvod (x, y),

char a;

do {

a = getch ();

if (! a) a = getch ();

maska ​​(x, y);

switch (a)

{

case 80: if (y

case 72: if (y> 1) - Y; break;/* вгору */

case 75: if (x> 1) - X; break;/* вліво */

case 77: if (x

case 'z' : P-> Map [y] [x] = 0;

setcolor (0); setfillstyle (1,0);

bar (SX + (x-1) * R +1, SY + (y-1) * R +1, SX + x * R-1, SY + y * R-1);

break; p>// раставляем ком і дв

case 'l' : P-> Map [y] [x] = +1;

setcolor (RebroColor);

line (SX + x * RR/2, SY + (y-1) * R +1, SX + x * RR/2, SY + y * R-1);

line (SX + (x-1) * R +1, SY + y * RR/2, SX + x * R-1, SY + y * RR/2);

break;

case 'r' : P-> Map [y] [x] = 2;

setcolor (UzelColor), setfillstyle (1, UzelColor),

fillellipse (SX + x * RR/2, SY + y * RR/2, R/2-1, R/2-1);

break;

case 27: exit (0) ;//vixod iz programmi

}

vyvod (x, y);

} while (a! = 13);

maska ​​(x, y);

}


void Vvod (struct Lab * P, int * x1, int * y1, int * x2, int * y2)

{

gotoxy (3,2); printf ("Введіть вхід в лабіринт ");

int x = 1, y = 1;

char a;

vyvod (x, y);

do {

a = getch ();

if (! a) a = getch ();

maska ​​(x, y),

switch (a) {

case 80: if (y

case 72: if (y> 1) - Y; break;/* вгору */

case 75: if (x> 1) - X; break;/* вліво */

case 77: if (x

case 27: exit (0);

}

vyvod (x, y);

if ((a == 13) && (P-> Map [y] [x] == 2)) break;

} while (1);

maska ​​(x, y);

* x1 = x; * y1 = y;

gotoxy (3,3); printf ("x1 =% 3i y1 =% 3i", x, y),

gotoxy (3,4); printf ("Введіть вихід");

vyvod (x, y);

do {

a = getch ();

if (! a) a = getch ();

maska ​​(x, y);

switch (a) {

case 8...


Назад | сторінка 9 з 10 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Розробка алгоритму синтаксичного аналізу оператора виведення printf мови C ...
  • Реферат на тему: Arguing your case (10 кл)
  • Реферат на тему: Arguing your case (10 кл)
  • Реферат на тему: Case-study. Аналіз випадку
  • Реферат на тему: Об'єктно-орієнтовані CASE-засоби