Автор работы: Пользователь скрыл имя, 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
Однако в ноябре того же года было принято решение отказаться от продажи IDE бизнеса. Тем не менее, разработкой IDE продуктов теперь будет заниматься новая компания — CodeGear, которая будет финансово полностью подконтрольна Borland.
В августе 2006 года Borland выпустил облегченную версию RAD Studio под именем Turbo: Turbo Delphi (для Win32 и .NET), Turbo C#, Turbo C++.
В марте 2008 года было объявлено о прекращении развития этой линейки продуктов.
В марте 2007 года CodeGear порадовала пользователей обновленной линейкой продуктов Delphi 2007 for Win32 и выходом совершенно нового продукта Delphi 2007 for PHP.
В июне 2007 года CodeGear представила свои планы на будущее, то есть опубликовала так называемый roadmap.
Embarcadero RAD Studio 2010.
25 августа 2008 года компания Embarcadero, новый хозяин CodeGear, опубликовала пресс-релиз на Delphi for Win32 2009. Версия привнесла множество нововведений в язык, как то:
Вышедшая в 2011 году версия Delphi XE2 добавила компилятор Win64 и кросс-компиляцию для операционных систем фирмы Apple.
Cписок операторов через пробел: := + — * / div mod not and or with xor shl shr ^ = <> >= <= < > @ in is as
Выражения в Object Pascal (Delphi) бывают арифметическими, логическими и строковыми.
Основные логические выражения:
Логические выражения в
Обрабатываемые в программе данные подразделяются на переменные, константы и литералы. Константы представляют собой данные, значения которых установлены в разделе объявления констант и не изменяются в процессе выполнения программы.
В языке Object Pascal классы — это специальные типы данных, используемые для описания объектов. Соответственно объект, имеющий тип какого-либо класса, является экземпляром (instance) этого класса или переменной этого типа.
Класс представляет собой особый тип, имеющий в своем составе такие элементы (члены, member), как поля, свойства и методы. Поля класса аналогичны полям записи и служат для хранения информации об объекте. Методами называются процедуры и функции, предназначенные как правило для обработки полей. Свойства занимают промежуточное положение между полями и методами.
Объединение и скрытие объектных данных, а также обрабатывающих их методов внутри конкретного класса от пользователя называется инкапсуляцией.
При создании новых объектов получить все свойства и методы от своих предков называют наследованием. Такие объекты наследуют после своего создания все поля, свойства, события, методы и прочее от своих предков. Наследование часто избавляет разработчиков от рутинной работы и позволяет не мешкая приступить к разработке чего-то нового.
Это методы различных объектов, которые
могут иметь одинаковые имена, но
по внутреннему содержимому
Каждая написанная программа на языке Delphi состоит из заголовка программы (program NewApplication;), поля используемых модулей Uses (к примеру, Uses Windows, Messages, SysUtils и т. д.), который может не входить в саму структуру, а также блоков описания и исполнения (начинаются составным оператором begin и заканчиваются end.).
program Project1; // Заголовок программы, с её именем «Project1»
uses
Forms,
Unit1 in 'Unit1.pas' {Form1}; // модули, которые подключены к проекту и используются программой
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1); // Создание формы/окна
Application.Run;
end.
Вывод сообщения «Hello, world!» в консольном приложении Delphi
program Helloworld; //название программы
{$APPTYPE CONSOLE} //директива компилятору о создании консольного приложения
begin
writeln('Hello, world!'); //вывод сообщения Hello, world!
end. //конец программы
Вывод сообщения «Hello, world!» в 32-разрядном GUI приложении Delphi
procedure TForm1.Button1Click(Sender: TObject); //Обработчик события OnClick, генерируемый автоматически
begin
ShowMessage('Hello, world!'); //вывод сообщения Hello, world!
end;
Пример № 3
Динамическое создание списка строк и запись его в файл
// Обработчик события,
происходящего при создании
procedure TMainForm.FormCreate(Sender: TObject);
var
// Объявление переменной типа TStrings (список строк).
Strings: TStrings;
begin
// Создание (выделение памяти и заполнение её начальными значениями) объекта типа TStringList.
// TStringList - это потомок TStrings, реализующий его абстрактные методы с целью хранения строк в памяти.
Strings := TStringList.Create;
try
// Добавление строки.
Strings.Add('Добавляемая строка.');
// Сохранение всех строк в файл.
Strings.SaveToFile('C:\
finally
// Освобождение памяти объекта и очистка ссылки на неё для предотвращения непреднамеренного обращения к не выделенной памяти.
FreeAndNil(Strings);
end;
end;
Глава III. Работа в среде Delphi, написание программы «Шашки»
1.1 Проект, его местоположение.
Программа написана в среде Delphi 7, и имеет достаточно простой интерфейс. Есть возможность записи имен игроков, таймер, и окно отображающее игрока, делающего ход в данный момент.
Программа, и весь теоретический материал, записаны на компакт диск.
Весь проект, хранится в папке «DCheckers».
На диске, весь проект находится по следующему пути:
«Буква диска»:\Дипломная работа\Шашки (программа)\DCheckers\
Полный перечень файлов, виден на следующем скриншоте.
На диске, все файлы хранятся по следующему пути:
«Буква диска»:\Дипломная работа\Шашки (программа)\DCheckers\_source_
1.2 Запуск программы с компакт диска.
Запуск программы с компакт диска, осуществляется путем двойного щелчка мыши по файлу «DCheckers.exe».
Путь к файлу:
«Буква диска»:\Дипломная работа\Шашки (программа)\DCheckers\ DCheckers.exe
Появится следующее окно:
В файле «About.pas» находится краткая информация об авторе проекта.
Просмотреть её можно как нажатие на сам файл, находящимся по следующему пути:
«Буква диска»:\Дипломная работа\Шашки (программа)\DCheckers\ _source_ \About.Pas) так и нажатием на кнопку «Помощь», в запущенной программе.
После чего вы увидите окно:
1.3 Исходный код программы.
{$A8,B-,C+,D+,E-,F-,G+,H+,I+,
{$MINSTACKSIZE $00004000}
{$MAXSTACKSIZE $00100000}
{$IMAGEBASE $00400000}
{$APPTYPE GUI}
unit Main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons, Menus,
Draughts, VChessBoard;
type
TfmCheckers = class(TForm)
Timer1: TTimer;
pnRight: TPanel;
MainMenu1: TMainMenu;
miFile: TMenuItem;
miGame: TMenuItem;
miHelp: TMenuItem;
miAbout: TMenuItem;
miExit: TMenuItem;
miStartLocalGame: TMenuItem;
pnChessBoard: TPanel;
lbedBlackName: TLabeledEdit;
lbedWhiteName: TLabeledEdit;
Label1: TLabel;
Label2: TLabel;
stCurrentPlayer: TStaticText;
Label3: TLabel;
stTimer: TStaticText;
miCancelGame: TMenuItem;
procedure miExitClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure miStartLocalGameClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure miCancelGameClick(Sender: TObject);
procedure miAboutClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
vcbChess:TVisualChessBoard;
PlayerSide, CurrentPlayer:Integer;
IsDraughtChosen:Boolean;
DraughtPosition:TCellPosition;
StrikeMode:Boolean;
PlayTime:Integer;
StartTime:TDateTime;
LocalGame:Boolean;
procedure vcbChessMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
procedure vcbChessMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure vcbChessMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
Procedure TrySelectNewDraught(x, y:Integer);
Procedure TryMakeStrike(x, y:Integer);
Procedure SwitchCurrentPlayer;
Function CheckForWin:Integer;
end;
var
fmCheckers: TfmCheckers;
implementation
uses About;
{$R *.dfm}
procedure TfmCheckers.miExitClick(
begin
Close;
end;
procedure TfmCheckers.FormCreate(Sender: TObject);
begin
vcbChess:=TVisualChessBoard.
vcbChess.Parent:=pnChessBoard;
vcbChess.Left:=8;
vcbChess.Top:=8;
vcbChess.Width:=1200;
vcbChess.Height:=1200;
vcbChess.OnMouseMove:=
vcbChess.OnMouseDown:=
vcbChess.OnMouseUp:=
vcbChess.Refresh;
end;
procedure TfmCheckers.FormResize(Sender: TObject);
Var
CellSize:Integer;
begin
If pnChessBoard.Width<
CellSize:=(pnChessBoard.Width-
Else
CellSize:=(pnChessBoard.
vcbChess.Left:=8;
vcbChess.Top:=8;
vcbChess.Width:=CellSize*8;
vcbChess.Height:=CellSize*8;
vcbChess.Refresh;
If IsDraughtChosen Then
TrySelectNewDraught(
end;
procedure TfmCheckers.vcbChessMouseMove(
X, Y: Integer);
Var
xP, yP:Integer;
begin
vcbChess.Cursor:=crDefault;
vcbChess.GetCellNumberByCoord(
Информация о работе Создание модели игры «Шашки» в среде программирования Delphi