Создание модели игры «Шашки» в среде программирования 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 Мб (Скачать файл)

 

 

1.2 Классификация

Возможны различные классификации  шашечных игр. Прежде всего, можно выделить собственно шашки и «игры шашечного  типа», которые шашками обычно не называют.

Шашки так же разделяют  по следующим признакам:

По размерам доски — 12×12 (канадские), 10×10 (международные), 8×8 (подавляющее большинство вариантов шашек), 10×8 (80-клеточные).

По особенностям правил игры:

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

1.3 разновидность игр в шашки

Русские шашки

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

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

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

Международные шашки

Игра наиболее популярна  в Европе. Используется доска 10×10 клеток. У каждого игрока в начальной  позиции по 20 шашек, которые занимают первые четыре ряда с каждой стороны, «простая» шашка может бить вперёд и назад, дамка может ходить и  бить на любое число полей. «Простая»  превращается в дамку только тогда, когда она заканчивает свой ход  на поле превращения. При бое «простой»  через поле превращения она не превращается и продолжает бой как  простая. Если после поля превращения  «простая» может бить только как  дамка, она остаётся на поле превращения  и может продолжать бить как дамка только со следующего хода. Также как и в русских шашках существует правило «турецкого удара». При возможности нескольких вариантов взятия полагается бить максимально возможное количество шашек. Цель игры, как и в русских шашках, — съесть или запереть все шашки противника.

Армянские шашки

Игра ведётся на стандартной 64-клеточной доске, но шашки ходят  и бьют не по диагоналям, а по вертикалям и горизонталям, взятие назад для  простой шашки запрещено. Ещё  одна их особенность — наличие  «джентльменских правил» — правил, требующих от игрока предупреждать  противника, когда его шашки ставятся под удар и когда простая шашка  оказывается на седьмой или восьмой  горизонтали.

Бразильские шашки

Правила аналогичны международным  шашкам, но игра ведётся на доске 8×8, по 12 шашек с каждой стороны.

Канадские шашки

В канадские шашки играют на доске 12×12, по 24 шашки с каждой стороны. В остальном правила  аналогичны международным шашкам.

Английские шашки (чекерс)

Английские шашки

Английские или американские шашки, или чекерс (англ. Checkers). Доска 8×8, в начальной позиции у каждого игрока по 12 шашек, расположенных в первых трёх рядах на чёрных клетках. Первый ход делают чёрные. «Простые» шашки могут ходить по диагонали на одну клетку вперёд и бить только вперёд, дамка может ходить на одну клетку по диагонали вперёд и назад и бить через одну клетку в любую сторону. Бить обязательно, если есть несколько путей, игрок может выбрать любой, не обязательно самый длинный, но пройти его до конца.

В 2007 году Джонатан Шеффер доказал, что существует беспроигрышный алгоритм (см. программа Chinook), следуя которому игрок может рассчитывать минимум на ничью в английских шашках, вне зависимости от того, каким цветом он играет.[1] Являясь беспроигрышным, данный алгоритм тем не менее не является оптимальным[источник не указан 536 дней].

Пул (Pool Checkers)

Популярный в США вариант игры. Правила аналогичны международным шашкам, но игра ведётся на доске 8×8, по 12 шашек с каждой стороны. Ещё одно отличие — не требуется бить максимальное количество шашек.

Итальянские шашки

В итальянские шашки играют на шахматной доске размером 8×8 клеток, которая повернута на 90 градусов по сравнению со стандартной. Шашки игроков занимают первые три ряда с каждой стороны, располагаясь на белых полях. Правила игры в итальянские шашки похожи на правила игры чекерс, но имеют некоторые отличия:

  • Простая шашка не может бить назад и не может бить дамку;
  • Бить нужно максимально возможное количество шашек соперника, а при равных вариантах боя нужно бить максимальное количество дамок.

Испанские шашки

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

Поддавки (обратные шашки)

Правила игры в поддавки (здесь также существуют варианты 8×8 и 10×10) аналогичны правилам в соответствующие  русские и международные шашки, однако цель игры — поддать или запереть все свои шашки.

Шашки-самоеды

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

Столбовые шашки

Старинный русский вариант, где побитая простая шашка  не снимается с поля, а ставится под побившую её башню.

Ставропольские  шашки

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

Диагональные  шашки

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

80-клеточные шашки

Доска прямоугольная 10×8, то есть у белых и черных — по 15 простых. Правила аналогичны правилам в русские шашки.

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

