Процедуры формы Form1 (модуль Unit1)

var Form1: TForm1; f,b,p,s,e: string; z,c,i,k,y,x,t,a,g,w,u: integer; //объявления

procedure TForm1.Button1Click(Sender: TObject); // кнопка «Выход»

begin close; end;

procedure TForm1.Button3Click(Sender: TObject); // кнопка «Загадать»

begin Form2.Show; //показ формы для ввода пароля

Form1.Visible:=false; //скрытие формы Поле Чудес

Button3.Visible:=false; //скрытие кнопки «Загадать»

Button4.Visible:=true; //визуализация кнопки «Назвать слово «

Button5.Visible:=true; // визуализация кнопки «Вращать барабан»

Button6.Visible:=true; // визуализация кнопки «Подтвердите»

Label2.Visible:=true; //становятся видимыми надписи

Label4.Visible:=true;

Label5.Visible:=true; Label5.Caption:=Label5.Caption+'0';

Label6.Visible:=true; Label6.Caption:=Label6.Caption+'0';

Edit1.Visible:=true; //визуализация поля для ввода буквы

Edit1.Enabled:=false; //и его блокировка

end;

procedure TForm1.Button4Click(Sender: TObject);//кнопка»Назвать слово» begin Edit2.Visible:=true; //делает видимым поле для ввода слова

Edit2.SetFocus; //и передает ему фокус

Button2.Visible:=true;

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

Button5.Enabled:=false; //блокировка кнопки Вращать барабан

Randomize;z:=Random(100) ; //выбирается произвольное число из 100

i:=i+1; //в переменной считается количество поворотов

If i<z then

begin Series1.RotationAngle:=Series1.RotationAngle+5 ; //поворот диаграммы

t:=t+5;

end //запоминание угла поворота

else begin

case g of // переменная g показывает, кто сделал ход

1: begin // проверяет, какой сектор выпал и производит

case t of // соответствующие действия

316..359: begin Label4.Caption:='Игрок 2, Ваш ход' ;

Button5.Enabled:=true; Edit1.Enabled:=false; i:=-1; end;

// переменная i – это флаг, указывающий на то, что выпал

// сектор «Переход хода» и не надо суммировать очки

271..315: x:=x*2; 226..270: x:=x*4; 181..225: x:=x+500;

136..180: x:=x+750; 91..135: x:=x+100; 46..90: x:=x+250;

0..45: x:=x+1000;

end; if i<>-1 then

begin e:=inttostr(x); Label5.Caption:='Игрок1, Ваш выигрыш - '+e;

//перевод количества набранных очков в строку для вывода ее на форму

end;

end;

2: begin

case t of

316..359: begin Edit1.Enabled:=false;

Label4.Caption:='Игрок 1, Ваш ход'; Button5.Enabled:=true; i:=-1; end;

271..315: y:=y*2; 226..270: y:=y*4; 181..225: y:=y+500;

136..180: y:=y+750; 91..135: y:=y+100; 46..90: y:=y+250;

0..45: y:=y+1000;

end;

if i<>-1 then

begin e:=inttostr(y);Label6.Caption:='Игрок2, Ваш выигрыш - '+e; end;

end;

end; Timer1.Enabled:=false; // блокировка таймера

end;

Series1.Clear; // удаление диаграммы

With Series1 do

begin add(10,'100 очков',clWhite); // перерисовывает

add(10,'750 очков',clRed);// диаграмму, повернув ее на 5 град.

add(10,'1000 очков',clGreen); add(10,'250 очков',clYellow);

add(10,'*2',clBlue); add(10,'ПЕРЕХОД ХОДА',clSilver);

add(10,'500 очков',clFuchsia); add(10,'*4',clLime);

end;

end;

procedure TForm1.Edit1Change(Sender: TObject);

begin Button5.Enabled:=false; Button6.enabled:=true;

// блокировка кнопок "Вращать барабан" и «Подтвердите выбор»

end;

procedure TForm1.Button5Click(Sender:TObject);//кноп. «Вращать барабан»

begin if Label4.Caption='Игрок 1, Ваш ход'

then g:=1else g:=2; // запоминает, кто из игроков делает ход

Button4.Enabled:=true; Edit1.Enabled:=true;

Edit1.SetFocus; // устанавливает курсор в поле для ввода буквы

Timer1.Enabled:=true; // делает активным таймер

Edit1.Text:=''; // очищает поле ввода буквы

end;

procedure TForm1.Button2Click(Sender: TObject); //кнопка «Подтвердите»

begin Edit2.Visible:=false; // делает невидимым поле для ввода слова

Edit1.Enabled:=true; // разблокировка объектов

s:=Edit2.Text; // запоминается введенное слово

i:= AnsiCompareText(f,s); // сравнение загаданного и введенного слов

