![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Процедуры формы 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;
|