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

Характерна особливість ігрових задач. Основні види ігрових задач: з повною та неповною інформацією. Методи знаходження планів гри і оптимальних стратегій для таких ігор, як шахи, шашки, "хрестики-нулики". Способи побудови систем штучного інтелекту.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык украинский
Дата добавления 22.01.2015
Размер файла 588,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

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

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

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

Звіт

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

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

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

Виконала:

ст. групи КН-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;

}

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

Размещено на Allbest.ru


Подобные документы

  • Види рівнянь та методи їх розв’язань. Чисельні методи уточнення коренів, постановка задачі. Рішення нелінійного рівняння методом простих та дотичних ітерацій. Використання програмних засобів. Алгоритми розв’язку задач. Програми мовою С++, їх тестування.

    курсовая работа [232,2 K], добавлен 12.02.2013

  • Метод розв’язків рівнянь більш високих порядків. Вибір методу розв'язання задачі Коші. Методи розв'язання крайових задач розглядаються на прикладі звичайного диференціального рівняння другого порядку. Вибір методу інструментальних засобів вирішення задач.

    курсовая работа [132,0 K], добавлен 03.12.2009

  • Лінійне програмування як один з найбільш популярних апаратів математичної теорії оптимального управління рішень. Опис існуючих методів розв’язку задач лінійного програмування. Завдання, основні принципи, алгоритми і головна мета лінійного програмування.

    курсовая работа [363,8 K], добавлен 03.12.2009

  • Алгоритми розв’язання задач у вигляді блок–схем. Використання мови програмування MS VisualBasic for Application для написання програм у ході вирішення задач на одномірний, двовимірний масив, порядок розв’язання задачі на використання символьних величин.

    контрольная работа [742,9 K], добавлен 27.04.2010

  • Практична реалізація гри в "хрестики-нулики" в середовищі програмування Turbo C++ версії 3.0. Моделювання ігрового поля квадратною матрицею третього порядку. Процедури програми гри. Створення програми Tic_Tac, що дозволяє людині грати у гру з комп’ютером.

    курсовая работа [145,8 K], добавлен 23.04.2010

  • Логічний, структурний, еволюційний та імітаційний підходи до побудови системи штучного інтелекту. Використання формально-логічних структур, що обумовлено їх алгоритмічним характером. Методи реалізації системи штучного інтелекту, інтелектуальні програми.

    реферат [34,5 K], добавлен 14.04.2014

  • Приклади застосування цілочисельних задач лінійного програмування у плануванні та управлінні виробництвом, геометрична інтерпретація їх розв’язків на площині. Завдання складання розкладу занять на математичному факультеті. Математична модель розкладу.

    дипломная работа [933,1 K], добавлен 23.09.2012

  • Призначення гри в хрестики-нулики та програмне забезпечення, необхідне для її функціонування. Написання програми в середовищі Borland C++ Builder. Способи виклику програми. Характер вхідних та вихідних даних. Алгоритм та тестування роботи програми.

    курсовая работа [321,6 K], добавлен 01.04.2016

  • Початковий опорний план, перехід від одного до іншого. Оптимальний розв’язок, його головні критерії. Знаходження опорного плану задачі, складання симплексної таблиці. Приклад оформлення першої та другої таблиці для розв’язку задач лінійного програмування.

    лекция [479,7 K], добавлен 10.10.2013

  • Поняття штучного інтелекту, його порівняння з природним. Коротка характеристика особливостей використання штучного інтелекту в медицині, військовій справі та комп'ютерних іграх. Проблема взаємодії носіїв універсального штучного інтелекту та суспільства.

    контрольная работа [29,6 K], добавлен 07.01.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.