Разработка игры "Крестики-нолики"
Язык программирования Borland Delphi, выбранный в качестве среды, для написания компьютерной игры "крестики-нолики". Порядок осуществления запуска приложения и техническое описание программы. Интерфейс программного продукта и специальные процедуры.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 11.10.2016 |
Размер файла | 1,7 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство образования Республики Беларусь
Учреждение образования «Минский государственный высший радиотехнический колледж»
Специальность «Программное обеспечение информационных технологий»
КУРСОВАЯ РАБОТА
Игра «Крестики-нолики»
по курсу «Основы алгоритмизации и программирования»
Выполнил студент 3 курса
заочного отделения
Журко Д.А.
группа 34411
Минск 2014
Содержание
Введение
1. Исследовательская часть
1.1 Язык программирования
1.2 Требования к программе
2. Конструкторская часть
2.1 Описание задания
2.2 Описание игры и её правил
2.3 Описание программы
2.4 Техническое описание программы
Заключение
Список используемой литературы
Листинг 1. Текст программы
Введение
программирование язык компьютерный игра
Стремительное развитие компьютерной техники в последние годы, появление мощнейших графических ускорителей и центральных процессоров способствовало не менее бурному развитию индустрии компьютерных игр. Выдающиеся разработки этой отрасли - это сложнейшие программы, как правило, с очень высокими требованиями к аппаратной части компьютера. Однако для возможности отдохнуть в перерыве от выполнения какой-либо работы оператору компьютера не всегда требуется новейшая компьютерная игра, а зачастую использовать её не позволяет маломощное оборудование офисного компьютера. Именно этой цели - отдыху от монотонной работы служит разработанная в рамках данного курсового проекта программа.
1. Исследовательская часть
1.1 Язык программирования
В качестве среды, для написания компьютерной игры «крестики-нолики», был выбран язык программирования Borland Delphi. Далее я бы хотел представить краткую историю этого языка программирования.
Delphi -- результат развития языка Turbo Pascal, который, в свою очередь, развился из языка Pascal. Pascal был полностью процедурным языком, Turbo Pascal, начиная с версии 5.5, добавил в Pascal объектно-ориентированные свойства, а в Object Pascal -- динамическую идентификацию типа данных с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией --данная технология получила обозначение RTTI. Так как все классы наследуют функции базового класса TObject, то любой указатель на объект можно преобразовать к нему, после чего воспользоваться методом ClassType и функцией TypeInfo, которые и обеспечат интроспекцию.
Также отличительным свойством Object Pascal от С++ является то, что объекты по умолчанию располагаются в динамической памяти. Однако можно переопределить виртуальные методы NewInstance и FreeInstance класса TObject. Таким образом, абсолютно любой класс может осуществить «желание» «где хочу -- там и буду лежать». Соответственно организуется и «многокучность».
Object Pascal (Delphi) являются результатом функционального расширения Turbo Pascal.
Delphi оказал огромное влияние на создание концепции языка C# для платформы .NET. Многие его элементы и концептуальные решения вошли в состав С#. Одной из причин называют переход Андерса Хейлсберга, одного из ведущих разработчиков Delphi, из компании Borland Ltd. в Microsoft Corp.
· Версия 1 была предназначена для разработки под 16-разрядную платформу Win16;
· Версии со второй компилируют программы под 32-разрядную платформу Win32;
· Вместе с 6-й версией Delphi вышла совместимая с ним по языку и библиотекам среда Kylix, предназначенная для компиляции программ под операционную систему GNU/Linux;
· Версия 8 способна генерировать байт-код исключительно для платформы .NET. Это первая среда, ориентированная на разработку мультиязычных приложений (лишь для платформы .NET);
· Последующие версии (обозначаемые годами выхода, а не порядковыми номерами, как это было ранее) могут создавать как приложения Win32, так и байт-код для платформы .NET.
Delphi for .NET -- среда разработки Delphi, а также язык Delphi (Object Pascal), ориентированные на разработку приложений для .NET.
Первая версия полноценной среды разработки Delphi для .NET -- Delphi 8. Она позволяла писать приложения только для .NET.
В настоящее время, в Delphi 2006, можно писать приложения для .NET, используя стандартную библиотеку классов .NET, VCL для .NET. Среда также позволяет создавать .NET-приложения на C# и Win32-приложения на C++. Delphi 2006 содержит функции для написания обычных приложений с использованием библиотек VCL и CLX.
Delphi 2006 поддерживает технологию MDA с помощью ECO (Enterprise Core Objects) версии 3.0.
В марте 2006 года компания Borland приняла решение о прекращении дальнейшего совершенствования интегрированных сред разработки JBuilder, Delphi и C++ Builder по причине убыточности этого направления. Планировалась продажа IDE-сектора компании. Группа сторонников свободного программного обеспечения организовала сбор средств для покупки у Borland прав на среду разработки и компилятор.
Однако в ноябре того же года было принято решение отказаться от продажи 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.
25 августа 2008 года компания Embarcadero, новый хозяин CodeGear, опубликовала пресс-релиз на Delphi for Win32 2009. Версия принесла множество нововведений в язык, как-то:
· По умолчанию полная поддержка Юникода во всех частях языка, VCL и RTL; замена обращений ко всем функциям Windows API на юникодные аналоги (то есть MessageBox вызывает MessageBoxW, а не MessageBoxA).
· Обобщённые типы, они же generics.
· Анонимные методы.
· Новая директива компилятора $POINTERMATH [ON|OFF].
· Функция Exit теперь может принимать параметры в соответствии с типом функции.
1.2 Требования к программе
Данная программа предназначена для работы под управлением операционных систем Windows 98, Windows ME, Windows 2000, Windows XP, Windows 7.
Для корректной работы программного продукта потребуется персональный компьютер со следующими минимальными характеристиками:
· микропроцессор с тактовой частотой не менее 133 МГц;
· объем ОЗУ не менее 32 Мб;
· объем жёсткого диска не менее 1000 Мб;
· дисплей с глубиной цвета 32 бит;
2. Конструкторская часть
2.1 Описание задания
Совместно с научным руководителем была выбрана тема и само задание написания курсовой работы по данной дисциплине. Было предложено решить задачу написания всем известной логической игры «Крестики-нолики».
На данный момент существует огромное количество вариаций игры «Крестики-нолики». Но передо мной стояла задача создания увлекательного и неповторимого компьютерного приложения, которое могло бы развлечь и занять пользователя на долгое время. Сама задача создания приложения не представляет особого труда, так как проблема разработки хорошо изложена в различных источниках.
2.2 Описание игры и ее правил
«Крестики-нолики» -- логическая игра между двумя противниками на квадратном поле 3 на 3 клетки или большего размера (вплоть до «бесконечного поля»). Один из игроков играет «крестиками», второй -- «ноликами». В традиционной китайской игре используются черные и белые камни.
Игроки по очереди ставят на свободные клетки поля 3х3 знаки (один всегда крестики, другой всегда нолики). Первый, выстроивший в ряд 3 своих фигур по вертикали, горизонтали или диагонали, выигрывает. Первый ход делает игрок, ставящий крестики.
Обычно по завершении партии выигравшая сторона зачёркивает чертой свои три знака (нолика или крестика), составляющих сплошной ряд.
Классические «крестики-нолики» на поле 3x3 не представляют никакого практического интереса (разве что для маленьких детей, как начальный этап обучения логическим играм, или в качестве несложного задания по программированию для студенческой лабораторной или курсовой работы) -- общеизвестен алгоритм, который при правильной игре гарантирует ничью любой стороне, а при ошибке противника позволяет выиграть. Таким образом, игра находится в состоянии «ничейной смерти».
Учитывая то, что «крестики-нолики» логическая игра, существует немало комбинаций ходов, при которых победа Вам гарантирована. Поэтому игра становится неинтересной, когда один из игроков знает эти комбинации.
Также с течением времени игра была усовершенствована. В наше время существует много разновидностей классической игры «крестики-нолики» на полях 5 на 5, 10 на 10 и т.д.
2.3 Описание программы
Запуск программы осуществляется следующим образом: необходимо открыть папку, содержащую данную игру, и найти исполняемый файл
Tick-Tack-Toe.exe.
После запуска игры на экране появляется окно приложения с панелью главного меню в верхней части окна (рис. 1).
Рис.1.
Главное меню содержит три кнопки: «New Game»(новая игра), «About» (справка) и «Exit»(выход).
Для начала новой игры необходимо навести курсор мыши и кликнуть на кнопку «New Game» (рис. 2).
Рис. 2.
Для вывода краткой справки о приложении необходимо навести курсор мыши и кликнуть на кнопку «About» (рис. 3).
Рис. 3.
Для выхода из приложения необходимо навести курсор мыши и кликнуть на кнопку «Exit».
2.4 Техническое описание программы
В основу данного компьютерного приложения лег компонент Image из компонентной вкладки Additional.
Использование данного компонента обусловлено его простотой и функциональностью. Одним из плюсов данного компонента является возможность использовать изображения различных расширений(*.bmp, *.jpg, *.png). Помимо этого с помощью Image проще расположить в окне приложения несколько изображений и управлять ими. Большое количество свойств, таких как Picture, Transparent, Enable, Disable, Show, Hide и т.д. обусловили мой выбор. Именно в этом компоненте в полной мере проявляются преимущества визуального программирования.
Вся программа построена на обработке события OnClick компонентов Image. Всего в программе было использовано 17 компонентов Image, в каждом из которых хранится то или иное изображение, для корректной визуализации программного продукта.
Для работы с изображениями было выбрано свойство Picture. Непосредственно в этом свойстве использовалась процедура LoadFromFile. При помощи этой процедуры в каждый компонент Image можно подгрузить любое изображение, сохранённое ранее в файле.
Также в данном программном продукте были реализованы четыре специальные процедуры: PlayerCheck, Initialize, CompPlay, Check.
Процедура PlayerCheck начинает свою работу после нажатия на кнопку «New Game» пользователем (Рис. 2). В этой процедуре предусмотрена проверка, кто именно начинает играть: пользователь(PlayerX) или компьютер(CompO). Это сделано для того, чтобы программа могла распознать в дальнейшем кто начал игру и кто делает следующий ход. Эта процедура очень тесно связана с процедурами событий OnClick Image 16 и 17, так как именно в двух последних процедурах и записываются начальные значения true или false переменных PlayerX и CompO. Всё эти действия произведены с целью определить, кто будет делать ход первым: пользователь или компьютер.
Процедура Initialize начинает свою работу сразу после завершения процедуры PlayerCheck. В данной процедуре реализовано зануление массива(Place), в котором хранятся данные о нахождении элементов крестик и нолик на игровом поле. А также освобождение компонентов Image от использованных изображений и зануление счётчика ходов(Clicks) игроков.
Процедура CompPlay -- это своего рода искусственный интеллект в данном программном продукте. В этой процедуре был реализован случайный ход компьютера. Она выполняется 4 или 5 раз, в зависимости от того, кто начал партию (пользователь или компьютер). В процедуре реализован проход по массиву(Place) и занесение случайным образом в пустые места поля знака нолик. Также в процедуре происходит увеличения счётчика количества ходов (Clicks) и перезапись переменных PlayerX и CompO на значения true либо false. Это сделано для того, чтобы в дальнейшем определить, кто будет делать следующим.
Процедура Check начинает свою работу только после пятого хода игроков, т.к. в соответствии с правилами игры нужно заполнить линию по горизонтали вертикали или диагонали либо крестиками, либо ноликами, и до пятого хода это невозможно. В данной процедуре реализована проверка значений массива нахождения элементов крестик и нолик, для определения победителя партии. Данная процедура проверяет все возможные комбинаций выигрышных расположений, и если такие имеются, то она определяет, кто из игроков одержал победу (рис. 4)
Рис. 4.
В компьютерном приложении Tick-Tack-Toe ver 1.0 реализовано девять обработчиков событий OnClick компонентов Image, которые служат для занесения на поле либо крестика, либо нолика. Каждая из этих процедур определяет, кто именно на данный момент должен сделать ход, пользователь или компьютер. Увеличивает на единицу переменную, отвечающую за количество ходов (Clicks) игроков на поле, а также перезаписывает значения переменных PlayerX и CompO, отвечающих за игрока, который делал ход в данный момент.
Итак, теперь можно кратко описать последовательность действий, выполняемых данным программным продуктом. После запуска игры мы нажимаем на кнопку «New Game», после чего начинает свою работу процедура PlayerCheck. После того, как были внесены данные о начинающем партию игроке, начинает свою работу процедура Initialize. Как только последняя процедура очистила игровое поле приложения, начинает свою работу процедура CompPlay или одна из процедур обработчиков событий OnClick Image 1-9, что зависит от выбранных ранее данных о начинающем игроке. После того, как один из игроков сделает пятый ход, процедура Check после каждого последующего хода начинает проверять на наличие победителя партии. Как только таковой обнаруживается, выводится соответствующее сообщение на экран.
Более подробно с вышеперечисленными процедурами можно познакомиться в листинге 1.
Интерфейс программы полностью был создан при помощи мощной программы Adobe Photoshop 10 CS 4.0. Именно поэтому визуально программный продукт выглядит привлекательно и неброско.
Комплект программы содержит 2 модуля. Один модуль является главным, в нем содержится алгоритм работы игрового приложения. Собственно, главным модулем является модуль xo_u.pas. Так как стандартный компонент Image не поддерживает файлы изображения с расширением *.png, было необходимо добавления в программу модуля pngimage.pas. Второй модуль предназначен для корректной работы программного продукта с изображениями расширения *.png. Добавление этого модуля обусловлено тем, что изображениями с расширением *.png можно значительно украсить игровое приложение. Как раз именно это и являлось одной из главных задач по созданию данного программного продукта.
Полный текст главного модуля представлен в листинге 1.
Заключение
Игровое приложение предназначено для людей любого возраста. Игра не требует особых умственных способностей, определенного умственного развития, программа очень легка в использовании, и ее сможет освоить даже самый маленький пользователей. Чтобы запустить и использовать приложение не требуется наличие особых навыков пользования персональным компьютером. Программа поможет скоротать время в перерыве между работой, а также её можно использовать как полноценную компьютерную игру для развлечения с Вашими друзьями и коллегами.
Игра «Крестики-нолики» может быть установлена в учебных компьютерных классах различного рода и поможет неопытным пользователям овладеть навыками работы с персональным компьютером.
Несмотря на внешнюю простоту, программа представляет собой сложную систему взаимодействующих друг с другом функций. Потребовалось немало сил и времени на ее написание. Кроме того, потребовалось привлечение большого объема дополнительной информации.
В процессе выполнения курсовой работы были изучены новые возможности языка высшего уровня Borland Delphi. В процессе создания приложения был реализован алгоритм, который в дальнейшем возможно усовершенствовать. Все поставленные задачи были выполнены и разработка популярной игры «Крестики-нолики» прошла успешно.
Список используемой литературы
1. Фаронов В.В. Delphi 6. Учебный курс. Издательство Молгачев С.В., 2001. - 672с.
2. Программирование в среде Delphi: Лабораторный практикум для студентов всех специальностей. Под общей редакцией Синицына А.К. - Мн.; БГУИР, 1998. - 94 с.
3. Програмирование в среде Delphi. Учебное пособие. Колосов С.В. - Мн.: БГУИР, 2005. - 166 с.
Листинг 1. Текст программы
unit xo_u;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ExtCtrls, ActnList, mmsystem, Pngimage, StdCtrls, Buttons;
type
TForm1 = class(TForm)
Image1: TImage;
Image2: TImage;
Image3: TImage;
Image4: TImage;
Image5: TImage;
Image6: TImage;
Image7: TImage;
Image8: TImage;
Image9: TImage;
Image10: TImage;
Image11: TImage;
Image12: TImage;
Image13: TImage;
Image14: TImage;
Image15: TImage;
Image16: TImage;
Image17: TImage;
procedure FormCreate(Sender: TObject);
procedure Image1Click(Sender: TObject);
procedure Image2Click(Sender: TObject);
procedure Image3Click(Sender: TObject);
procedure Image4Click(Sender: TObject);
procedure Image5Click(Sender: TObject);
procedure Image6Click(Sender: TObject);
procedure Image7Click(Sender: TObject);
procedure Image8Click(Sender: TObject);
procedure Image9Click(Sender: TObject);
procedure Image12Click(Sender: TObject);
procedure Image13Click(Sender: TObject);
procedure Image14Click(Sender: TObject);
procedure Image16Click(Sender: TObject);
procedure Image17Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Place: array[1 ..9] of integer; //массив значений 1-крестик 2-нолик 0-пустота
i, Clicks:integer;
PlayerX, CompO, Start, mark: boolean;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
form1.Image10.Width:=486;
form1.Image10.Height:=512;
Form1.Image10.Picture.LoadFromFile('done/base.bmp');
Form1.Image11.Picture.LoadFromFile('done/dockbar.png');
Form1.Image12.Picture.LoadFromFile('done/NewGameButton.png');
Form1.Image13.Picture.LoadFromFile('done/AboutButton.png');
Form1.Image14.Picture.LoadFromFile('done/ExitButton.png');
Form1.Image15.SendToBack;
PlayerX:=false;
CompO:=false;
end;
Procedure Initialize; //процедура инициализации
begin
for i:=1 to 9 do //зануление значений массива
Place[i]:=0;
Form1.Image1.Enabled:=true; //включение возможности нажатия на Image
Form1.Image2.Enabled:=true;
Form1.Image3.Enabled:=true;
Form1.Image4.Enabled:=true;
Form1.Image5.Enabled:=true;
Form1.Image6.Enabled:=true;
Form1.Image7.Enabled:=true;
Form1.Image8.Enabled:=true;
Form1.Image9.Enabled:=true;
Form1.Image1.Picture:=nil; //очищение Image от использованных изображений
Form1.Image2.Picture:=nil;
Form1.Image3.Picture:=nil;
Form1.Image4.Picture:=nil;
Form1.Image5.Picture:=nil;
Form1.Image6.Picture:=nil;
Form1.Image7.Picture:=nil;
Form1.Image8.Picture:=nil;
Form1.Image9.Picture:=nil;
Form1.Image15.Picture:=nil;
Form1.Image15.SendToBack;
Form1.Image16.SendToBack;
Form1.Image17.SendToBack;
Clicks:=0;
Start:=true;
end;
procedure CompPlay; //процедура игры компьютера
begin
mark:=true;
if (start=true)and(Clicks<>9 )then
begin
while mark=true do
begin
i:=random(9)+1;
if place[i]=0 then begin
place[i]:=2;
mark:=false;
Inc(Clicks);
CompO:=false;
PlayerX:=true;
if i=1 then begin
Form1.Image1.Picture.LoadFromFile('done/o100.png');
Form1.Image1.Enabled:=false;
end;
if i=2 then begin
Form1.Image2.Picture.LoadFromFile('done/o100.png');
Form1.Image2.Enabled:=false;
end;
if i=3 then begin
Form1.Image3.Picture.LoadFromFile('done/o100.png');
Form1.Image3.Enabled:=false;
end;
if i=4 then begin
Form1.Image4.Picture.LoadFromFile('done/o100.png');
Form1.Image4.Enabled:=false;
end;
if i=5 then begin
Form1.Image5.Picture.LoadFromFile('done/o100.png');
Form1.Image5.Enabled:=false;
end;
if i=6 then begin
Form1.Image6.Picture.LoadFromFile('done/o100.png');
Form1.Image6.Enabled:=false;
end;
if i=7 then begin
Form1.Image7.Picture.LoadFromFile('done/o100.png');
Form1.Image7.Enabled:=false;
end;
if i=8 then begin
Form1.Image8.Picture.LoadFromFile('done/o100.png');
Form1.Image8.Enabled:=false;
end;
if i=9 then begin
Form1.Image9.Picture.LoadFromFile('done/o100.png');
Form1.Image9.Enabled:=false;
end;
end;
end;
end;
end;
procedure PlayerCheck; //процедура проверки(играет пользователь или
begin компьютер)
Form1.Image15.BringToFront;
Form1.Image15.Picture.LoadFromFile('done/ChooseTeam.png');
Form1.Image16.BringToFront;
Form1.Image16.Picture.LoadFromFile('done/x75.png');
Form1.Image17.BringToFront;
Form1.Image17.Picture.LoadFromFile('done/o75.png');
end;
procedure Check; //процедура проверки на наличие победителя
label winner;
begin
if (place[1]=place[2]) and (place[2]=place[3]) and (Place[1]<>0) then
goto winner
else if (place[4]=Place[5]) and (place[5]=place[6]) and (place[4]>0) then
goto winner
else if (place[7]=Place[8]) and (place[8]=place[9]) and (place[7]>0) then
goto winner
else if (place[1]=place[4]) and (place[4]=place[7]) and (place[1]>0) then
goto winner
else if (place[2]=Place[5]) and (place[5]=place[8]) and (place[2]>0) then
goto winner
else if (place[3]=Place[6]) and (place[6]=place[9]) and (place[3]>0) then
goto winner
else if (place[1]=place[5]) and (place[5]=place[9]) and (place[1]>0) then
goto winner
else if (place[3]=place[5]) and (place[5]=place[7]) and (place[3]>0) then
goto winner;
if Clicks=9 then begin
Form1.Image15.BringToFront;
Form1.Image15.Picture.LoadFromFile('done/NobodyWin100.png');
Start:=False;
end;
exit;
winner:
if CompO=true then begin
Form1.Image15.BringToFront;
Form1.Image15.Picture.LoadFromFile('done/FinalBlue100.png');
Start:=False;
end
else begin
Form1.Image15.BringToFront;
Form1.Image15.Picture.LoadFromFile('done/FinalRed100.png');
Start:=False;
end;
end;
procedure TForm1.Image12Click(Sender: TObject); //процедура начала игры
begin
Start:=false;
PlayerCheck;
end;
procedure TForm1.Image16Click(Sender: TObject);
begin
PlayerX:=true;
CompO:=false;
if PlayerX=true then Initialize;
end;
procedure TForm1.Image17Click(Sender: TObject);
begin
PlayerX:=false;
CompO:=true;
If CompO=true then Initialize;
CompPlay;
end;
procedure TForm1.Image13Click(Sender: TObject);//процедура вывода
begin информации о программе
Form1.Image15.BringToFront;
Form1.Image15.Picture.LoadFromFile('done/Info.png');
end;
procedure TForm1.Image14Click(Sender: TObject); //процедура выхода из игры
begin
Form1.Close;
end;
procedure TForm1.Image1Click(Sender: TObject);
begin
if Start=true then begin
if PlayerX=true then begin
place[1]:=1;
inc(Clicks);
Image1.Picture.LoadFromFile('done/x100.png');
Form1.Image1.Enabled:=False;
if Clicks>=5 then check;
PlayerX:=false;
CompO:=true;
CompPlay;
if Clicks>=5 then check
end;
end;
end;
procedure TForm1.Image2Click(Sender: TObject);
begin
if Start=true then begin
if PlayerX=true then begin
place[2]:=1;
inc(Clicks);
Image2.Picture.LoadFromFile('done/x100.png');
Form1.Image2.Enabled:=False;
if Clicks>=5 then check;
PlayerX:=false;
CompO:=true;
CompPlay;
if Clicks>=5 then check
end;
end;
end;
procedure TForm1.Image3Click(Sender: TObject);
begin
if Start=true then begin
if PlayerX=true then begin
place[3]:=1;
inc(Clicks);
Image3.Picture.LoadFromFile('done/x100.png');
Form1.Image3.Enabled:=False;
if Clicks>=5 then check;
PlayerX:=false;
CompO:=true;
CompPlay;
if Clicks>=5 then check
end;
end;
end;
procedure TForm1.Image4Click(Sender: TObject);
begin
if Start=true then begin
if PlayerX=true then begin
place[4]:=1;
inc(Clicks);
Image4.Picture.LoadFromFile('done/x100.png');
Form1.Image4.Enabled:=False;
if Clicks>=5 then check;
PlayerX:=false;
CompO:=true;
CompPlay;
if Clicks>=5 then check
end;
end;
end;
procedure TForm1.Image5Click(Sender: TObject);
begin
if Start=true then begin
if PlayerX=true then begin
place[5]:=1;
inc(Clicks);
Image5.Picture.LoadFromFile('done/x100.png');
Form1.Image5.Enabled:=False;
if Clicks>=5 then check;
PlayerX:=false;
CompO:=true;
CompPlay;
if Clicks>=5 then check
end;
end;
end;
procedure TForm1.Image6Click(Sender: TObject);
begin
if Start=true then begin
if PlayerX=true then begin
place[6]:=1;
inc(Clicks);
Image6.Picture.LoadFromFile('done/x100.png');
Form1.Image6.Enabled:=False;
if Clicks>=5 then check;
PlayerX:=false;
CompO:=true;
CompPlay;
if Clicks>=5 then check
end;
end;
end;
procedure TForm1.Image7Click(Sender: TObject);
begin
if Start=true then begin
if PlayerX=true then begin
place[7]:=1;
inc(Clicks);
Image7.Picture.LoadFromFile('done/x100.png');
Form1.Image7.Enabled:=False;
if Clicks>=5 then check;
PlayerX:=false;
CompO:=true;
CompPlay;
if Clicks>=5 then check
end;
end;
end;
procedure TForm1.Image8Click(Sender: TObject);
begin
if Start=true then begin
if PlayerX=true then begin
place[8]:=1;
inc(Clicks);
Image8.Picture.LoadFromFile('done/x100.png');
Form1.Image8.Enabled:=False;
if Clicks>=5 then check;
PlayerX:=false;
CompO:=true;
CompPlay;
if Clicks>=5 then check
end;
end;
end;
procedure TForm1.Image9Click(Sender: TObject);
begin
if Start=true then begin
if PlayerX=true then begin
place[9]:=1;
inc(Clicks);
Image9.Picture.LoadFromFile('done/x100.png');
Form1.Image9.Enabled:=False;
if Clicks>=5 then check;
PlayerX:=false;
CompO:=true;
CompPlay;
if Clicks>=5 then check
end;
end;
end;
end.
Размещено на Allbest.ru
...Подобные документы
Общая характеристика языков программирования. Краткий обзор C, C++, Java, PHP, Python, Delphi и Visual Basic. Процесс разработки программы игра "Крестики и нолики" с помощью AppWizard. Компиляция и компоновка модулей, определение интерфейса приложения.
курсовая работа [2,5 M], добавлен 27.05.2014Проект программы "Крестики-нолики". Блок-схема алгоритма. Описание работы программного продукта. Инструкция по инсталляции. Инструкция программисту, возможность доработки с целью упрощения исполняемых кодов. Инструкция по проверке и тестированию.
курсовая работа [235,8 K], добавлен 05.12.2009Разработка консольного приложения: описание и сценарий использования программы, интерфейс пользователя. Поэтапное описание создание кода компьютерной игры "Крестики нолики". Функциональные и нефункциональные требования, описание исключительных ситуаций.
методичка [819,6 K], добавлен 12.05.2013Разработка популярной развлекательной игры крестики-нолики. Возможность играть с компьютером, который играет согласно созданному алгоритму. Новые возможности Visual Studio. Легкое усвоение программы. Удобный интерфейс - "визитная карточка" приложения.
курсовая работа [74,6 K], добавлен 20.12.2009Знакомство с интерфейсом пользователя и сценарием использования программы игры в крестики и нолики. Функциональные и нефункциональные требования для персонального компьютера. Исключительные ситуации и реакция программы. Пример кода игры и комментарии.
курсовая работа [236,5 K], добавлен 27.01.2014Разработка программы логической игры в "крестики-нолики" пять в ряд на поле размера 15х15 клеток с применением графики на языке Pascal с использованием объектно-ориентированного программирования. Структура алгоритма программы и описание ее работы.
курсовая работа [821,5 K], добавлен 13.02.2012Разработка аналога игры "Крестики-нолики", где игроки выбирают размер поля. Правила игры. Интерфейс программы. Главная функция main. Класс XO. Метод вывода поля и хода игроков. Методы поиска крестиков, ноликов. Методы проверки выигрышных ситуаций игроков.
курсовая работа [281,5 K], добавлен 30.01.2018Разработка алгоритма, выполняющего поиск наилучшего решения на каждый ход в игре "крестики-нолики" (используя минимальный алгоритм). Обоснование выбора программных средств для решения задачи. Блок-схема интеллектуального алгоритма реализации программы.
контрольная работа [380,0 K], добавлен 28.04.2014Программный продукт для игры "Крестики-нолики". Описание пользовательского интерфейса. Факт базы данных, определяющий состояние счёта. Предикат изменяющий состояние игрового процесса и подсчитывающий количество занятых ячеек поля. Исходный код программы.
курсовая работа [34,6 K], добавлен 19.05.2014Анализ предметной области разрабатываемого программного продукта. Разработка интерфейса пользователя и структурной схемы игровой программы "Крестики-нолики". Отладка и тестирование. Проведение исследования компонентов программной среды Borland Delphi 6.0.
курсовая работа [660,4 K], добавлен 08.03.2015Разработка программы игры в крестики-нолики. Примеры игровой ситуации на игровом поле. Описание входных и выходных данных, переменных и функций программы. Реализация алгоритма работы программы на языке C++. Текст программы и примеры ее выполнения.
курсовая работа [352,8 K], добавлен 14.04.2011Технические и пользовательские характеристики игры, требования к программному обеспечению и среде разработки C#. Составление блок-схемы алгоритма, uml-диаграммы и текста программы, тестирование корректности компьютерного кода и результатов его работы.
курсовая работа [1,8 M], добавлен 05.03.2013Характеристика системы программирования. Главные составные части Delphi. Интерфейс программного приложения. Результаты работы программы. Руководство системного программиста и оператора. Язык программирования Delphi, среда компилятора Borland 7.0.
курсовая работа [1,6 M], добавлен 29.05.2013Средства выделения и освобождения памяти. Динамические структуры данных. Связные линейные списки и их машинное представление. Структура одно- и двухсвязного списка. Реализация операций над связными линейными списками. Разработка программы на языке С++.
курсовая работа [944,7 K], добавлен 14.03.2015Составление программы искусственного интеллекта в среде программирования Delphi 7, осуществляющую игру "крестики-нолики" с пользователем. Данная программа имеет возможность запоминания ходов и на основе них ходить так, чтобы не оказаться в проигрыше.
контрольная работа [787,7 K], добавлен 16.01.2011Delphi - среда быстрой разработки, в которой в качестве языка программирования используется типизированный объектно-ориентированный язык Delphi. Варианты программного пакета. Особенности работы, вид экрана после запуска. Описание структуры программы.
курсовая работа [1,3 M], добавлен 25.11.2014Возможности среды программирования delphi при разработке приложения с визуальным интерфейсом. Разработка спецификации программного обеспечения и на ее основе кода программного продукта. Отладка программы "трассировкой", ее тестирование и оптимизация.
курсовая работа [501,4 K], добавлен 07.12.2016Архитектура и тестирование программного комплекса. Описание реализованного протокола данных. Обработка входящих подключений. Работа пользовательского потока и потока отправки. Выбор языка программирования. Структура серверного и клиентского приложений.
курсовая работа [999,1 K], добавлен 20.12.2012Общие сведения и существующие среды реализации компьютерной игры "Лабиринт". Разработка алгоритмов в виде блок-схемы, принципы программной реализации игры. Особенности тестирования разработанного программного продукта. Аспекты эксплуатации продукта.
курсовая работа [1,4 M], добавлен 18.01.2017Эффективные средства разработки программного обеспечения. Технология визуального проектирования и событийного программирования. Конструирование диалоговых окон и функций обработки событий. Словесный алгоритм и процедуры программы Borland Delphi 7 Studio.
дипломная работа [660,2 K], добавлен 21.05.2012