Разработка курсового проекта: игра« Весы)»




unit igra;

{Выполнил: Усик Максим

Группа 13411.

Задача: Имеется трое весов, с расположенными на них фигурами(круг, квадрат, пятигранник, шестигранник),

причем фигуры расположены так, что все весы находятся в положении равновесия. Необходимо найти массы фигур,

зная, что одна из них весит 1. Массы фигур разные }

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, JPEG, Menus, Buttons, StdCTrls, shellApi;

 

type

TForm1 = class(TForm)

Image1: TImage;

SpeedButton1: TSpeedButton;

Image2: TImage;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

SpeedButton2: TSpeedButton;

SpeedButton3: TSpeedButton;

SpeedButton4: TSpeedButton;

SpeedButton5: TSpeedButton;

SpeedButton6: TSpeedButton;

N11: TMenuItem;

Label1: TLabel;

Timer1: TTimer;

Label2: TLabel;

Label3: TLabel;

procedure FormCreate(Sender: TObject); //инициализация объектов формы

procedure newKeyPress(Sender: TObject; var Key: Char); //проверка значений

procedure Test(TimePerem: Integer); //процедура оценки правильнойсти решения

procedure newChange(Sender: TObject); //обработка вводимых значений

procedure SpeedButton6Click(Sender: TObject); //Выход

procedure SpeedButton1Click(Sender: TObject); //играть

procedure SpeedButton2Click(Sender: TObject); //сохранить

procedure SpeedButton3Click(Sender: TObject); //загрузить

procedure SpeedButton4Click(Sender: TObject); //очистить

procedure SpeedButton5Click(Sender: TObject); //подсказка

procedure N3Click(Sender: TObject); //авторешение

procedure N9Click(Sender: TObject); //вызов справки

procedure N10Click(Sender: TObject); //о программе

procedure Timer1Timer(Sender: TObject); //таймер

private

MasPerem:array [1..100] of string; //массив временных переменных для сохранения

NewEdit: array [1..10] of Tedit; //массив эдитов

Tops: array [1..10] of integer; //массив коолрдинат

Lefts: array [1..10] of integer;

public

mytime:integer; //переменная для таймера

TimePerem:integer; //переменная для номера игры

end;

 

var

Form1: TForm1;

 

implementation

 

uses videorolik, Avtoreshenie, about; //подключенные юниты

 

{$R *.dfm}

 

procedure TForm1.FormCreate(Sender: TObject);

var

i:integer;

begin

Image1.Picture.LoadFromFile('Picture\fon.jpg'); //загрузка фона

Image1.SendToBack; //отображение объектов

tops[1]:=130; //координаты будующих эдитов

tops[2]:=130;

tops[3]:=130;

tops[4]:=325;

tops[5]:=325;

tops[6]:=325;

tops[7]:=520;

tops[8]:=520;

tops[9]:=520;

tops[10]:=520;

Lefts[1]:=25;

Lefts[2]:=65;

Lefts[3]:=325;

Lefts[4]:=25;

Lefts[5]:=70;

Lefts[6]:=325;

Lefts[7]:=25;

Lefts[8]:=65;

Lefts[9]:=305;

Lefts[10]:=340;

for i:=1 to 10 do //цикл создания эдитов

begin

NewEdit[i]:=TEdit.Create(form1); //тип и где будут расположены

newEdit[i].Parent:=form1;

newEdit[i].left:=lefts[i]; //передача координат

newEdit[i].Top:=tops[i];

newedit[i].Height:=25; //размер

newedit[i].Width:=25;

newedit[i].Visible:=false; //видимость

newEdit[i].Tag:=i; //тэг

end;

end;

 

procedure TForm1.SpeedButton6Click(Sender: TObject);

begin

Close; //выйти

end;

 

procedure TForm1.newKeyPress(Sender: TObject; var Key: Char);

Begin

case key of

'0'..'9', #8:; //если бэкспейс или цифры то ввести

#13: //обработка энтера

case (Sender as TEdit).Tag of

1:

newEdit[2].SetFocus; //перемещение между ячейками

2:

newEdit[3].SetFocus;

3:

newEdit[4].SetFocus;

4:

newEdit[5].SetFocus;

5:

newEdit[6].SetFocus;

6:

newEdit[7].SetFocus;

7:

newEdit[8].SetFocus;

8:

newEdit[9].SetFocus;

9:

newEdit[10].SetFocus;

end;

else

key:=#0; //ничего не вводить

end;

End;

 

Procedure TForm1.Test(TimePerem: Integer);

var

x1,x2,x3,x4,i:integer; //i-счетчик. х-временная переменная

begin

case TimePerem of //в зависимости от того какая игра загружена

0:

begin

x1:=strtoint(NewEdit[1].text); //присваиваем значения фигур. круг

x2:=strtoint(NewEdit[3].text); //квадрат

x3:=strtoint(NewEdit[2].text); //пятигранник

x4:=strtoint(NewEdit[5].text); //шестигранник

if (x1+x3=x2) and (x1+x4=x3) and (x4+x3=x1+x2) //проверка на правильность решения

and ((x1=1) or (x2=1) or (x3=1) or (x4=1)) then

begin

timer1.Enabled:=false; //остановить таймер

Label1.Caption:='Поздравляем'; //в лабел вывести сообщение

form2.Show; //показать бонусный видеоролик

form1.Visible:=false; //спрятать 1 форму

end

else

Label1.Caption:='Головоломка решена неверно'; //вывести сообщение что головоломка решена неверно

end;

1:

begin

x1:=strtoint(NewEdit[1].text);

x2:=strtoint(NewEdit[4].text);

x3:=strtoint(NewEdit[2].text);

x4:=strtoint(NewEdit[3].text);

if (x1+x3=x4) and (x2+x3=x1) and (x4+x3=x1+x2)

and ((x1=1) or (x2=1) or (x3=1) or (x4=1)) then

begin

timer1.Enabled:=false;

Label1.Caption:='Поздравляем';

form2.Show;

form1.Visible:=false;

