Разработка приложения "Крестики-нолики" в среде разработки Lazarus
Основные возможности среды разработки программного обеспечения Lazarus. Способ создания программы путем манипулирования графическими объектами вместо написания текста (визуальное программирование). Требования к разработке приложения "Крестики-нолики".
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 21.06.2015 |
Размер файла | 499,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Государственное бюджетное образовательное учреждение
среднего профессионального образования (ССУЗ)
"Челябинский колледж информационно-промышленных технологий и художественных промыслов"
ПЦК "Информационных технологий"
КОНТРОЛЬНАЯ РАБОТА
по междисциплинарному курсу:
Прикладное программирование
Тема: Разработка приложения "Крестики-нолики" в среде разработки Lazarus
Выполнил: студент группы 320
Гребенюк Павел Сергеевич
Проверил: Исакова Виктория Викторовна
Челябинск 2014г.
Оглавление
- Введение
- Визуальное программирование
- Графический Интерфейс
- Программирование основных конструкций языка
- Описание
- Примеры работы программы
- Заключение
- Список использованной литературы и источников
Введение
Lazarus - бесплатная среда разработки программного обеспечения с открытым исходным кодом для компилятора FreePascal (часто используется сокращение FPC - свободно распространяемый компилятор языка программирования Pascal) на языке ObjectPascal. Интегрированная среда разработки предоставляет возможность кроссплатформенной разработки приложений в Delphi-подобном окружении. На данный момент является единственным инструментом быстрой разработки приложений (RAD), позволяющим Delphi-программистам создавать приложения с графическим интерфейсом для Linux (и других не-Windows) систем.
Lazarus содержит в себе редактор кода, визуальный проектировщик форм, а также библиотеку компонентов, которая очень хорошо совместима с Библиотекой Визуальных Компонентов Delphi (VCL). Библиотека Визуальных Компонентов Lazarus (LCL) включает эквиваленты для большинства контролов из VCL (формы, кнопки, текстовые поля и т.д.), которые используются для создания приложений с графическим интерфейсом. С помощью технологии визуального программирования, реализованную в Lazarus, можно строить интерфейс будущих программ из специальных компонентов, реализующих различные свойства. Количество таких компонентов достаточно велико. Каждый из них содержит готовый программный код и все необходимые для работы данные, что избавляет программиста от создания того, что уже создано ранее. Выглядеть такая программа будет как набор процедур, не имеющих тела.
Основные возможности Lazarus:
· Возможность легкого переноса Delphi-програм с графическим интерфейсом в различные ОС: Linux, FreeBSD, Mac OS X, Microsoft Windows.
· Редактор форм и инспектор объектов максимально приближены к Delphi.
· Интерфейс отладки (используется внешний отладчик GDB).
· Простой переход для Delphi программистов благодаря близости LCL к VCL
· Полностью юникодный (UTF-8) интерфейс и редактор.
· Мощный редактор кода, включающий систему подсказок, гипертекстовую навигацию по исходным текстам, автозавершение кода и рефакторинг.
· Форматирование кода "из коробки", используя механизмы JediCodeFormat.
· Поддержка двух стилей ассемблера: Intel и AT&T.
· Поддержка множества типов синтаксиса Pascal: Object Pascal, Turbo Pascal, Mac Pascal, Delphi.
· Собственный формат управления пакетами.
приложение программирование визуальное lazarus
Визуальное программирование
Способ создания программы для ЭВМ путём манипулирования графическими объектами вместо написания её текста. Визуальное программирование часто представляют как следующий этап развития текстовых языков программирования. Наглядным примером может служить утилита Визуальный Pascal, где редактируются графические объекты и одновременно отображается соответствующий текст программы. В последнее время визуальному программированию стали уделять больше внимания - в связи с развитием мобильных сенсорных устройств (КПК, планшеты), когда использование клавиатуры не очень удобно.
Языки визуального программирования могут быть дополнительно классифицированы в зависимости от типа и степени визуального выражения, на следующие типы:
языки на основе объектов, когда визуальная среда программирования предоставляет графические или символьные элементы, которыми можно манипулировать интерактивным образом в соответствии с некоторыми правилами;
языки, в интегрированной среде разработки которых на этапе проектирования интерфейса применяются формы, с возможностью настройкой их свойств. Примеры: Delphi и C++ Builder фирмы Borland, С#
языки схем, основанные на идее "фигур и линий", где фигуры (прямоугольники, овалы и т.п.) рассматриваются как субъекты и соединяются линиями (стрелками, дугами и др.), которые представляют собой отношения. Пример: UML.
События:
OnCreate - событие возникает при создании окна и только один раз.
OnShow - это событие генерируется непосредственно перед тем, когда окно станет видимым.
OnActivate - это событие генерируется, когда окно становится активным, то есть когда получает фокус ввода.
OnPaint - это событие возникает каждый раз при перерисовке окна.
OnReSize - это событие возникает каждый раз при изменении размеров окна.
OnClose - событие возникает при закрытии окна.
OnKeyDown - событие наступает при нажатии любой клавиши.
OnKeyPress - событие наступает при нажатии клавиши символа.
OnKeyUp - событие возникает при отпускании любой клавиши.
Графический Интерфейс
Графический интерфейс пользователя, иначе GUI (GraphicsUserInterface)
является обязательным компонентом большинства современных программных продуктов, ориентированных на работу конечного пользователя. Появление графического интерфейса - одно из важнейших достижений в области разработки программного обеспечения последних лет. В дальнейшем мы будем использовать как термин "графический интерфейс пользователя", так и термин"приложение с GUI" или "GUI-приложение"
Программирование основных конструкций языка
Lazarus.
Линейная программа
Простейшей алгоритмической структурой является линейная последовательность операций, которые выполняются по очереди и именно в том порядке, в котором они записаны. Линейные алгоритмы и линейные программы обычно предназначены для решения относительно простых задач, в которых не предусмотрен выбор из нескольких возможных альтернатив или циклических повторений каких-либо операций.
Ветвления
В lazaruse имеются две реализации одной из основных алгоритмических структур - ветвления. Это условный оператор и оператор выбора. Условный оператор имеет вид:
Ifa>bthenWriteln (`значение а больше');
Полная версия условного оператора имеет вид:
Ifa > b thenwriteln (`значение а больше')
elsewriteln (`значение b больше');
Циклы
Одной из важнейших алгоритмических структур является цикл. Цикл представляет собой последовательность операторов, которая выполняется неоднократно. В программах, связанных с обработкой данных или вычислениями, часто приходиться выполнять циклические повторяющиеся действия.
В языке программирования Lazarus имеется три разновидности цикла - цикл со счетчиком, цикл с предусловием и цикл с постусловием.
Операторы цикла:
Оператор While
Оператор Repeat
Оператор For
Оператор While:
При использовании оператора while условие повторения цикла запрашивается в начале цикла:
while выражение do оператор
Выражение после while должно быть логическим выражением. Оператор после do выполняется, если логическое выражение имеет значение true. Если после do, т.е. в цикле, должны быть выполнены несколько операторов, их следует поместить в операторные скобки begin и end. Если логическое выражение в начале имеет значение false, цикл вообще не выполняется.
Оператор Repeat:
repeatоператор until выражение
Выражение после repeat должно быть логическим выражением. Выражение после repeat выполняются до тех пор, пока логическое выражение после until не примет значение true. Итак, построенный с помощью оператора repeat цикл выполняется по крайней мере один раз.
Оператор For:
forпеременная: = выражение to выражение do оператор
Переменная цикла и оба выражения должны иметь одинаковый тип, который должен быть порядковым. Первое выражение является начальным значением, второе - конечным. При выполнении to начальное значение увеличивается каждый раз, пока не достигнет конечного значения.
Простые типы данных
Все переменные, используемые в программе, должны быть перечислены в разделе описания переменных.
var a, b: integer;
c: real;
Lazarus - это гибкий язык, в котором имеется большое число различных типов. Все имеющиеся в lazaruse типы принято делить на группы. Типы, принадлежащие одной группе, имеют сходство. Прежде всего, выделяют простые и структурные типы. Простые типы, в свою очередь, подразделяют на порядковые и вещественные типы.
Требования к приложению:
OC: Windows 2000/XP/Vista/7/8; Процессор: 2Ghz; Оперативная память: 128Мб (минимум);
Видеокарта 128мб; Место на жёстком диске: 50мб; Клавиатура, мышь.
Описание
Программа является популярной развлекательной игры крестики - нолики используя технологию визуального программирования в среде программирования Lazarus. Игра происходит простыми щелчками мыши по игровому полю, после чего выбранное поле помечается крестиком или ноликом в зависимости от того чей ход.
Описание переменных:
t: byte;
A: array [1.3,1.3] ofbyte;
Структура программы:
Procedure<имя процедуры> (формальные параметры); - вызываемая процедура.
Var
<список переменных и их типов через точку с запятой >; - объявление переменных.
if - then - else
ЕСЛИ условие ТО оператор1 В ДРУГОМ СЛУЧАЕ (ещё) оператор2
Label. Caption [= cText]
Задает текст, отображаемый в названии объекта.
Код программы:
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class (TForm)
B11: TButton;
B21: TButton;
B31: TButton;
B12: TButton;
B22: TButton;
B32: TButton;
B13: TButton;
B23: TButton;
B33: TButton;
Button1: TButton;
Label1: TLabel;
procedure B11Click (Sender: TObject);
procedure Button1Click (Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
function Run1 (z: byte): boolean;
var
Form1: TForm1;
t: byte; // Сюда будем писать номер хода
A: array [1.3,1.3] of byte;
implementation
{$R *. lfm}
{ TForm1 }
procedure TForm1. B11Click (Sender: TObject);
begin
ifTButton (Sender). Caption<>'' thenexit; // Тут уже имеется крестик/нолик выходим из процедуры
inc (t);
label1. Caption: ='Ход'+IntToStr (t+1);
if (t mod 2) <>0 then TButton (Sender). Caption: ='X' // Метим кнопку отправитель события клика
elseTButton (Sender). Caption: ='O';
A [StrToInt (Copy (TButton (Sender). Name,2,1)),StrToInt (Copy (TButton (Sender). Name,3,1))]: = ( (t-1) mod 2) +1; // Записываем в массив 1 если X и 2 еслиО
ift>=5 then
begin // Начинаем проверку на линию с 5 хода
if Run1 ( ( (t-1) mod2) +1) thenbegin // Проверяем есть ли в массиве полная линия элементов содержащих ( (t-1) mod 2) +1
B11. Enabled: =false; B21. Enabled: =false; B31. Enabled: =false; // Если есть то делаем все кнопки неактивными
B12. Enabled: =false; B22. Enabled: =false; B32. Enabled: =false;
B13. Enabled: =false; B23. Enabled: =false; B33. Enabled: =false;
if (t mod 2) <>0 then Label1. Caption: ='Выиграли X'
else Label1. Caption: ='Выиграли O';
Button1. Enabled: =true;
exit;
end;
end;
if t=9 then begin
B11. Enabled: =false; B21. Enabled: =false; B31. Enabled: =false;
B12. Enabled: =false; B22. Enabled: =false; B32. Enabled: =false;
B13. Enabled: =false; B23. Enabled: =false; B33. Enabled: =false;
Label1. Caption: ='Ничья';
Button1. Enabled: =true;
end;
end;
procedure TForm1. Button1Click (Sender: TObject); // Возвращаем всё на исходную
var
i,j: byte;
begin
B11. Enabled: =true; B21. Enabled: =true; B31. Enabled: =true;
B12. Enabled: =true; B22. Enabled: =true; B32. Enabled: =true;
B13. Enabled: =true; B23. Enabled: =true; B33. Enabled: =true;
B11. Caption: =''; B21. Caption: =''; B31. Caption: ='';
B12. Caption: =''; B22. Caption: =''; B32. Caption: ='';
B13. Caption: =''; B23. Caption: =''; B33. Caption: ='';
for i: =1 to 3 do // Обнуляем массив
for j: =1 to 3 do A [i,j]: =0;
Button1. Enabled: =false;
Label1. Caption: ='Ход 1';
t: =0; // Обнуляем ход
end;
function Run1 (z: byte): boolean; // Проверяем наличие линий с одинаковым z
begin
result: =false;
if ( (A [1,1] =z) and (A [2,2] =z) and (A [3,3] =z)) or ( (A [3,1] =z) and (A [2,2] =z) and (A [1,3] =z)) then begin result: =true; exit; end; // Диагональ
if ( (A [1,1] =z) and (A [2,1] =z) and (A [3,1] =z)) then begin result: =true; exit; end; // Горизонталь
if ( (A [1,2] =z) and (A [2,2] =z) and (A [3,2] =z)) then begin result: =true; exit; end;
if ( (A [1,3] =z) and (A [2,3] =z) and (A [3,3] =z)) then begin result: =true; exit; end;
if ( (A [1,1] =z) and (A [1,2] =z) and (A [1,3] =z)) then begin result: =true; exit; end; // Вертикаль
if ( (A [2,1] =z) and (A [2,2] =z) and (A [2,3] =z)) then begin result: =true; exit; end;
if ( (A [3,1] =z) and (A [3,2] =z) and (A [3,3] =z)) then begin result: =true; exit; end;
end;
end.
Примеры работы программы
Заключение
В данной курсовой работе была выполнена поставленная задача - создание программы "Крестики - Нолики".
При помощи этой программы можно приятно провести время, развивать логическое и интуитивное мышление. Программа не занимает много места, не требовательна к установленному программному обеспечению.
Моя программа не затруднена в использовании, так как она имеет простой интерфейс.
Программа реализовывалась полностью с соответствием технического задания.
В процессе выполнения работ были закреплены навыки работы в среде Lazarus и получен опыт разработки программного продукта и документации к нему.
Список использованной литературы и источников
1. Алексеев Е.Р., Чеснокова О.В., Кучер Т.В. - "Самоучитель по программирования на FreePascal и Lazarus"
2. Web-приложение "Визуализация задач курса "Компьютерные науки" в среде Lazarus" Автор: Полушкина А.Н.
Размещено на Allbest.ru
Подобные документы
Разработка популярной развлекательной игры крестики-нолики. Возможность играть с компьютером, который играет согласно созданному алгоритму. Новые возможности Visual Studio. Легкое усвоение программы. Удобный интерфейс - "визитная карточка" приложения.
курсовая работа [74,6 K], добавлен 20.12.2009Общая характеристика языков программирования. Краткий обзор 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Знакомство с интерфейсом пользователя и сценарием использования программы игры в крестики и нолики. Функциональные и нефункциональные требования для персонального компьютера. Исключительные ситуации и реакция программы. Пример кода игры и комментарии.
курсовая работа [236,5 K], добавлен 27.01.2014Разработка алгоритма, выполняющего поиск наилучшего решения на каждый ход в игре "крестики-нолики" (используя минимальный алгоритм). Обоснование выбора программных средств для решения задачи. Блок-схема интеллектуального алгоритма реализации программы.
контрольная работа [380,0 K], добавлен 28.04.2014Бесплатная среда разработки программного обеспечения с открытым исходным кодом для компилятора Free Pascal. Почему Lazarus такой популярный. Корректность введенных данных. Использование основных методов визуализации в среде программирования Lazarus.
курсовая работа [695,5 K], добавлен 19.04.2013Интегрированная среда разработки Lazarus. Среда программных продуктов Lazarus, объекты программных компонентов. Палитра компонентов Standard, Additional. Разработка справочной системы: структура проекта, интерфейс программы, компоненты приложения.
курсовая работа [695,2 K], добавлен 08.01.2023Разработка программы логической игры в "крестики-нолики" пять в ряд на поле размера 15х15 клеток с применением графики на языке Pascal с использованием объектно-ориентированного программирования. Структура алгоритма программы и описание ее работы.
курсовая работа [821,5 K], добавлен 13.02.2012Технические и пользовательские характеристики игры, требования к программному обеспечению и среде разработки C#. Составление блок-схемы алгоритма, uml-диаграммы и текста программы, тестирование корректности компьютерного кода и результатов его работы.
курсовая работа [1,8 M], добавлен 05.03.2013