На нашем сайте Вы сможете найти готовые курсовые и дипломные работы по программированию
Сейчас работаем

Программирование логических игр. Игра «Ним»» (C++)

Задание

В настоящее время теория искусственного интеллекта активно развивается. Одним из направлений является решение логических игр. Это позволяет разработчику формализовать поиск в пространстве состояний, что является ключевым методом искусственного интеллекта. Игровые задачи легко представимы в компьютерной программе, поэтому разработка не сильно затруднена.

Целью работы является получение практических навыков решения сложных задач на примере логических игр с помощью подходов СИИ и закрепление теоретических знаний методам поиска по дереву состояний.

Необходимо проанализировать пространство состояний и дерево решений игры Ним, разработать программу на языке высокого уровня, моделирующую данную игру.

Функционал программы

Программа состоит из таких функций как:

void GenerateGame() – функция создания условий для игры;

int nim_sum() – функция определения ним-суммы для текущего хода;

void choose_first_move() – функция выбора первого хода (игрок или искусственный интеллект);

void show_piles() – функция показывает камни в кучах и ним-сумму;

void ai_move() – функция хода искусственного интеллекта;

void player_move() – функция хода игрока;

void new_move() – функция нового хода;

bool game_ended() – функция проверки окончания игры;

void win() – функция проверки победы или проигрыша;

int main() – главная функция.

Содержание отчета к программе

1 Постановка задачи   3

2 Краткое описание     4

3 Формирование и разбор правила       5

4 Формализация дерева состояний         10

5 Описание предложенных эвристик      12

6 Алгоритмы      13

6.1 Краткое описание использованных алгоритмов 13

6.2 Адаптация алгоритмов   14

7 Структура программы      16

8 Контрольный пример        19

9 Программный код    21

Заключение         28

Список источников      29

Фрагмент программного кода

void choose_first_move() //выбор первого хода (игрок или ИИ)
{
	system("cls");
	cout << "Выбор первого хода: \n";
	cout << "Нажмите 'y' для передачи первого хода Компьютеру, любая другая клавиша - первый ход за Игроком";

	if (_getch() == 'y')
	{
		if (nim_sum() == 0)
		{
			cout << "\nВы уверены в своем выборе? нажмите 'y' еще раз для подтверждения. \n";
			if (_getch() == 'y')
			{
				cout << "\nПервый ход за Компьютером \n";
				curent_move = 0;
			}
			else
			{
				cout << "\nПервый ход за Игроком \n";
				curent_move = 1;
			}
		}
		else
		{
			cout << "\nПервый ход за Компьютером \n";
			curent_move = 0;
		}
	}
	else
	{
		cout << "\nПервый ход за Игроком \n";
		curent_move = 1;
	}
	cout << "\nДля начала игры нажмите любую клавишу... \n";
	_getch();
}

void show_piles() //показывает камни в кучах и ним-сумму
{
	system("cls");
	cout << "Текущие условия: \n";

	for (int i = 0; i < numbers_of_piles; i++)
		cout << "[" << piles[i] << "] камней в куче № " << i + 1 << "\n";
	cout << "Текущая ним-сумма: " << nim_sum() << "\n";
}

Скриншот архива с проектом

Пояснения по запуску программы

Скопировать код из пояснительной записки в проект в Visual Studio и запустить.

Купить 4000,00 
Сразу после оплаты Вы сможете скачать работу и мы вышлем дополнительно файл с работой на электронную почту. Исходник программ Вы сможете отредактировать, как Вам нужно.
Комментарии (0)

Здесь еще никто не оставлял свои комментарии, будь первым!

Оставить комментарий

Ты не можешь комментировать

Только зарегистрированые пользователи имеют возможность комментировать работы
Купить

4000,00 

Покупается впервые!
Сразу после оплаты Вы сможете скачать работу и мы вышлем дополнительно файл с работой на электронную почту. Исходник программ Вы сможете отредактировать, как Вам нужно.

Заказать через

MOII.docx
304.6 kB
Оцени работу

0

рейтинг

Программирование логических игр. Игра «Ним»» (C++)
Целью работы является получение практических навыков решения сложных задач на примере логических игр с помощью подходов СИИ и закрепление теоретических знаний методам поиска по дереву состояний. Необходимо проанализировать пространство состояний и дерево решений игры Ним, разработать программу на языке высокого уровня, моделирующую данную игру.
Категория: Образование
Стоимость: 4000,00