end

else

Label1.Caption:='Головоломка решена неверно';

end;

2:

begin

x1:=strtoint(NewEdit[3].text);

x2:=strtoint(NewEdit[1].text);

x3:=strtoint(NewEdit[2].text);

x4:=strtoint(NewEdit[6].text);

if (x2+x3=x1) and (x1+x2=x4) and (x1+x3=x4+x2) and

((x1=1) or (x2=1) or (x3=1) or (x4=1)) then

begin

timer1.Enabled:=false;

Label1.Caption:='Поздравляем';

form2.Show;

form1.Visible:=false;

end

else

Label1.Caption:='Головоломка решена неверно';

end;

3:

begin

x1:=strtoint(NewEdit[1].text);

x2:=strtoint(NewEdit[5].text);

x3:=strtoint(NewEdit[3].text);

x4:=strtoint(NewEdit[2].text);

if (x1+x4=x3) and (x1+x2=x4) and (x1+x3=x4+x2) and

((x1=1) or (x2=1) or (x3=1) or (x4=1)) then

begin

timer1.Enabled:=false;

Label1.Caption:='Поздравляем';

form2.Show;

form1.Visible:=false;

end

else

Label1.Caption:='Головоломка решена неверно';

end;

4:

begin

x1:=strtoint(NewEdit[6].text);

x2:=strtoint(NewEdit[3].text);

x3:=strtoint(NewEdit[2].text);

x4:=strtoint(NewEdit[1].text);

if (x4+x3=x2) and (x2+x4=x1) and (x4+x1=x3+x2) and

((x1=1) or (x2=1) or (x3=1) or (x4=1)) then

begin

timer1.Enabled:=false;

Label1.Caption:='Поздравляем';

form2.Show;

form1.Visible:=false;

end

else

Label1.Caption:='Головоломка решена неверно';

end;

5:

begin

x1:=strtoint(NewEdit[1].text);

x2:=strtoint(NewEdit[5].text);

x3:=strtoint(NewEdit[3].text);

x4:=strtoint(NewEdit[2].text);

if (x1+x4=x3) and (x2+x4=x1) and (x4+x3=x1+x2) and

((x1=1) or (x2=1) or (x3=1) or (x4=1)) then

begin

timer1.Enabled:=false;

Label1.Caption:='Поздравляем';

form2.Show;

form1.Visible:=false;

end

else

Label1.Caption:='Головоломка решена неверно';

end;

6:

begin

x1:=strtoint(NewEdit[6].text);

x2:=strtoint(NewEdit[1].text);

x3:=strtoint(NewEdit[2].text);

x4:=strtoint(NewEdit[3].text);

if (x2+x3=x4) and (x2+x4=x1) and (x4+x3=x1+x2) and

((x1=1) or (x2=1) or (x3=1) or (x4=1)) then

begin

timer1.Enabled:=false;

Label1.Caption:='Поздравляем';

form2.Show;

form1.Visible:=false;

end

else

Label1.Caption:='Головоломка решена неверно';

end;

end;

end;

 

procedure TForm1.newChange(Sender: TObject);

var

i:integer; //счетчик

filled:boolean; //тип для определения заполненности эдитов

Begin

case TimePerem of //в зависимости от того какая игра запущена

0:

begin

NewEdit[1].Font.color:=ClRed; //назначение цвета шрифта для ячеек

NewEdit[2].Font.Color:=ClGreen;

NewEdit[3].Font.Color:=ClBlue;

NewEdit[4].Font.Color:=ClRed;

NewEdit[5].Font.Color:=ClPurple;

NewEdit[6].Font.Color:=ClGreen;

NewEdit[7].Font.Color:=ClPurple;

NewEdit[8].Font.Color:=ClGreen;

NewEdit[9].Font.Color:=ClRed;

NewEdit[10].Font.Color:=ClBlue;

case (Sender as Tedit).Tag of //в зависимости от того в какой ячейке находимся организуется связь между ними

1:

begin

NewEdit[4].Text:=NewEdit[1].Text; //установка связи

NewEdit[9].Text:=NewEdit[1].Text;

end;

2:

begin

NewEdit[6].Text:=NewEdit[2].Text;

NewEdit[8].Text:=NewEdit[2].Text;

end;

3:

NewEdit[10].Text:=NewEdit[3].Text;

4:

begin

NewEdit[1].Text:=NewEdit[4].Text;

NewEdit[9].Text:=NewEdit[4].Text;

end;

5:

NewEdit[7].Text:=NewEdit[5].Text;

6:

begin

NewEdit[2].Text:=NewEdit[6].Text;

NewEdit[8].Text:=NewEdit[6].Text;

end;

7:

NewEdit[5].Text:=NewEdit[7].Text;

8:

begin

NewEdit[2].Text:=NewEdit[8].Text;

NewEdit[6].Text:=NewEdit[8].Text;

End;

9:

begin

NewEdit[4].Text:=NewEdit[9].Text;

NewEdit[1].Text:=NewEdit[9].Text;

end;

10:

NewEdit[3].Text:=NewEdit[10].Text;

end;

 

end;

1:

begin

NewEdit[1].Font.color:=ClRed;

NewEdit[2].Font.Color:=ClGreen;

NewEdit[3].Font.Color:=ClPurple;

NewEdit[4].Font.Color:=ClBlue;

NewEdit[5].Font.Color:=ClGreen;

NewEdit[6].Font.Color:=ClRed;

NewEdit[7].Font.Color:=ClPurple;

NewEdit[8].Font.Color:=ClGreen;

NewEdit[9].Font.Color:=ClRed;

NewEdit[10].Font.Color:=ClBlue;

case (Sender as Tedit).Tag of

1:

begin

NewEdit[6].Text:=NewEdit[1].Text;

NewEdit[9].Text:=NewEdit[1].Text;

end;

2:

begin

NewEdit[5].Text:=NewEdit[2].Text;

NewEdit[8].Text:=NewEdit[2].Text;

end;

3:

NewEdit[7].Text:=NewEdit[3].Text;

