Процедуры формы 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; просмотров: 962;