703

Реализация модели Ханойские башни

Курсовая

Информатика, кибернетика и программирование

Разработать программу на языке C#, реализующую модель игры Ханойские башни. В данной курсовой работе спроектирована и разработана программа на языке C#, которая на основе запрошенных у пользователя входных данных моделирует Ханойские башни или позволяет разложить их вручную.

Русский

2013-01-06

56.5 KB

327 чел.

Государственное образовательное учреждение высшего профессионального образования московской области

Международный Университет

природы, общества и человека «Дубна»

Курсовая работа по предмету

программирование на языке высокого уровня на тему:

«Реализация модели «Ханойские башни»»

Выполнила:

студентка гр.1012

Гаджиева Д.А.

Руководители:

ст. преп.

Мельникова О. И.,

Иванцова О. В.

Дубна, 2012


Оглавление

Оглавление

Введение

Цель и задачи работы

Входные параметры

Описание работы

Интерфейс и структура программы

Блок-схема основной части программы

Описание наиболее интересной части программы

Заключение

Список литературы

 


Введение

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

В наше время многие любят играть в компьютерные игры. Даже взрослые люди порой не прочь отдохнуть, разложив пасьянс или задумавшись над головоломкой. Далеко ходить не нужно. Но ведь мало кто задумывается, как  пишутся модели этих игр? В данной курсовой работе рассматривается реализация алгоритма «Ханойские башни».

Задача состоит в том, чтобы перенести пирамиду из n-го числа колец за наименьшее число ходов. За один раз разрешается переносить только одно кольцо, причём нельзя класть большее кольцо на меньшее.

Легенда

В одном из буддийских монастырей монахи уже тысячу лет занимаются перекладыванием колец. Они располагаются тремя пирамидами, на которых надеты кольца разных размеров. В начальном состоянии 64 кольца были надеты на первую пирамиду и упорядочены по размеру. Монахи должны переложить все кольца с первой пирамиды на вторую, выполняя единственное условие – кольцо нельзя положить на кольцо меньшего размера. При перекладывании можно использовать все три пирамиды. Монахи перекладывают одно кольцо за одну секунду. Как только они закончат свою работу, наступит конец света. Количество перекладываний в зависимости от количества колец вычисляется по формуле 2n-1. Для 64 колец это 18 446 744 073 709 551 615 перекладываний, и, если учесть скорость одно перекладывание в секунду, получится около 584 942 417 355 лет, то есть апокалипсис наступит нескоро.

На самом деле эту известную игру придумал французский математик Эдуард Люка, в 1883 году её продавали как забавную игрушку. Первоначально она называлась «Профессор Клаус из Колледжа Ли-Су-Стьян», но вскоре обнаружилось, что таинственный профессор из несуществующего колледжа — не более чем анаграмма фамилии изобретателя игры — профессора Люка из колледжа Сен-Луи.

Цель и задачи работы

Разработать программу на языке C#, реализующую модель игры «Ханойские башни». То есть мы имеем n колец, в нашем случае от 1 до 9, которые мы должны переместить с одной башни на другую, в том же порядке, как они заданы изначально.

При работе с этой программой пользователь должен иметь возможность:

  •  Выбирать число колец.
  •  Выбирать скорость перемещения колец
  •  Получить справочные материалы по данной программе.

Программа должна отвечать следующим требованиям:

  •  Иметь интерфейс, который во многом упрощает работу пользователю.
  •  Корректно работать при нескольких запусках.
  •  Иметь справочные материалы.
  •  Иметь достойное дизайнерское оформление.

Входные параметры

В качестве параметров, задаваемых пользователем, выбраны количество, цвет и скорость перемещения колец.


Описание работы

Интерфейс и структура программы

При запуске программы, на экране появляется окно «приветствие» (см. Приложение, рис.1),  которое другими словами можно назвать «титульным листом», на котором указана тема курсовой работы и имя автора. После нажатия кнопки «Начать» открывается основное окно программы (Приложение, рис.2). На этом окне присутствует 5 кнопок, поле для вывода количества колец и башня с изначальным количеством колец.

Действия, выполняемые при нажатии кнопок:

«Нарисовать» — рисует башенку с указанным количеством колец.

«Решить» — Самым оптимальным способом перекладывает кольца башни.

«Стоп» — Останавливает процесс перекладывания колец, после чего пользователь может продолжить вручную.

«Быстрее»/«Медленнее» — Увеличивает/уменьшает скорость перемещения колец.

Так же пользователь может посмотреть более подробную информацию о приложении в меню «Описание» и «Легенда» и выбрать цвета колец башни.

Ход игры:

  1.  Пользователем выбирается количество колец от 1 до 9.
  2.  Далее нажимается кнопка «Нарисовать», вследствие чего появятся кольца.
  3.  Пользователь может вручную попытаться переложить кольца или нажать кнопку «Решить», что бы это сделал компьютер.
  4.  После того как кольца будут перемещены, можно сравнить оптимальное количество перемещений с полученным.


Блок-схема основной части программы

Блок-схема основной части программы представлена на рис.1.

  1.  

Рис.1.Блок-схема основной части программы


Описание наиболее интересной части программы

На мой взгляд, самой интересной частью программы, является описание самого перемещения, то есть хода игры. На нечетном шаге мы всегда перемещаем верхний круг: с 1-ой башни на 3-ю, со 2-ой на 1-ю или с 3-ей на вторую. На четном шаге мы находим номер кольца, которое нужно передвинуть и перемещаем его на единственную доступную башню.  

