Алгоритми розв'язання лабіринтних та ігрових задач

Тип работы:
Контрольная
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Міністерство освіти і науки України

Національний університет «Львівська політехніка»

Кафедра автоматизованих систем управління

Звіт

до розрахункової роботи

з теорії алгоритмів

«Алгоритми розв’язання лабіринтних та ігрових задач»

Виконала:

ст. групи КН-21

Прач Ю.О.

Прийняв:

Цимбал Ю.В.

Львів-2011

Мета:

ь навчитися розробляти алгоритми лабіринтних та ігрових задач.

Індивідуальне завдання:

17. (Прач) Числа від 1 до 15 розставлені в клітинках на дошці, як зображено на рисунку. Використовуючи одну вільну комірки (в центрі), перемістіть числа, щоб розставити їх у такому ж порядку, але з числом 15 в центральній комірці.

Алгоритм

Рухаємо числа і пробуємо різні варіанти розміщень, але з одною умовою — 14, 15 і 1 завжди мають бути в особливих позиціях. Інакше задача не буде мати розв’язку.

Код програми

ігровий задача інформація стратегія

#include< stdio. h>

#include< stdlib. h>

#include< clocale>

#include< Windows. h>

intmas[16]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0};

intmain ()

{

setlocale (LC_CTYPE, «ukr»);

SetConsoleCP (1251);

SetConsoleOutputCP (1251);

inttemp, i;

printf («Початковий стан: n»);

for (i=0; i< 16; i++)

printf («%d «, mas[i]);

printf («n»);

// 1-а перестановка

temp=mas[15];

mas[15]=mas[0];

mas[0]=mas[14];

for (i=14; i> 10; i--)

mas[i]=mas[i-1];

mas[i]=mas[15];

mas[15]=temp;

printf («Перша перестановка: n»);

for (i=0; i< 16; i++)

printf («%d «, mas[i]);

printf («n»);

// 2-а перестановка

temp=mas[15];

mas[15]=mas[10];

for (i=10; i> 5; i--)

mas[i]=mas[i-1];

mas[i]=mas[15];

mas[15]=temp;

printf («Друга перестановка: n»);

for (i=0; i< 16; i++)

printf («%d «, mas[i]);

printf («n»);

// 3-я перестановка

temp=mas[15];

mas[15]=mas[0];

mas[0]=mas[14];

for (i=14; i> 10; i--)

mas[i]=mas[i-1];

mas[i]=mas[15];

mas[15]=temp;

printf («Третя перестановка: n»);

for (i=0; i< 16; i++)

printf («%d «, mas[i]);

printf («n»);

// 4-а перестановка

temp=mas[15];

mas[15]=mas[10];

for (i=10; i> 5; i--)

mas[i]=mas[i-1];

mas[i]=mas[15];

mas[15]=temp;

printf («Четверта перестановка: n»);

for (i=0; i< 16; i++)

printf («%d «, mas[i]);

printf («n»);

// 5-а перестановка

temp=mas[15];

mas[15]=mas[0];

mas[0]=mas[14];

for (i=14; i> 10; i--)

mas[i]=mas[i-1];

mas[i]=mas[15];

mas[15]=temp;

printf («П'ята перестановка: n»);

for (i=0; i< 16; i++)

printf («%d «, mas[i]);

printf («n»);

// 6-а перестановка

temp=mas[15];

mas[15]=mas[5];

for (i=5; i> 0; i--)

mas[i]=mas[i-1];

mas[i]=mas[15];

mas[15]=temp;

printf («Шоста перестановка: n»);

for (i=0; i< 16; i++)

printf («%d «, mas[i]);

printf («n»);

// 7-а перестановка

temp=mas[15];

mas[15]=mas[10];

for (i=10; i> 5; i--)

mas[i]=mas[i-1];

mas[i]=mas[15];

mas[15]=temp;

printf («Сьома перестановка: n»);

for (i=0; i< 16; i++)

printf («%d «, mas[i]);

printf («n»);

// 8-а перестановка

temp=mas[15];

mas[15]=mas[0];

mas[0]=mas[14];

for (i=14; i> 10; i--)

mas[i]=mas[i-1];

mas[i]=mas[15];

mas[15]=temp;

printf («Восьма перестановка: n»);

for (i=0; i< 16; i++)

printf («%d «, mas[i]);

printf («n»);

// 9-а перестановка

temp=mas[15];

mas[15]=mas[5];

for (i=5; i> 0; i--)

mas[i]=mas[i-1];

mas[i]=mas[15];

mas[15]=temp;

printf («Дев'ята перестановка: n»);

for (i=0; i< 16; i++)

printf («%d «, mas[i]);

printf («n»);

// 10-а перестановка

temp=mas[15];

mas[15]=mas[10];

for (i=10; i> 5; i--)

mas[i]=mas[i-1];

mas[i]=mas[15];

mas[15]=temp;

printf («Десята перестановка: n»);

for (i=0; i< 16; i++)

printf («%d «, mas[i]);

printf («n»);

// 11-а перестановка

temp=mas[15];

mas[15]=mas[0];

mas[0]=mas[14];

for (i=14; i> 10; i--)

mas[i]=mas[i-1];

mas[i]=mas[15];

mas[15]=temp;

printf («Одиннадцята перестановка: n»);

for (i=0; i< 16; i++)

printf («%d «, mas[i]);

printf («n»);

// 12-а перестановка

temp=mas[15];

mas[15]=mas[5];

for (i=5; i> 0; i--)

mas[i]=mas[i-1];

mas[i]=mas[15];

mas[15]=temp;

printf («Дванадцята перестановка: n»);

for (i=0; i< 16; i++)

printf («%d «, mas[i]);

printf («n»);

// 13-а перестановка

temp=mas[15];

mas[15]=mas[10];

for (i=10; i> 5; i--)

mas[i]=mas[i-1];

mas[i]=mas[15];

mas[15]=temp;

printf («Тринадцята перестановка: n»);

for (i=0; i< 16; i++)

printf («%d «, mas[i]);

printf («n»);

// 14-а перестановка

temp=mas[15];

mas[15]=mas[0];

mas[0]=mas[14];

for (i=14; i> 10; i--)

mas[i]=mas[i-1];

mas[i]=mas[15];

mas[15]=temp;

printf («Чотирнадцята перестановка: n»);

for (i=0; i< 16; i++)

printf («%d «, mas[i]);

printf («n»);

// 15-а перестановка

temp=mas[15];

mas[15]=mas[5];

for (i=5; i> 0; i--)

mas[i]=mas[i-1];

mas[i]=mas[15];

mas[15]=temp;

printf («П'ятнадцята перестановка: n»);

for (i=0; i< 16; i++)

printf («%d «, mas[i]);

printf («n»);

// 16-а перестановка

temp=mas[15];

mas[15]=mas[10];

for (i=10; i> 5; i--)

mas[i]=mas[i-1];

mas[i]=mas[15];

mas[15]=temp;

printf («Шістнадцята перестановка: n»);

for (i=0; i< 16; i++)

printf («%d «, mas[i]);

printf («n»);

// 17-а перестановка

temp=mas[15];

mas[15]=mas[5];

for (i=5; i< 10; i++)

mas[i]=mas[i+1];

mas[i]=mas[15];

mas[15]=temp;

printf («Сімнадцята перестановка: n»);

for (i=0; i< 16; i++)

printf («%d «, mas[i]);

printf («n»);

// 18-а перестановка

temp=mas[15];

mas[15]=mas[0];

mas[0]=mas[14];

for (i=14; i> 5; i--)

mas[i]=mas[i-1];

mas[i]=mas[15];

mas[15]=temp;

printf («Вісімнадцята перестановка: n»);

for (i=0; i< 16; i++)

printf («%d «, mas[i]);

printf («n»);

// 19-а перестановка

temp=mas[15];

mas[15]=mas[10];

for (i=10; i< 14; i++)

mas[i]=mas[i+1];

mas[i]=mas[0];

mas[0]=mas[15];

mas[15]=temp;

printf («Дев'ятнадцята перестановка: n»);

for (i=0; i< 16; i++)

printf («%d «, mas[i]);

printf («n»);

// 20-а перестановка

temp=mas[15];

mas[15]=mas[0];

for (i=0; i< 5; i++)

mas[i]=mas[i+1];

mas[i]=mas[15];

mas[15]=temp;

printf («Двадцята перестановка: n»);

for (i=0; i< 16; i++)

printf («%d «, mas[i]);

printf («n»);

// 21-а перестановка

temp=mas[15];

mas[15]=mas[10];

int j=10;

while (mas[0]≠1)

{

for (i=j; i> 0; i--)

mas[i]=mas[i-1];

mas[0]=mas[14];

for (i=14; i< j; i--)

mas[i]=mas[i-1];

j=i;

}

mas[14]=0;

printf («Кінцевий результат: n»);

for (i=0; i< 16; i++)

printf («%d «, mas[i]);

printf («nЗадача розв’язана!n»);

system («pause»);

return 0;

}

Приклад виконання:

ПоказатьСвернуть
Заполнить форму текущей работой