Разработки программы, реализующей игру "Слова"

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

?од и вывод имени и сохранение в файле.

3.2.Игра.

.2.1.Основные функции игры (Высокий приоритет).

.2.2.Выбор буквы.

.2.3.Особенностей нет.

.3.Регистрация пользователя.

3.3.1.Сохранение имени пользователя в памяти (Средний приоритет).

3.3.2.Ввод имени и сохранение его в памяти.

3.3.3.Отсутствие имени не позволяет начать игру.

.Требование к интерфейсу.

4.1.Интерфейсы пользователей (UX).

Стандартный графический интерфейс

.1.1.640*480 - 1680*1050.

.1.2.Мышь.

.2.Программные интерфейсы.

Стандартные устройства.

.3.Интерфейсы оборудования.

Стандартные интерфейсы.

.4.Интерфейсы связи и коммуникации.

Стандартные интерфейсы передачи информации.

5.Другие нефункциональные требования.

5.1.Требования к производительности.

Хорошая производительность даже на очень старых ПК.

.2.Требования к сохранности (данных).

Безопасная, так как не может повредить файлы ПК.

.3.Критерии качества программного обеспечения.

Требования отсутствуют.

.4.Требования к безопасности системы.

Мобильность, надёжность, стабильность.

6.Прочие требования.

Отказоустойчивость

 

Проектирование

 

Функциональная схема

 

 

Диаграмма классов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Алгоритмы

 

Игра РегистрацияРекорды

 

 

 

 

Программирование

 

Обоснование выбора среды программирования

При решении поставленной задачи оптимально использовать для представления информационных материалов язык Delphi (Object Pascal).

Delphi был очень удобен для создания продукта Игра в слова т.к.:

.Интегрированный отладчик Delphi имеет много полезных свойств.

2.Высокоскоростной компилятор позволяет быстро и без проблем перевести Ваши программы в машинный код. Компилятор, встроенный в Delphi является на данный момент самым быстрым в мире.

3.Визуальное построение приложений позволяет быстро и качественно создать интерфейс Вашей программы.

4.Простые и функциональные способы построения баз данных (БД).

5.Разработчик программ может самостоятельно строить объекты для Delphi. Это очень полезно для составления уникальных приложений.

Оценка стиля программирования

1.Оценка модульности программы - 0.23

2.Оценка структурности кодирования - 50,44

.Оценка структурированности - 0,342

.Оценка читабельности - 0,421

 

Листинг файла Main.pas

 

unit Unit1;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Grids;= class(TForm): TStringGrid;: TStringGrid;: TButton;: TLabel;: TButton;: TButton;FormCreate(Sender: TObject);StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;: TRect; State: TGridDrawState);FormClose(Sender: TObject; var Action: TCloseAction);StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;CanSelect: Boolean);Button1Click(Sender: TObject);

procedure Zapolnenie; //Эту процедуру создали мы сами

procedure StringGrid2DrawCell(Sender: TObject; ACol, ARow: Integer;: TRect; State: TGridDrawState);StringGrid1KeyDown(Sender: TObject; var Key: Word;: TShiftState);Button3Click(Sender: TObject);Button2Click(Sender: TObject);

{ Private declarations }

{ Public declarations };1: TForm1;:TStringList; //Сюда загружаем вопросы из текстового файла, ZagadalTemp:String; //То что загадал компьютер .

{ZadalTemp - Это строка для проверки. Из неё мы удаляем пробелы и сверяем с тем что есть}

implementation

{$R *.dfm}TForm1.FormCreate(Sender: TObject);i,j,k:Integer;.RowCount:=1;.Height:=25;.ScrollBars:=ssnone;.DefaultColWidth:=25;.FixedCols:=0;.RowCount:=4;.ColCount:=8;.Width:=StringGrid1.DefaultColWidth*StringGrid1.ColCount;.ScrollBars:=ssNone;.FixedCols:=0;.FixedRows:=0;.Options:= [];.Color:=Form1.Color;.WordWrap:=True;.AutoSize:=False;.Left:=10;.Top:=10;.Height:=50;.Width:=StringGrid1.Width;.Font.Style:=[fsBold];.Font.Size:=10;.Left:=10;.Top:=Label1.Top+Label1.Height+40;.Top:=StringGrid1.Top+StringGrid1.Height+10;.Caption:=Начать игру;.Top:=StringGrid2.Top+StringGrid2.Height+20;.Height:=Button1.Top+Button1.Height+90;

Form1.Caption:=Игра в слова;

{Все с инспектором объектов типа закончили, дальше нужный код}.Click; //Имитируем нажатие кнопки;

{Обработчик события из вкладки Events. Это мы убираем выделение из StringGrid}

=StringGrid.FixedRows)and(ACol>=StringGrid.FixedCols)Can.Brush.Color:=StringGrid.ColorCan.Brush.Color:=StringGrid2.Color;ActiveControl=Senderthen//""(gdSelectedinState)then.Font.Color:=0;.Brush.Color:=StringGrid1.Color;;.FillRect(Rect);.TextOut(Rect.Left+2,Rect.Top+2,StringGrid.Cells[ACol,ARow]);;TForm1.FormClose(Sender:TObject;varAction:TCloseAction);.Free;//;">procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;: TRect; State: TGridDrawState);: TStringGrid;: TCanvas;:= Sender as TStringGrid;:= StringGrid.Canvas;.Font := StringGrid.Font;(ARow >= StringGrid.FixedRows) and (ACol >= StringGrid.FixedCols)Can.Brush.Color := StringGrid.ColorCan.Brush.Color := StringGrid2.Color;ActiveControl = Sender then // Эта строка "выключает" выделение(gdSelected in State) then.Font.Color := 0;.Brush.Color := StringGrid1.Color;;.FillRect(Rect);.TextOut(Rect.Left+2,Rect.Top+2, StringGrid.Cells[ACol, ARow]);;TForm1.FormClose(Sender: TObject; var Action: TCloseAction);.Free; //Освобождаем память;

{Обработчик события из вкладки Events для StringGrid1}

procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,: Integer; var CanSelect: Boolean);

var s1:char; //Символ, в который ткнули мышью,j:integer; //Счетчики циклов:String; //Временная строка, которая составляется из угаданных символов

{Если мы ткнули не в пустую ячейку, то s1 принимает значение из этой ячейки}

0thens1:=StringGrid1.Cells[ACol,ARow][9];">if length(StringGrid1.Cells[ACol,ARow])>0 then s1:= StringGrid1.Cells[ACol,ARow][9];

{Проверяем наличие выбранного символа в ответе}pos(s1,Zagadal)>0 then Begin //Если наш символ есть в тексте, то записываем его в StringGrid2i:=1 to length(Zagadal) do Begin //Проходим по всей длине загаданного слова

if Zagadal[i]=s1 then Begin //

StringGrid2.Cells[i-1,0]:=s1;//Каждый одинаковый символ записываем в соотв. ему позиции; //Т.е. если в слове 3 буквы О, то все 3 и запишутся в StringList2 на их позиции из ответа;; //Закончили проверку встречи символа

{tempS - это временная строка, которая сос