Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Процедуры формы 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;






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.