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

Реферат Автоматизована система побудови лабіринту і пошуку виходу з нього





ила клітинку з виходом

{

//виводимо повідомлення і виходім.Show ( У лабіринті НЕ існує шляху від входу до виходу! ) ;;

}

/// pictureBox1.Refresh ();// Обновити зображення pictureBox1 на формі


//шлях мається!

//знайдемо найкоротший відстані, переміщаючись від виходу до входу

//поточна комірка при зворотному пошуку=xstop - 1;

ty=ystop - 1;=0; [countpath, 0]=tx; [countpath, 1]=ty; ++;=lab [tx, ty, 1];

while (lastwave gt; 0)//поки не дійшли до входу (у нього номер хвилі=0)

{

/// pictureBox1.Refresh ();// Обновити зображення pictureBox1 на формі

/// Thread.Sleep (70);// Зробимо паузу на вказану кількість мілісекунд

//червоним шрифтом нана осередку напишемо номер хвилі

/// gfr.DrawString (Convert.ToString (lastwave), new Font ( Tahoma raquo ;, 8), Brushes.Red, new Point ((int) tx * sizecell + sizecell/3 , (int) ty * sizecell + sizecell/3));

//далі йде перевірка сусідніх осередків і пошук осередку в якій довжина хвилі на 1 менше поточного значення хвилі

//перевіряємо осередок зверху ((ty gt; 0) amp; amp; (lab [tx, ty - 1, 1] == lastwave - 1))

{

//намалюємо червону лінію (шлях) від поточної комірки до сусідньої

/// gfr.DrawLine (Pens.Red, (int) tx * sizecell + sizecell/2, (int) ty * sizecell + sizecell/2, (int) tx * sizecell + sizecell/ 2, (int) (ty - 1) * sizecell + sizecell/2); [countpath, 0]=tx; [countpath, 1]=ty - 1; ++; -;// Змінюємо поточну ячейку-;// Зменшуємо довжину хвилі

continue;// Переходимо до наступної ітерації циклу

}

//перевіряємо осередок знизу ((ty lt; ycells - 1) amp; amp; (lab [tx, ty + 1, 1] == lastwave - 1))

{

//намалюємо червону лінію (шлях) від поточної комірки до сусідньої

/// gfr.DrawLine (Pens.Red, (int) tx * sizecell + sizecell/2, (int) ty * sizecell + sizecell/2, (int) tx * sizecell + sizecell/ 2, (int) (ty + 1) * sizecell + sizecell/2); [countpath, 0]=tx; [countpath, 1]=ty + 1; ++; ++;// Змінюємо поточну ячейку-;// Зменшуємо довжину хвилі

continue;// Переходимо до наступної ітерації циклу

}

//перевіряємо осередок зліва ((tx gt; 0) amp; amp; (lab [tx - 1, ty, 1] == lastwave - 1))

{

//намалюємо червону лінію (шлях) від поточної комірки до сусідньої

/// gfr.DrawLine (Pens.Red, (int) tx * sizecell + sizecell/2, (int) ty * sizecell + sizecell/2, (int) (tx - 1) * sizecell + sizecell/2, (int) ty * sizecell + sizecell/2); [countpath, 0]=tx - 1; [countpath, 1]=ty; ++; -;// Змінюємо поточну ячейку-;// Зменшуємо довжину хвилі

continue;// Переходимо до наступної ітерації циклу

}

//перевіряємо осередок праворуч ((tx lt; xcells - 1) amp; amp; (lab [tx + 1, ty, 1] == lastwave - 1))

{

//намалюємо червону лінію (шлях) від поточної комірки до сусідньої

/// gfr.DrawLine (Pens.Red, (int) tx * sizecell + sizecell/2, (int) ty * sizecell + sizecell/2, (int) (tx + 1) * sizecell + sizecell/2, (int) ty * sizecell + sizecell/2); [countpath, 0]=tx + 1; [countpath, 1]=ty; ++; ++;// Змінюємо поточну ячейку-;// Зменшуємо довжину хвилі

continue;// Переходимо до наступної ітерації циклу

}

}

/// pictureBox1.Refresh ();// Обновити зображення pictureBox1 на формі

}

//Алгоритм однієї руки. Відповідає на питання: чи можна переміститися в зазначену осередок?

public bool can (int tox, int toy)

{((tox lt; 0) || (tox gt; xcells - 1) || (toy lt; 0) || (toy gt; ycells - 1)) return false; (lab [tox, toy, 0] == 1) return false;

return true;

}

//Зробити наступний крок

//Використовується в алгоритмі однієї руки. bool NextStep ()

{w0=way;// Напрямок, у бік якого дивимося 1-вгору 2-вправо 3-вниз 4-влевоpx=0;// Зсув по горізонталіpy=0;// Зсув по вертикалі//переглянемо все навколо

{(w0 == 1) {px=0; py=- 1; }//Якщо напрямок вгору, коригуємо зміщення (w0 == 2) {px=1; py=0; }//Якщо напрямок вправо, коригуємо зміщення (w0 == 3) {px=0; ...


Назад | сторінка 16 з 18 | Наступна сторінка





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

  • Реферат на тему: Ударні хвилі. Параметри ударної хвилі. Її вплив на людей, будівлі і спору ...
  • Реферат на тему: Розробка схеми та розрахунок основних параметрів фотоприймального пристрої ...
  • Реферат на тему: Електромагнітні хвилі
  • Реферат на тему: Економічні Хвилі
  • Реферат на тему: Коливання і хвилі