Создание модели игры «Шашки» в среде программирования Delphi

Автор работы: Пользователь скрыл имя, 21 Января 2014 в 16:18, дипломная работа

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

Цель дипломной работы: моделирование аналогов популярной игры шашки.
Одним из разделов компьютерного моделирования, являются компьютерные игры, зависящие от случайности и стратегических правил игры.
Актуальность темы на сегодняшний день: тема как никогда актуальна, за счет достаточно высокой конкуренции на рынке подобных приложений и программ. Многие подобные разработки, нацелены на игру «компьютер – человек», и искусственный интеллект в редких случаях, обыгрывает даже чемпионов.

Содержание

Введение…………………………………………………………………………..2Терминология…………………………………………………………………….4
Аналитический обзор
I. Шашки.
История шашечной игры……………………………………………………..8
Классификация……………………………………………………………....10
Варианты шашек……………………………………………………...…......10
Шашки как вид спорта....................................................................................15
II. Среда программирования Delphi.
2.1 Краткое определение Delphi…………………………………………...……16
2.2 Целевая платформа…………………………………………………………..16
2.3 История языка………………………………………………………………..16
2.4 Синтаксис языка……………………………………………………………..20
2.5 Объектно-ориентированные особенности языка…………………………..21
2.6 Примеры……………………………………………………………………..21
2.7 Расширения файлов………………………………………………………….23
Глава III Практическая часть.
Работа в среде Delphi, написание программы «Шашки»
3.1 Проект, его местоположение………………………………………………..24
3.2 Запуск программы с компакт диска………..……………………………….25
3.3 Исходный код программы…………………………………………………..27

Заключение…………………………………………………………………..….45
Список литературы………………………………………………………….…46

Вложенные файлы: 1 файл

Дипломная работа (общий файл) Станислав Левин.docx

— 1.14 Мб (Скачать файл)

Содержание

Введение…………………………………………………………………………..2Терминология…………………………………………………………………….4

Аналитический обзор

I. Шашки.

    1. История шашечной игры……………………………………………………..8
    2. Классификация……………………………………………………………....10
    3. Варианты шашек……………………………………………………...…......10
    4. Шашки как вид спорта....................................................................................15

II. Среда программирования Delphi.

2.1 Краткое определение Delphi…………………………………………...……16

2.2 Целевая платформа…………………………………………………………..16

2.3 История языка………………………………………………………………..16

2.4 Синтаксис языка……………………………………………………………..20

2.5 Объектно-ориентированные особенности языка…………………………..21

2.6  Примеры……………………………………………………………………..21

2.7 Расширения файлов………………………………………………………….23

Глава III Практическая часть.

Работа в среде Delphi, написание программы «Шашки»

3.1 Проект, его местоположение………………………………………………..24

3.2 Запуск программы с  компакт диска………..……………………………….25

3.3 Исходный код программы…………………………………………………..27

 

Заключение…………………………………………………………………..….45

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

 

 

 

 

 

Введение.

Тема дипломного проекта: «Создание модели игры «Шашки» в  среде программирования Delphi. Программа не должна вести игру с человеком, её задача – проверять правильность совершаемых ходов и возникновение выигрышных ситуаций для одного из игроков»

Задачи дипломного проекта: программирование в соответствии с  требованиями задания, а именно на языке  Delphi.

Цель дипломной работы: моделирование аналогов популярной игры шашки.

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

Актуальность темы на сегодняшний  день: тема как никогда актуальна, за счет достаточно высокой конкуренции на рынке подобных приложений и программ. Многие подобные разработки, нацелены на игру «компьютер – человек», и искусственный интеллект в редких случаях, обыгрывает даже чемпионов.

Таким образом,  некоторые  разработчики, пытаются создать совершенный  ИИ (искусственный интеллект), способный  побеждать действующих чемпионов, и помочь им в подготовке. Порой  даже человек, венец природы, не способен сделать тех потрясающих комбинаций и ходов, которые успевает рассчитать компьютер.