Метод выбран рекурсивный.

Рекурсия — метод определения класса объектов или методов предварительным заданием одного или нескольких (обычно простых) его базовых случаев или методов, а затем заданием на их основе правила построения определяемого класса, ссылающегося прямо или косвенно на эти базовые случаи.

Другими словами, рекурсия — способ общего определения объекта или действия через себя, с использованием ранее заданных частных определений. Рекурсия используется, когда можно выделить самоподобие задачи.


Заключение

В данной курсовой работе спроектирована и разработана программа на языке C#, которая на основе запрошенных у пользователя входных данных моделирует «Ханойские башни» или позволяет разложить их вручную. Программа обладает достаточно устойчивой защитой от ввода некорректных данных, удобным интерфейсом для работы пользователей и справочными материалами.

Данная программа может быть использована в качестве примера по моделированию объектов и процессов в C#, или в качестве игры.


Список литературы

  1.  Шилдт Г. C# Учебный курс. — СПб.: Питер. 2002.
  2.  Лабор В. В. Си шарп: Создание приложений для Windows. — Минск: Харвест. 2003.
  3.  Шилдт Г. Полный справочник по C#. — М.: Вильямс. 2004.


 

А также другие работы, которые могут Вас заинтересовать

76946. Особенности административно-правового статуса иностранных граждан и лиц без гражданства 28.5 KB
  Правовое положение иностранных граждан на территории РФ регулируется российским законодательством а также международными договорами. Законы РФ распространяются на всех лиц находящихся на ее территории. Правовое положение иностранных граждан регламентируется Конституцией законами России международными договорами правилами пребывания иностранных граждан на территории РФ и транзитного проезда иностранных граждан через территорию РФ. Законодательство различает иностранных граждан постоянно проживающих и временно пребывающих на территории...
76947. Понятие и признаки органов исполнительной власти РФ, система органов исполнительной власти, их классификация 29.22 KB
  Понятие и признаки органов исполнительной власти РФ система органов исполнительной власти их классификация. Орган исполнительной власти государственное учреждение обладающее относительной самостоятельностью структурной организацией наделенное государственно-властными полномочиями исполнительно-распорядительного характера и действующее в пределах определенной территории. Признаки органа исполнительной власти: является государственным учреждением; вместе с органами законодательной и судебной власти входит в систему органов...
76948. Президент Российской Федерации и исполнительная власть 27.36 KB
  Назначает и отзывает после консультаций с соответствующими комитетами или комиссиями палат Федерального Собрания дипломатических представителей РФ в иностранных государствах и международных организациях; Федеральные министерства федеральные службы и федеральные агентства руководство деятельностью которых осуществляет Президент РФ: Министерство внутренних дел РФ подведомственная ему Федеральная миграционная служба Министерство РФ по делам гражданской обороны чрезвычайных ситуаций и ликвидации последствий стихийных бедствий Министерство...
76949. Правительство Российской Федерации: порядок формирования, состав, основные полномочия 25.06 KB
  Правительство РФ это коллегиальный орган состоящий из Председателя Правительства РФ заместителей Председателя Правительства РФ и федеральных министров. ФКЗ О Правительстве РФ по сути является документом составляющим вместе с Конституцией РФ правовую базу деятельности Правительства РФ. Председатель Правительства РФ назначается Президентом РФ с согласия Государственной Думы и освобождается от неё на основаниях предусмотренных законом. Заместители Председателя Правительства РФ и федеральные министры назначаются на должность и...
76950. Федеральные органы исполнительной власти России: понятие, система, структура, правовое положение, функции 26.71 KB
  Федеральные органы исполнительной власти России: понятие система структура правовое положение функции. В систему федеральных органов исполнительной власти входят федеральные министерства федеральные службы и федеральные агентства. Правовое положение или правовой статус органов исполнительной власти подразумевает что все они действуют на основе законов и других нормативных актов осуществляют нормотворческую деятельность совершают действия возложенные на них нормативными актами имеют полномочия компетенцию а также обладают...
76951. Органы исполнительной власти субъектов Российской Федерации 27.14 KB
  Органы исполнительной власти субъектов Российской Федерации.государственная и территориальная целостность Российской Федерации. распространение суверенитета Российской Федерации на всю ее территорию; верховенство Конституции и федеральных законов на всей территории Российской Федерации...
76953. Общественные объединения как субъекты административного права: понятие, порядок и цели создания, правовой статус, прекращение деятельности 26.21 KB
  Виды общественных объединений: 1 в зависимости от организационноправовой формы: общественная организация основанное на членстве общественное объединение созданное на основе совместной деятельности для защиты общих интересов и достижения уставных целей объединившихся граждан; общественное движение состоящее из участников и не имеющее членства массовое общественное объединение преследующее социальные политические и иные общественно полезные цели поддерживаемые участниками общественного движения; общественный фонд является одним...
76954. Государственная служба в России как правовой институт административного права: понятие, принципы, система и правовые основы 25.29 KB
  Государственная служба Российской Федерации профессиональная служебная деятельность граждан Российской Федерации по обеспечению исполнения полномочий: Российской Федерации; федеральных органов государственной власти иных федеральных государственных органов; субъектов Российской Федерации; органов государственной власти субъектов Российской Федерации иных государственных органов субъектов Российской Федерации; лиц замещающих должности устанавливаемые Конституцией Российской Федерации федеральными законами для непосредственного...