if i=0 then // действия при вводе игроком верного ответа

begin Label3.Caption:='ВЫ УГАДАЛИ !!!'; Edit1.enabled:=false;

Label4.Caption:=''; Button5.Enabled:=false; Button2.Enabled:=false;

end

else if a=0 then begin // a=0, если еще никто не пытался назвать слово

Button4.Enabled:=true;

if g=1 then //действия при вводе игроком1 неверного ответа

begin Label3.Caption:='Игрок 1, Вы ошиблись' ;

Label4.Caption:='Игрок 2, Вы должны назвать слово';

Edit2.Visible:=true;

Edit2.Text:=''; Button5.Enabled:=false;

Edit2.SetFocus; a:=a+1;

end

else if g=2 then

// действия при вводе игроком2 неверного ответа

begin Label3.Caption:='Игрок 2, Вы ошиблись' ;

Label4.Caption:='Игрок 1, Вы должны назвать слово';

Edit2.Visible:=true; Edit2.Text:=''; Button5.Enabled:=false;

Edit2.SetFocus; a:=a+1;

end;

end

else // если один из игроков ввел неверное слово, то выводится

// сообщение об ошибке и другому предлагается назвать слово

begin Label4.Visible:=false; Edit2.Enabled:=false;

Button5.Enabled:=false;

if Label4.Caption='Игрок 1, Вы должны назвать слово' then

Label3.Caption:='Игрок 1, Вы ошиблись, игра окончена'

else if Label4.Caption='Игрок 2, Вы должны назвать слово' then

Label3.Caption:='Игрок 2, Вы ошиблись, игра окончена' ;

end;

end;

procedure TForm1.Button6Click(Sender: TObject); //кнопка «Подтвердите»

begin f:=Form3.Edit1.Text; c:=Length(f); w:=0;

b:=Edit1.Text; // запоминается введенная буква

b:=AnsiLowerCase(b); // возвращается буква в нижнем регистре

for i:=1 to c do // в цикле введенная буква сравнивается с i-й буквой слова

begin p:=Copy(f,i,1); // возвращает i-ю букву загаданного слова

p:=AnsiLowerCase(p); // возвращается буква в нижнем регистре

if p=b then

begin u:=u+1; // в переменной считается количество угаданных букв

w:=w+1; // в переменной считается, сколько раз

// введенная буква встречается в слове

case i of // вывод угаданной буквы

1: Statictext1.Caption:=b; 2: Statictext2.Caption:=b;

3: Statictext3.Caption:=b; 4: Statictext4.Caption:=b;

5: Statictext5.Caption:=b; 6: Statictext6.Caption:=b;

7: Statictext7.Caption:=b; 8: Statictext8.Caption:=b;

9: Statictext9.Caption:=b; 10: Statictext10.Caption:=b;

end;

end

end;

Edit1.Enabled:=false; Button5.Enabled:=true;

If w<>0 then

begin if g=1 then // умножение набранных очков, если буква // в слове встречается более одного раза

begin x:=x*w; e:=inttostr(x) ;

Label5.caption:='Игрок1, Ваш выигрыш - '+e;

end

else if g=2 then

begin y:=y*w; e:=inttostr(y) ;

Label6.caption:='Игрок2, Ваш выигрыш - '+e ;

end

end // если буква названа неверно, то ход передается другому игроку

else if Label4.Caption='Игрок 1, Ваш ход'

then Label4.Caption:='Игрок 2, Ваш ход'

else Label4.Caption:='Игрок 1, Ваш ход';

if u=c then

begin Label3.Caption:='ВЫ УГАДАЛИ !!!' ; Label4.Visible:=false;

Button4.Enabled:=false; Button5.Enabled:=false;

end;

Button6.Enabled:=false;

// если количество угаданных букв совпадает с длиной слова, то

// выводится «ВЫ УГАДАЛИ !!!» и блокируются все объекты, кроме «Выход»

end;

procedure TForm1.Edit2Change(Sender: TObject);

begin Button4.Enabled:=false;// при вводе слова блокируются

Edit1.Enabled:=false;// кнопка «Назвать слово» и поле для ввода буквы

end;

procedure TForm1.FormCreate(Sender: TObject);

begin x:=0; y:=0; w:=0; a:=0;

With Series1 do

begin // прорисовка барабана

add(10,'100 очков',clWhite); add(10,'750 очков',clRed);

add(10,'1000 очков',clGreen); add(10,'250 очков',clYellow);

add(10,'*2',clBlue); add(10,'ПЕРЕХОД ХОДА',clSilver);

add(10,'500 очков',clFuchsia); add(10,'*4',clLime);

end;

end;








Дата добавления: 2016-03-22; просмотров: 954;


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

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.025 сек.