Актуальность работы над шашками, нацеленными на игру «человек – человек», так же подтверждается за счет довольно большого перечня похожих приложения на рынке. Кроме того, любому человеку полезно сыграть «самому с собой», это позволяет развивать мышление, учит просчитывать ходы,  и тренирует память (запоминая ходы, свои прошлые ошибки и т.д.).

 

 

Так выглядит главное окно, запущенной программы «Шашки».

Моделируемая игра «Шашки»  обладает определенным набором правил, и требований, а именно:

Размеры: доска 8×8 (подавляющее большинство вариантов шашек)

Правила

  • Начальное расположение шашек. Возможны разнообразные варианты.
  • Направление хода и взятия: по диагонали
  • Возможность боя назад простой шашкой.
  • Степень свободы хода дамки.
  • Правила предпочтения взятия: при наличии нескольких вариантов боя в одних играх игрок может выбрать любой вариант, в других — его свобода выбора ограничена.
  • Правила превращения простой шашки в дамку

 

 

 

Терминология:

Терминология  программирования

 

Delphi — императивный, структурированный, объектно-ориентированный язык программирования, диалект Object Pascal.

Начиная со среды разработки Delphi 7.0, в официальных документах Borland стала использовать название Delphi для обозначения языка Object Pascal.

Наследование — механизм объектно-ориентированного программирования (наряду с инкапсуляцией, полиморфизмом и абстракцией), позволяющий описать новый класс на основе уже существующего (родительского), при этом свойства и функциональность родительского класса заимствуются новым классом.

Другими словами, класс-наследник  реализует спецификацию уже существующего  класса (базовый класс). Это позволяет  обращаться с объектами класса-наследника точно так же, как с объектами  базового класса...

ООП — объектно-ориентированное, или объектное, программирование парадигма программирования, в которой основными концепциями являются понятия объектов и классов. В случае языков с прототипированием вместо классов используются объекты-прототипы.

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

Полиморфизм (в языках программирования) — возможность объектов с одинаковой спецификацией иметь различную реализацию.

Язык программирования поддерживает полиморфизм, если классы с одинаковой спецификацией могут иметь различную реализацию — например, реализация класса может быть изменена в процессе наследования.

Кратко смысл полиморфизма можно  выразить фразой: «Один интерфейс, множество реализаций».

Полиморфизм — один из четырёх важнейших механизмов объектно-ориентированного программирования (наряду с абстракцией, инкапсуляцией и наследованием).

Полиморфизм позволяет писать более  абстрактные программы и повысить коэффициент повторного использования кода. Общие свойства объектов объединяются в систему, которую могут называть по-разному — интерфейс, класс. Общность имеет внешнее и внутреннее выражение:

  • внешняя общность проявляется как одинаковый набор методов с одинаковыми именами и сигнатурами (именами методов, типами аргументов и их количеством);
  • внутренняя общность — одинаковая функциональность методов. Её можно описать интуитивно или выразить в виде строгих законов, правил, которым должны подчиняться методы. Возможность приписывать разную функциональность одному методу (функции, операции) называется перегрузкой метода (перегрузкой функций, перегрузкой операций).

Шашечные термины

Большая, или главная  дорога— самая большая диагональ на шашечной доске (a1-h8).

Двойник — две параллельные диагонали a7-g1 и b8-h2, пересекающие большую дорогу.

Тройник — диагонали a3-f8 и c1-h6, находящиеся по обе стороны большой дороги, и две маленькие диагонали a3-c1 и f8-h6, их соединяющие.

Косяк — связанные между собой диагонали e1-a5-d8-h4-e1.

Бортовые поля — крайние вертикальные поля шашечной доски.

Простая — обычная шашка (не дамка).

Бортовые шашки — шашки, занимающие бортовые поля шашечной доски.

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

Дамка — шашка, достигшая дамочных полей.

Ход — передвижение шашки с одного поля на другое.

Тихий ход, или темп — простое перемещение шашки.

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

Поддача — преднамеренная постановка шашки под удар.

Размен — поддача под удар одной или нескольких своих шашек и взятие такого же количества шашек противника.

Рожон — белая шашка, расположенная на поле d6 или f6, или чёрная, расположенная на поле c3 или e3, и противостоящая двум шашкам противника, если у него нет возможности её атаковать.