4:

NewEdit[10].Text:=NewEdit[4].Text;

5:

Begin

NewEdit[2].Text:=NewEdit[5].Text;

NewEdit[8].Text:=NewEdit[5].Text;

end;

6:

begin

NewEdit[1].Text:=NewEdit[6].Text;

NewEdit[9].Text:=NewEdit[6].Text;

end;

7:

NewEdit[3].Text:=NewEdit[7].Text;

8:

begin

NewEdit[2].Text:=NewEdit[8].Text;

NewEdit[5].Text:=NewEdit[8].Text;

End;

9:

begin

NewEdit[6].Text:=NewEdit[9].Text;

NewEdit[1].Text:=NewEdit[9].Text;

end;

10:

NewEdit[4].Text:=NewEdit[10].Text;

end;

 

end;

2:

begin

NewEdit[1].Font.color:=ClBlue;

NewEdit[2].Font.Color:=ClGreen;

NewEdit[3].Font.Color:=ClRed;

NewEdit[4].Font.Color:=ClRed;

NewEdit[5].Font.Color:=ClBlue;

NewEdit[6].Font.Color:=ClPurple;

NewEdit[7].Font.Color:=ClRed;

NewEdit[8].Font.Color:=ClGreen;

NewEdit[9].Font.Color:=Clpurple;

NewEdit[10].Font.Color:=ClBlue;

case (Sender as Tedit).Tag of

1:

begin

NewEdit[5].Text:=NewEdit[1].Text;

NewEdit[10].Text:=NewEdit[1].Text;

end;

2:

NewEdit[8].Text:=NewEdit[2].Text;

3:

begin

NewEdit[4].Text:=NewEdit[3].Text;

NewEdit[7].Text:=NewEdit[3].Text;

end;

4:

begin

NewEdit[3].Text:=NewEdit[4].Text;

NewEdit[7].Text:=NewEdit[4].Text;

end;

5:

begin

NewEdit[1].Text:=NewEdit[5].Text;

NewEdit[10].Text:=NewEdit[5].Text;

end;

6:

NewEdit[9].Text:=NewEdit[6].Text;

7:

Begin

NewEdit[3].Text:=NewEdit[7].Text;

NewEdit[4].Text:=NewEdit[7].Text;

end;

8:

NewEdit[2].Text:=NewEdit[8].Text;

9:

NewEdit[6].Text:=NewEdit[9].Text;

10:

begin

NewEdit[1].Text:=NewEdit[10].Text;

NewEdit[5].Text:=NewEdit[10].Text;

end;

end;

 

end;

3:

begin

NewEdit[1].Font.color:=ClRed;

NewEdit[2].Font.Color:=ClPurple;

NewEdit[3].Font.Color:=ClGreen;

NewEdit[4].Font.Color:=ClRed;

NewEdit[5].Font.Color:=ClBlue;

NewEdit[6].Font.Color:=ClPurple;

NewEdit[7].Font.Color:=ClRed;

NewEdit[8].Font.Color:=ClGreen;

NewEdit[9].Font.Color:=ClPurple;

NewEdit[10].Font.Color:=ClBlue;

case (Sender as Tedit).Tag of

1:

begin

NewEdit[4].Text:=NewEdit[1].Text;

NewEdit[7].Text:=NewEdit[1].Text;

end;

2:

begin

NewEdit[6].Text:=NewEdit[2].Text;

NewEdit[9].Text:=NewEdit[2].Text;

end;

3:

NewEdit[8].Text:=NewEdit[3].Text;

4:

begin

NewEdit[1].Text:=NewEdit[4].Text;

NewEdit[7].Text:=NewEdit[4].Text;

end;

5:

NewEdit[10].Text:=NewEdit[5].Text;

6:

begin

NewEdit[2].Text:=NewEdit[6].Text;

NewEdit[9].Text:=NewEdit[6].Text;

end;

7:

begin

NewEdit[1].Text:=NewEdit[7].Text;

NewEdit[4].Text:=NewEdit[7].Text;

end;

8:

NewEdit[3].Text:=NewEdit[8].Text;

9:

begin

NewEdit[2].Text:=NewEdit[9].Text;

NewEdit[6].Text:=NewEdit[9].Text;

end;

10:

NewEdit[5].Text:=NewEdit[10].Text;

end;

 

end;

4:

begin

NewEdit[1].Font.color:=ClPurple;

NewEdit[2].Font.Color:=ClGreen;

NewEdit[3].Font.Color:=ClBlue;

NewEdit[4].Font.Color:=ClPurple;

NewEdit[5].Font.Color:=ClBlue;

NewEdit[6].Font.Color:=ClRed;

NewEdit[7].Font.Color:=ClRed;

NewEdit[8].Font.Color:=ClPurple;

NewEdit[9].Font.Color:=ClBlue;

NewEdit[10].Font.Color:=ClGreen;

case (Sender as Tedit).Tag of

1:

begin

NewEdit[4].Text:=NewEdit[1].Text;

NewEdit[8].Text:=NewEdit[4].Text;

end;

2:

NewEdit[10].Text:=NewEdit[2].Text;

3:

begin

NewEdit[5].Text:=NewEdit[3].Text;

NewEdit[9].Text:=NewEdit[3].Text;

end;

4:

begin

NewEdit[1].Text:=NewEdit[4].Text;

NewEdit[8].Text:=NewEdit[4].Text;

end;

5:

begin

NewEdit[3].Text:=NewEdit[5].Text;

NewEdit[9].Text:=NewEdit[5].Text;

end;

6:

NewEdit[7].Text:=NewEdit[6].Text;

7:

NewEdit[6].Text:=NewEdit[7].Text;

8:

begin

NewEdit[1].Text:=NewEdit[8].Text;

NewEdit[4].Text:=NewEdit[8].Text;

End;

9:

begin

NewEdit[3].Text:=NewEdit[9].Text;

NewEdit[5].Text:=NewEdit[9].Text;

end;

10:

NewEdit[2].Text:=NewEdit[10].Text;