Были предложены в середине 1960-гг. советским мастером, харьковчанином Николаем Петровичем Спанцирети. Особого  распространения не получили. В середине 1980-х гг. в рижском журнале «Шашки»  была опубликована статья о данной разновидности шашек.

1.4 Шашки, как вид спорта

В настоящее время спортивные соревнования проводят следующие организации  по следующим шашечным системам игры:

  • Европейская конфедерация шашек, штаб-квартира которой находится в столице Эстонии Таллине, организует командные и гроссмейстерские турниры по международным шашкам за звание чемпиона Европы.
  • Всемирная федерация шашек (ФМЖД) — международные шашки, русские шашки, бразильские шашки, английские шашки и их разновидности. Также шашечная композиция. За победу в поединке участникам записывают в таблицу очко, за ничью — пол-очка, за поражение — ноль.
  • Federazione Italiana Dama, FID — итальянские шашки.
  • Association québécoise des joueurs de dames, AQJD — канадские шашки.

Чемпионы мира по шашкам определяются с XIX века, официальный статус с 1948 года имеют чемпи

 

 

 

 

 

 

 

 

 

 

 

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

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

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

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

Начиная с 2007 года уже язык Delphi (производный от Object Pascal) начал жить своей самостоятельной жизнью и претерпевал различные изменения, связанные с современными тенденциями (например, с развитием платформы .NET) развития языков программирования: появились class helpers, перегрузки операторов и другое.

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

Изначально среда разработки была предназначена исключительно для  разработки приложений Microsoft Windows, затем был реализован также для платформ Linux (как Kylix), однако после выпуска в 2002 году Kylix 3 его разработка была прекращена, и, вскоре после этого, было объявлено о поддержке Microsoft .NET.

Реализация среды разработки проектом Lazarus (Free Pascal, компиляция в режиме совместимости с Delphi) позволяет использовать его для создания приложений на Delphi для таких платформ, как Linux, Mac OS X и Windows CE.

Также предпринимались попытки  использования языка в проектах GNU (например, Notepad GNU) и написания компилятора для GCC.

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

Object Pascal — результат развития языка Турбо Паскаль, который, в свою очередь, развился из языка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль, начиная с версии 5.5, добавил в Паскаль объектно-ориентированные свойства, а в Object Pascal — динамическую идентификацию типа данных, с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией — данная технология получила обозначение RTTI. Так как все классы наследуют функции базового класса TObject, то любой указатель на объект можно преобразовать к нему, после чего воспользоваться методом ClassType и функцией TypeInfo, которые и обеспечат интроспекцию.

Также отличительным свойством Object Pascal от С++ является то, что объекты по умолчанию располагаются в динамической памяти. Однако можно переопределить виртуальные методы NewInstance и FreeInstance класса TObject. Таким образом, абсолютно любой класс может осуществить «желание» «где хочу — там и буду лежать». Соответственно организуется и «многокучность».

Object Pascal (Delphi) является результатом  функционального расширения Turbo Pascal.

Delphi оказал огромное влияние  на создание концепции языка C# для платформы .NET. Многие его элементы и концептуальные решения вошли в состав С#. Одной из причин называют переход Андерса Хейлсберга, одного из ведущих разработчиков Дельфи, из компании Borland Ltd. в Microsoft Corp.

  • Версия 8 способна генерировать байт-код исключительно для платформы .NET. Это первая среда, ориентированная на разработку мультиязычных приложений (лишь для платформы .NET);
  • Последующие версии (обозначаемые годами выхода, а не порядковыми номерами, как это было ранее) могут создавать как приложения Win32, так и байт-код для платформы .NET.

Delphi for .NET — среда разработки Delphi, а также язык Delphi (Object Pascal), ориентированные на разработку приложений для .NET.

Первая версия полноценной среды  разработки Delphi для .NET — Delphi 8. Она позволяла писать приложения только для .NET. Delphi 2006 поддерживает технологию MDA с помощью ECO (Enterprise Core Objects) версии 3.0.

В марте 2006 года компания Borland приняла решение о прекращении дальнейшего совершенствования интегрированных сред разработки JBuilder, Delphi и C++ Builder по причине убыточности этого направления. Планировалась продажа IDE-сектора компании. Группа сторонников свободного программного обеспечения организовала сбор средств для покупки у Borland прав на среду разработки и компилятор[5].

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