
Среда программирования: Visual C++ .NET 2010
Название работы: Игра "Мельница" (человек против компьютера)
Вид работы: Курсовая работа
Тематика работы: Игры
Объем программы: 5 (по десятибалльной шкале)
Уровень сложности: 5 (по десятибалльной шкале)
Разработчик (автор):
Программист сайта kursovik.com
(письмо автору)
Данная работа написана ЧЕЛОВЕКОМ без использования ИИ
Ключевые слова: игра, мельница, человек-компьютер
Функции программы:
Реализованный режим: человек против компьютера.
У игры 3 стадии:
1 - выставление всех фишек;
2 - непосредственное их передвижение и их удаление с поля (фишки могут убраны с поля и на первой стадии);
3 - когда у кого-то остается 3 фишки и они начинает свободно перемещаться по полю (так же дальше идет процесс удаления), другой ходит как на второй стадии.
Осталось меньше 2 фишек - проигрыш.
Правила игры:
В начале игры оба играющих выставляют по очереди каждый свои 9 фишек на любые кружки игрового поля, стараясь поставить три фишки в один ряд. Задача играющего — расположить свои фишки на игровом поле так, чтобы партнёр не мог замкнуть ряда. После того как все 18 фишек будут выставлены, они начинают делать ходы, передвигаясь на один свободный кружок по чёрным линиям (сплошным или штриховым). Цель остаётся та же — построить три фишки в ряд по горизонтали, вертикали или диагонали.
Построив такой ряд, играющий снимает одну фишку противника. Построив второй, снимает ещё одну фишку и т.д. Разрешается “перепрыгивать” через одну фишку (свою или противника), если за нею имеется свободный кружок. Тот, у кого останутся две фишки, считается проигравшим, так как из двух фишек уже нельзя построить ряд.
Иногда применяется ещё одно дополнительное правило. Когда у одного играющего остаются всего три фишки, он получает право переносить свою фишку на любой кружок игрового поля, независимо от начерченных линий, тогда как второй играющий ходит по обычным правилам до тех пор, пока у него не останутся три фишки.
Каждый ход компьютер с помощью оценочной функции просчитывает текущую ценность/приоритет поля. То есть просчитывает ценность отдельно взятой фишки на поле (соответственно ценность зависит от ее положения в общем на доске и положением других фишек относительно ее). И если это фишка компьютера то прибавляет к общему приоритету поля (изначально он равен 0), а если человека то вычитает из приоритета поля приоритет этой фишки. И так просчитывает для каждой фишки на поля, затем получает итоговый приоритет поля.
Если текущая ситуация на поля выгодна больше для компьютера, то приоритет поля положительный, соответственно, приоритет поля должен быть отрицательный, если данная ситуация на поле выгодней для человека.
Так работает оценочная функция. Она эвристическая, никаких точных математических функций ценности не нужно.
Альфа-бета отсечение:
Затем компьютер составляет дерево решений, то есть строит дерево(множество вариантов) своих возможных ходов и для каждого из вариантов применяет оценочную функцию и получает какой приоритет такой возможной ситуации на поле. Затем строит такие же возможные ходы человека и снова получает приоритет поля.
И так заданное количество раз. Получается N-уровневое дерево. По умолчанию таких уровней 2, но предусмотрена константа в коде для изменения этой величины. То есть по умолчанию о просчитывает свой текущий ход и ход человека. Складывая приоритеты разных уровней по конкретной ветке, он выбирает ветку с максимальным приоритетом и ходит так как указано на первом уровне этой ветки.
Описание (отчет): Нет, но можно заказать его написание
9men
9men
9men
9men.vcxproj
9men.vcxproj
game
game
MainForm
MainForm
MainForm
x64
Debug
9men
Release
9men
9men|
Стоимость ИСХОДНОГО ТЕКСТА программы составляет 1300 руб РФ Продажа каждой работы строго учитывается, у каждой работы есть своя история продаж. |