end;

end;

5:

begin

NewEdit[1].Font.color:=ClRed;

NewEdit[2].Font.Color:=ClPurple;

NewEdit[3].Font.Color:=ClGreen;

NewEdit[4].Font.Color:=ClPurple;

NewEdit[5].Font.Color:=ClBlue;

NewEdit[6].Font.Color:=ClRed;

NewEdit[7].Font.Color:=ClPurple;

NewEdit[8].Font.Color:=ClGreen;

NewEdit[9].Font.Color:=ClRed;

NewEdit[10].Font.Color:=ClBlue;

case (Sender as Tedit).Tag of

1:

begin

NewEdit[6].Text:=NewEdit[1].Text;

NewEdit[9].Text:=NewEdit[1].Text;

end;

2:

begin

NewEdit[4].Text:=NewEdit[2].Text;

NewEdit[7].Text:=NewEdit[2].Text;

end;

3:

NewEdit[8].Text:=NewEdit[3].Text;

4:

begin

NewEdit[2].Text:=NewEdit[4].Text;

NewEdit[7].Text:=NewEdit[4].Text;

end;

5:

NewEdit[10].Text:=NewEdit[5].Text;

6:

begin

NewEdit[1].Text:=NewEdit[6].Text;

NewEdit[9].Text:=NewEdit[6].Text;

end;

7:

begin

NewEdit[2].Text:=NewEdit[7].Text;

NewEdit[4].Text:=NewEdit[7].Text;

end;

8:

NewEdit[3].Text:=NewEdit[8].Text;

9:

begin

NewEdit[1].Text:=NewEdit[9].Text;

NewEdit[6].Text:=NewEdit[9].Text;

end;

10:

NewEdit[5].Text:=NewEdit[10].Text;

end;

end;

6:

begin

NewEdit[1].Font.color:=ClBlue;

NewEdit[2].Font.Color:=ClGreen;

NewEdit[3].Font.Color:=ClPurple;

NewEdit[4].Font.Color:=ClPurple;

NewEdit[5].Font.Color:=ClBlue;

NewEdit[6].Font.Color:=ClRed;

NewEdit[7].Font.Color:=ClPurple;

NewEdit[8].Font.Color:=ClGreen;

NewEdit[9].Font.Color:=ClRed;

NewEdit[10].Font.Color:=ClBlue;

case (Sender as Tedit).Tag of

1:

begin

NewEdit[5].Text:=NewEdit[1].Text;

NewEdit[10].Text:=NewEdit[1].Text;

end;

2:

NewEdit[8].Text:=NewEdit[2].Text;

3:

begin

NewEdit[4].Text:=NewEdit[3].Text;

NewEdit[7].Text:=NewEdit[3].Text;

end;

4:

begin

NewEdit[7].Text:=NewEdit[4].Text;

NewEdit[3].Text:=NewEdit[4].Text;

end;

5:

begin

NewEdit[1].Text:=NewEdit[5].Text;

NewEdit[10].Text:=NewEdit[5].Text;

end;

6:

NewEdit[9].Text:=NewEdit[6].Text;

7:

begin

NewEdit[3].Text:=NewEdit[7].Text;

NewEdit[4].Text:=NewEdit[7].Text;

end;

8:

NewEdit[2].Text:=NewEdit[8].Text;

9:

NewEdit[6].Text:=NewEdit[9].Text;

10:

begin

NewEdit[1].Text:=NewEdit[10].Text;

NewEdit[5].Text:=NewEdit[10].Text;

end;

end;

end;

end;

filled:=True;

for i:=1 to 10 do

if newedit[i].Text='' then //если все эдиты заполнены и хотябы 1 пустой

begin

filled:=false; //временная переменная установка в ложное состояние

break; //прервать цикл

end;

if filled=true then //если временная переменная истона, т.е ве эдиты заполнены

test(TimePerem); //то запустить процедуру тест

end;

 

procedure TForm1.SpeedButton1Click(Sender: TObject);

var

i:integer; //счетчик

begin

mytime:=0; //начальное время таймера 0

timer1.OnTimer:=Timer1Timer; //запуск таймера

Label1.Caption:=''; //очистить строку состояния

TimePerem:=random(7); //загрузить произвольно одну из игр

for i:=1 to 10 do

begin

newEdit[i].Visible:=true; //показать эдит

newEdit[i].Text:=''; //очистить текст

newEdit[i].Color:=clWhite; //свет фона в ячейке белый

newEdit[i].OnChange:=NewChange; //назначение процедуры значений

newEdit[i].OnKeyPress:=newKeyPress; //обработка ввода