Цугцванг — позиция в шашечной партии, когда любой ход одного из противников ведёт к ухудшению его позиции или поражению.

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

Миттельшпиль — серединная часть партии (после 7-12 ходов), в которую переходит её дебютная часть.

Эндшпиль — 1.заключительная часть партии, в которую переходит миттельшпиль, когда у соперников остаётся не более, чем по шесть шашек.2.позиция с малым числом шашек.

Жертва — умышленная поддача шашки (иногда двух и более) под удар.

Запирание — положение, при котором одна или несколько шашек одной из сторон закрыты шашками противника и не могут ходить.

Оппозиция — противостояние белых и чёрных простых шашек на одной вертикали.

Отсталая (слабая) шашка — шашки a1 и h2 у белых, и a7 и h8 у чёрных (в начальной позиции в русских шашках).

Петля — приём ловли дамки.

Проходная шашка — шашка, которой обеспечен проход в дамки.

Прорыв — стратегический приём, позволяющий прорваться в дамки.

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

Решето — расположение шашек, при котором между ними имеются свободные поля.

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

Самообложение — положение, в котором собственные шашки ограничивают действие своих сил, что часто оказывается причиной поражения.

Связка — положение, в котором одна из сторон сковывает силы противника.

Столбняк — противостояние дамок, при котором очередь хода приводит к поражению.

Треугольник Петрова — расположение на доске при ловле тремя дамками одной дамки противника.

Турецкий удар — правило взятия, при котором уже сбитая, но не снятая с доски до окончания взятия шашка останавливает бьющую шашку.

 

 

 

 

 

 

 

 

Глава I. Шашки.

1.1 История шашечной игры.

 


 

Шашки — игра для двух и более игроков на многоклеточной доске, подобной шахматной, специальными фишками-шашками. Подобно шахматам, шашки воспроизводят действия сражающихся по определённым правилам сил.

Шашки входят в категорию  так называемых игр шашечного типа, включающую множество разнообразных настольных игр для двух-четырёх игроков, в которые играют на расчерченной доске равноценными фишками. Кроме шашек, в неё также входят такие игры, как алькерк, го, ко-вай, латрункули, нарды, рэндзю, сенет и другие. Противоположная категория — игры шахматного типа — включает настольные игры для двух-четырёх игроков, в которые играют также на доске, но неравноценными фигурами (сянци, чатуранга, шахматы и другие). Общая их над-категория — игры шахматно-шашечного типа, куда входят и гибридные игры, например, шахматы.

Достоверных сведений об изобретении  шашек история не сохранила. Вполне вероятно, что различные игры шашечного  типа изобретались на протяжении истории  человечества многократно и независимо, чему способствовала простота инвентаря  и правил. Считается, что известные  сейчас игры шашечного типа представляют собой различные этапы эволюции игр на доске, так что все они  в определённом смысле родственны друг другу, что подтверждается близостью  инвентаря и названий игр. Так, названия шашек: русское «тавлеи» и польское «warcaby», связаны с европейским названием нардовой игры: tavola reale (в Италии), tables reales (в Испании), tavli (в Греции), tavla (в Турции), tables или backgammon (в Великобритании), vrhcaby (в Чехии).

Принципиальным отличием шашек, от нардовых игр, стал отказ от игральных костей, которые были неотъемлемой частью многих древних игр (сенет, чатуранга), имитируя фактор случайности в жизни. Ещё одна категория шашечных игр развилась на Востоке. В этих играх шашки не двигаются, а лишь выставляются на доску, образуя те или иные развивающиеся конфигурации, между которыми, собственно, и идёт борьба (го, рэндзю).

Наиболее древние изображения  игроков за игрой, определяемой как  вариант шашек, имеются ещё в  памятниках Древнего Египта.

Народам, населявшим территорию нынешней России и прилегающие регионы, шашки были известны ещё в III веке. Игра в шашки была широко распространена на территории всей Европы в Средние века и эпоху Возрождения, не говоря уже о более поздних временах.

Информация о работе Создание модели игры «Шашки» в среде программирования Delphi