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

Программирование логических игр. Игра «Ним»» (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
311913
Оцени работу

рейтинг

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