Image2.Picture.LoadFromFile('Picture\'+inttostr(timeperem)+'.jpg'); //загрузка изображения с игрой

end;

newEdit[1].setfocus; //фокус на первом эдите

end;

 

procedure TForm1.SpeedButton2Click(Sender: TObject);

var

i:Integer; //счетчик

begin

for i:=1 to 10 do

masPerem[i]:=newEdit[i].Text; //запоминаем значения в эдитах

end;

 

procedure TForm1.SpeedButton3Click(Sender: TObject);

var

i:integer; //счетчик

begin

for i:=1 to 10 do

newEdit[i].Text:=masPerem[i]; //записываем значения в эдиты

end;

 

procedure TForm1.SpeedButton4Click(Sender: TObject);

var

i:integer; //счетчик

begin

for i:=1 to 10 do

newEdit[i].Text:=''; //очищаем эдиты

newEdit[1].SetFocus; //фокусируемся на первом эдите

end;

 

procedure TForm1.SpeedButton5Click(Sender: TObject);

var

i,j,k,x:integer; //счетчики, х-временная переменная

begin

for i:=1 to 10 do

newEdit[i].Color:=clWhite; //сделать фон эдитов белым

case TimePerem of

0:

begin

if (newEdit[1].Text<>'') and (newEdit[2].Text='') and (newEdit[3].Text='')

and (newEdit[5].Text='') then //в зависимости от того в какой эдит введено значение

begin //вывести

x:=strtoint(NewEdit[1].Text); //временная пееменная равна едиту со значение

for i:=1 to 50 do //поиск значений

for j:=1 to 50 do

for k:=1 to 50 do

if (x+j=i) and (x+k=j) and (k+j=x+i) //проверка правильности решения

and ((x=1) or (i=1) or (j=1) or (k=1)) then

begin

newEdit[3].SetFocus; //фокус на эдите

newEdit[3].color:=ClGray; //фон серый. установка серого фона также у связанных с ним эдитов

newEdit[10].Color:=ClGray;

NewEdit[3].Text:=inttostr(i); //заполняем значением

label1.Caption:='Вы использовали подсказку!'; //вывод сообщения в строку состояния

exit; //выйти из цикла

end

Else

label1.caption:='Масса круга не может быть равна'+' '+newEdit[1].Text; //иначе вывести сообщение в строку состояния

end

else

if (newEdit[3].Text<>'') and (newEdit[2].Text='') and (newEdit[1].Text='')

and (newEdit[5].Text='') then

begin

x:=strtoint(NewEdit[3].Text);

for i:=1 to 50 do

for j:=1 to 50 do

for k:=1 to 50 do

if (i+j=x) and (i+k=j) and (k+j=x+i)

and ((x=1) or (i=1) or (j=1) or (k=1)) then

begin

newEdit[1].SetFocus;

newEdit[1].color:=ClGray;

newEdit[4].Color:=ClGray;

newEdit[9].Color:=clGray;

NewEdit[1].Text:=inttostr(i);

label1.Caption:='Вы использовали подсказку!';

exit;

end

Else

label1.caption:='Масса квадрата не может быть равна'+' '+newEdit[3].Text;

end

else

if (newEdit[2].Text<>'') and (newEdit[1].Text='') and (newEdit[3].Text='')

and (newEdit[5].Text='') then

begin

x:=strtoint(NewEdit[2].Text);

for i:=1 to 50 do

for j:=1 to 50 do

for k:=1 to 50 do

if (x+i=j) and (i+k=x) and (k+x=j+i)

and ((x=1) or (i=1) or (j=1) or (k=1)) then

begin

newEdit[1].SetFocus;

newEdit[1].color:=ClGray;

newEdit[4].Color:=ClGray;

newEdit[9].Color:=clGray;

NewEdit[1].Text:=inttostr(i);

label1.Caption:='Вы использовали подсказку!';

exit;

end

Else

label1.caption:='Масса пятигранника не может быть равна'+' '+newEdit[2].Text;

end

else

if (newEdit[5].Text<>'') and (newEdit[2].Text='') and (newEdit[3].Text='')

and (newEdit[1].Text='') then

begin

x:=strtoint(NewEdit[5].Text);

for i:=1 to 50 do

for j:=1 to 50 do

for k:=1 to 50 do

if (x+j=i) and (x+k=j) and (k+j=x+i)

and ((x=1) or (i=1) or (j=1) or (k=1)) then

begin

newEdit[1].SetFocus;

newEdit[1].color:=ClGray;

newEdit[4].Color:=ClGray;

newEdit[9].Color:=clGray;

NewEdit[1].Text:=inttostr(i);

label1.Caption:='Вы использовали подсказку!';

exit;

end

Else

label1.caption:='Масса шестригранника не может быть равна'+' '+newEdit[5].Text;

end

else

Label1.Caption:='Подсказка на данном уровне решения невозможна!';

end;

1:

Begin

if (newEdit[1].Text<>'') and (newEdit[2].Text='') and (newEdit[3].Text='')

and (newEdit[4].Text='') then

begin

x:=strtoint(NewEdit[1].Text);

for i:=1 to 50 do

for j:=1 to 50 do

for k:=1 to 50 do

if (x+j=k) and (i+j=x) and (k+j=x+i)

and ((x=1) or (i=1) or (j=1) or (k=1)) then

begin

newEdit[4].SetFocus;

newEdit[4].color:=ClGray;

newEdit[10].Color:=ClGray;

NewEdit[4].Text:=inttostr(i);

label1.Caption:='Вы использовали подсказку!';

exit;

end

Else

label1.caption:='Масса круга не может быть равна'+' '+newEdit[1].Text;

end

else

if (newEdit[4].Text<>'') and (newEdit[2].Text='') and (newEdit[1].Text='')

and (newEdit[3].Text='') then

begin

x:=strtoint(NewEdit[4].Text);

for i:=1 to 50 do

for j:=1 to 50 do

for k:=1 to 50 do

if (i+j=k) and (x+j=i) and (k+j=x+i)

and ((x=1) or (i=1) or (j=1) or (k=1)) then

begin

newEdit[1].SetFocus;

newEdit[1].color:=ClGray;

newEdit[6].Color:=ClGray;

newEdit[9].Color:=clGray;

NewEdit[1].Text:=inttostr(i);

label1.Caption:='Вы использовали подсказку!';

exit;

end

Else

label1.caption:='Масса квадрата не может быть равна'+' '+newEdit[4].Text;

end

else

if (newEdit[2].Text<>'') and (newEdit[1].Text='') and (newEdit[3].Text='')

and (newEdit[4].Text='') then

begin

x:=strtoint(NewEdit[2].Text);

for i:=1 to 50 do

for j:=1 to 50 do

for k:=1 to 50 do

if (x+i=k) and (j+x=i) and (k+x=j+i)

and ((x=1) or (i=1) or (j=1) or (k=1)) then

begin

newEdit[1].SetFocus;

newEdit[1].color:=ClGray;

newEdit[6].Color:=ClGray;

newEdit[9].Color:=clGray;

NewEdit[1].Text:=inttostr(i);

label1.Caption:='Вы использовали подсказку!';

exit;

end

Else

label1.caption:='Масса пятигранника не может быть равна'+' '+newEdit[2].Text;

end

else

if (newEdit[3].Text<>'') and (newEdit[2].Text='') and (newEdit[1].Text='')

and (newEdit[4].Text='') then

begin

x:=strtoint(NewEdit[3].Text);

for i:=1 to 50 do

for j:=1 to 50 do

for k:=1 to 50 do

if (i+k=x) and (j+k=i) and (x+k=j+i)

and ((x=1) or (i=1) or (j=1) or (k=1)) then

begin

newEdit[1].SetFocus;

newEdit[1].color:=ClGray;

newEdit[6].Color:=ClGray;

newEdit[9].Color:=clGray;

NewEdit[1].Text:=inttostr(i);

label1.Caption:='Вы использовали подсказку!';

exit;

end

Else

label1.caption:='Масса шестигранника не может быть равна'+' '+newEdit[3].Text;

end

else

Label1.Caption:='Подсказка на данном уровне решения невозможна!';

end;

2:

begin

if (newEdit[3].Text<>'') and (newEdit[2].Text='') and (newEdit[1].Text='')

and (newEdit[6].Text='') then

begin

x:=strtoint(NewEdit[3].Text);

for i:=1 to 50 do

for j:=1 to 50 do

for k:=1 to 50 do

if (i+j=x) and (x+i=k) and (x+j=k+i)

and ((x=1) or (i=1) or (j=1) or (k=1)) then

begin

newEdit[1].SetFocus;

newEdit[1].color:=ClGray;

newEdit[5].Color:=ClGray;

newEdit[10].Color:=ClGray;

NewEdit[1].Text:=inttostr(i);

label1.Caption:='Вы использовали подсказку!';

exit;

end

Else

label1.caption:='Масса круга не может быть равна'+' '+newEdit[3].Text;

end

else

if (newEdit[1].Text<>'') and (newEdit[2].Text='') and (newEdit[3].Text='')

and (newEdit[6].Text='') then

begin

x:=strtoint(NewEdit[1].Text);

for i:=1 to 50 do

for j:=1 to 50 do

for k:=1 to 50 do

if (x+j=i) and (i+x=k) and (i+j=x+k)

and ((x=1) or (i=1) or (j=1) or (k=1)) then

begin

newEdit[3].SetFocus;

newEdit[3].color:=ClGray;

newEdit[4].Color:=ClGray;

newEdit[7].Color:=clGray;

NewEdit[7].Text:=inttostr(i);

label1.Caption:='Вы использовали подсказку!';

exit;

end

Else

label1.caption:='Масса квадрата не может быть равна'+' '+newEdit[1].Text;

end

else

if (newEdit[2].Text<>'') and (newEdit[1].Text='') and (newEdit[3].Text='')

and (newEdit[6].Text='') then

begin

x:=strtoint(NewEdit[2].Text);

for i:=1 to 50 do

for j:=1 to 50 do

for k:=1 to 50 do

if (x+j=i) and (i+j=k) and (i+x=j+k)

and ((x=1) or (i=1) or (j=1) or (k=1)) then

begin

newEdit[3].SetFocus;

newEdit[3].color:=ClGray;

newEdit[4].Color:=ClGray;

newEdit[7].Color:=clGray;

NewEdit[3].Text:=inttostr(i);

label1.Caption:='Вы использовали подсказку!';

exit;

end

Else

label1.caption:='Масса пятигранника не может быть равна'+' '+newEdit[2].Text;

end

else

if (newEdit[6].Text<>'') and (newEdit[2].Text='') and (newEdit[3].Text='')

and (newEdit[1].Text='') then

begin

x:=strtoint(NewEdit[6].Text);

for i:=1 to 50 do

for j:=1 to 50 do

for k:=1 to 50 do

if (j+k=i) and (i+j=x) and (i+k=x+j)

and ((x=1) or (i=1) or (j=1) or (k=1)) then

begin

newEdit[3].SetFocus;

newEdit[3].color:=ClGray;

newEdit[4].Color:=ClGray;

newEdit[7].Color:=clGray;

NewEdit[3].Text:=inttostr(i);

label1.Caption:='Вы использовали подсказку!';

exit;

end

Else

label1.caption:='Масса шестригранника не может быть равна'+' '+newEdit[6].Text;

end

else

Label1.Caption:='Подсказка на данном уровне решения невозможна!';

end;

3:

begin

if (newEdit[1].Text<>'') and (newEdit[2].Text='') and (newEdit[3].Text='')

and (newEdit[5].Text='') then

begin

x:=strtoint(NewEdit[1].Text);

for i:=1 to 50 do

for j:=1 to 50 do

for k:=1 to 50 do

if (x+k=j) and (x+i=k) and (x+j=k+i)

and ((x=1) or (i=1) or (j=1) or (k=1)) then

begin

newEdit[5].SetFocus;

newEdit[5].color:=ClGray;

newEdit[10].Color:=ClGray;

NewEdit[5].Text:=inttostr(i);

label1.Caption:='Вы использовали подсказку!';

exit;

end

Else

label1.caption:='Масса круга не может быть равна'+' '+newEdit[1].Text;

end

else

if (newEdit[5].Text<>'') and (newEdit[2].Text='') and (newEdit[1].Text='')

and (newEdit[3].Text='') then

begin

x:=strtoint(NewEdit[5].Text);

for i:=1 to 50 do

for j:=1 to 50 do

for k:=1 to 50 do

if (i+k=j) and (i+x=k) and (i+j=x+k)

and ((x=1) or (i=1) or (j=1) or (k=1)) then

begin

newEdit[1].SetFocus;

newEdit[1].color:=ClGray;

newEdit[4].Color:=ClGray;

newEdit[7].Color:=clGray;

NewEdit[1].Text:=inttostr(i);

label1.Caption:='Вы использовали подсказку!';

exit;

end

Else

label1.caption:='Масса квадрата не может быть равна'+' '+newEdit[5].Text;

end

else

if (newEdit[3].Text<>'') and (newEdit[1].Text='') and (newEdit[2].Text='')

and (newEdit[5].Text='') then

begin

x:=strtoint(NewEdit[3].Text);

for i:=1 to 50 do

for j:=1 to 50 do

for k:=1 to 50 do

if (i+k=x) and (i+j=k) and (i+x=j+k)

and ((x=1) or (i=1) or (j=1) or (k=1)) then

begin

newEdit[1].SetFocus;

newEdit[1].color:=ClGray;

newEdit[6].Color:=ClGray;

newEdit[7].Color:=clGray;

NewEdit[1].Text:=inttostr(i);

label1.Caption:='Вы использовали подсказку!';

exit;

end

Else

label1.caption:='Масса пятигранника не может быть равна'+' '+newEdit[3].Text;

end

else

if (newEdit[2].Text<>'') and (newEdit[1].Text='') and (newEdit[3].Text='')

and (newEdit[5].Text='') then

begin

x:=strtoint(NewEdit[2].Text);

for i:=1 to 50 do

for j:=1 to 50 do

for k:=1 to 50 do

if (x+i=k) and (i+j=x) and (i+k=x+j)

and ((x=1) or (i=1) or (j=1) or (k=1)) then

begin

newEdit[1].SetFocus;

newEdit[1].color:=ClGray;

newEdit[4].Color:=ClGray;

newEdit[7].Color:=clGray;

NewEdit[1].Text:=inttostr(i);

label1.Caption:='Вы использовали подсказку!';

exit;

end

Else

label1.caption:='Масса шестигранника не может быть равна'+' '+newEdit[2].Text;

end

else

Label1.Caption:='Подсказка на данном уровне решения невозможна!';

end;

4:

begin

if (newEdit[6].Text<>'') and (newEdit[2].Text='') and (newEdit[3].Text='')

and (newEdit[1].Text='') then

begin

x:=strtoint(NewEdit[6].Text);

for i:=1 to 50 do

for j:=1 to 50 do

for k:=1 to 50 do

if (k+j=i) and (k+i=x) and (x+k=i+j)

and ((x=1) or (i=1) or (j=1) or (k=1)) then

begin

newEdit[3].SetFocus;

newEdit[3].color:=ClGray;

newEdit[5].Color:=ClGray;

newEdit[9].Color:=ClGray;

NewEdit[3].Text:=inttostr(i);

label1.Caption:='Вы использовали подсказку!';

exit;

end

Else

label1.caption:='Масса круга не может быть равна'+' '+newEdit[6].Text;

end

else

if (newEdit[3].Text<>'') and (newEdit[2].Text='') and (newEdit[1].Text='')

and (newEdit[6].Text='') then

begin

x:=strtoint(NewEdit[3].Text);

for i:=1 to 50 do

for j:=1 to 50 do

for k:=1 to 50 do

if (k+j=x) and (k+x=i) and (i+k=x+j)

and ((x=1) or (i=1) or (j=1) or (k=1)) then

begin

newEdit[6].SetFocus;

newEdit[6].color:=ClGray;

newEdit[7].Color:=ClGray;

NewEdit[6].Text:=inttostr(i);

label1.Caption:='Вы использовали подсказку!';

exit;

end

Else

label1.caption:='Масса квадрата не может быть равна'+' '+newEdit[3].Text;

end

else

if (newEdit[2].Text<>'') and (newEdit[1].Text='') and (newEdit[3].Text='')

and (newEdit[6].Text='') then

begin

x:=strtoint(NewEdit[2].Text);

for i:=1 to 50 do

for j:=1 to 50 do

for k:=1 to 50 do

if (k+x=j) and (k+j=i) and (i+k=j+x)

and ((x=1) or (i=1) or (j=1) or (k=1)) then

begin

newEdit[6].SetFocus;

newEdit[6].color:=ClGray;

newEdit[7].Color:=ClGray;

NewEdit[6].Text:=inttostr(i);

label1.Caption:='Вы использовали подсказку!';

exit;

end

Else

label1.caption:='Масса пятигранника не может быть равна'+' '+newEdit[2].Text;

end

else

if (newEdit[1].Text<>'') and (newEdit[2].Text='') and (newEdit[3].Text='')

and (newEdit[6].Text='') then

begin

x:=strtoint(NewEdit[1].Text);

for i:=1 to 50 do

for j:=1 to 50 do

for k:=1 to 50 do

if (x+k=j) and (x+j=i) and (i+x=j+k)

and ((x=1) or (i=1) or (j=1) or (k=1)) then

begin

newEdit[6].SetFocus;

newEdit[6].color:=ClGray;

newEdit[7].Color:=ClGray;

NewEdit[6].Text:=inttostr(i);

label1.Caption:='Вы использовали подсказку!';

exit;

end

Else

label1.caption:='Масса шестигранника не может быть равна'+' '+newEdit[1].Text;

end

else

Label1.Caption:='Подсказка на данном уровне решения невозможна!';

end;

5:

begin

if (newEdit[1].Text<>'') and (newEdit[2].Text='') and (newEdit[3].Text='')

and (newEdit[5].Text='') then

begin

x:=strtoint(NewEdit[1].Text);

for i:=1 to 50 do

for j:=1 to 50 do

for k:=1 to 50 do

if (x+k=j) and (k+i=x) and (k+j=x+i)

and ((x=1) or (i=1) or (j=1) or (k=1)) then

begin

newEdit[5].SetFocus;

newEdit[5].color:=ClGray;

newEdit[10].Color:=ClGray;

NewEdit[5].Text:=inttostr(i);

label1.Caption:='Вы использовали подсказку!';

exit;

end

Else

label1.caption:='Масса круга не может быть равна'+' '+newEdit[1].Text;

end

else

if (newEdit[5].Text<>'') and (newEdit[2].Text='') and (newEdit[1].Text='')

and (newEdit[3].Text='') then

begin

x:=strtoint(NewEdit[5].Text);

for i:=1 to 50 do

for j:=1 to 50 do

for k:=1 to 50 do

if (i+k=j) and (k+x=i) and (k+j=x+i)

and ((x=1) or (i=1) or (j=1) or (k=1)) then

begin

newEdit[1].SetFocus;

newEdit[1].color:=ClGray;

newEdit[6].Color:=ClGray;

newEdit[9].Color:=clGray;

NewEdit[1].Text:=inttostr(i);

label1.Caption:='Вы использовали подсказку!';

exit;

end

Else

label1.caption:='Масса квадрата не может быть равна'+' '+newEdit[5].Text;

end

else

if (newEdit[3].Text<>'') and (newEdit[1].Text='') and (newEdit[2].Text='')

and (newEdit[5].Text='') then

begin

x:=strtoint(NewEdit[3].Text);

for i:=1 to 50 do

for j:=1 to 50 do

for k:=1 to 50 do

if (i+k=x) and (k+j=i) and (k+x=j+i)

and ((x=1) or (i=1) or (j=1) or (k=1)) then

begin

newEdit[1].SetFocus;

newEdit[1].color:=ClGray;

newEdit[6].Color:=ClGray;

newEdit[9].Color:=clGray;

NewEdit[1].Text:=inttostr(i);

label1.Caption:='Вы использовали подсказку!';

exit;

end

Else

label1.caption:='Масса пятигранника не может быть равна'+' '+newEdit[3].Text;

end

else

if (newEdit[2].Text<>'') and (newEdit[1].Text='') and (newEdit[3].Text='')

and (newEdit[5].Text='') then

begin

x:=strtoint(NewEdit[2].Text);

for i:=1 to 50 do

for j:=1 to 50 do

for k:=1 to 50 do

if (i+x=k) and (x+j=i) and (x+k=i+j)

and ((x=1) or (i=1) or (j=1) or (k=1)) then

begin

newEdit[1].SetFocus;

newEdit[1].color:=ClGray;

newEdit[6].Color:=ClGray;

newEdit[9].Color:=clGray;

NewEdit[1].Text:=inttostr(i);

label1.Caption:='Вы использовали подсказку!';

exit;

end

Else

label1.caption:='Масса шестигранника не может быть равна'+' '+newEdit[2].Text;

end

else

Label1.Caption:='Подсказка на данном уровне решения невозможна!';

end;

6:

begin

if (newEdit[6].Text<>'') and (newEdit[2].Text='') and (newEdit[3].Text='')

and (newEdit[1].Text='') then

begin

x:=strtoint(NewEdit[6].Text);

for i:=1 to 50 do

for j:=1 to 50 do

for k:=1 to 50 do

if (i+j=k) and (k+i=x) and (k+j=x+i)

and ((x=1) or (i=1) or (j=1) or (k=1)) then

begin

newEdit[1].SetFocus;

newEdit[1].color:=ClGray;

newEdit[5].Color:=ClGray;

newEdit[10].Color:=ClGray;

NewEdit[1].Text:=inttostr(i);

label1.Caption:='Вы использовали подсказку!';

exit;

end

Else

label1.caption:='Масса круга не может быть равна'+' '+newEdit[6].Text;

end

else

if (newEdit[1].Text<>'') and (newEdit[2].Text='') and (newEdit[3].Text='')

and (newEdit[6].Text='') then

begin

x:=strtoint(NewEdit[1].Text);

for i:=1 to 50 do

for j:=1 to 50 do

for k:=1 to 50 do

if (x+j=k) and (k+x=i) and (k+j=x+i)

and ((x=1) or (i=1) or (j=1) or (k=1)) then

begin

newEdit[6].SetFocus;

newEdit[6].color:=ClGray;

newEdit[10].Color:=ClGray;

NewEdit[6].Text:=inttostr(i);

label1.Caption:='Вы использовали подсказку!';

exit;

end

Else

label1.caption:='Масса квадрата не может быть равна'+' '+newEdit[1].Text;

end

else

if (newEdit[2].Text<>'') and (newEdit[1].Text='') and (newEdit[3].Text='')

and (newEdit[6].Text='') then

begin

x:=strtoint(NewEdit[2].Text);

for i:=1 to 50 do

for j:=1 to 50 do

for k:=1 to 50 do

if (j+x=k) and (k+j=i) and (k+x=j+i)

and ((x=1) or (i=1) or (j=1) or (k=1)) then

begin

newEdit[6].SetFocus;

newEdit[6].color:=ClGray;

newEdit[10].Color:=ClGray;

NewEdit[6].Text:=inttostr(i);

label1.Caption:='Вы использовали подсказку!';

exit;

end

Else

label1.caption:='Масса пятигранника не может быть равна'+' '+newEdit[2].Text;

end

else

if (newEdit[3].Text<>'') and (newEdit[2].Text='') and (newEdit[1].Text='')

and (newEdit[6].Text='') then

begin

x:=strtoint(NewEdit[3].Text);

for i:=1 to 50 do

for j:=1 to 50 do

for k:=1 to 50 do

if (j+k=x) and (x+j=i) and (x+k=i+j)

and ((x=1) or (i=1) or (j=1) or (k=1)) then

begin

newEdit[6].SetFocus;

newEdit[6].color:=ClGray;

newEdit[10].Color:=ClGray;

NewEdit[6].Text:=inttostr(i);

label1.Caption:='Вы использовали подсказку!';

exit;

end

Else

label1.caption:='Масса шестигранника не может быть равна'+' '+newEdit[3].Text;

end

else

Label1.Caption:='Подсказка на данном уровне решения невозможна!';

end;

end;

end;

 

procedure TForm1.N3Click(Sender: TObject);

begin

form1.Visible:=false; //скрыть 1 форму

form3.show; //открыть форму авторешения

end;

 

procedure TForm1.N9Click(Sender: TObject);

begin

shellExecute(handle,'open','help\help.chm',nil,nil,SW_SHOW); //открытие файла справки

end;

 

procedure TForm1.N10Click(Sender: TObject);

begin

form4.Show; //показать сведения о программе и разработчике

end;

 

procedure TForm1.Timer1Timer(Sender: TObject);

begin

mytime:=mytime+1; //счетчик таймера

label3.Caption:=inttostr(mytime); //запись в лебел занчения таймера

end;

 

end.

 

 

 

 

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-01-08 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: