unit List_Random2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Edit1: TEdit; Label5: TLabel; Edit2: TEdit; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; Label11: TLabel; Label12: TLabel; Label13: TLabel; Label14: TLabel; Label15: TLabel; procedure Edit1KeyPress(Sender: TObject; var Key: Char); procedure Edit2KeyPress(Sender: TObject; var Key: Char); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation procedure success; label bye; var N: boolean; //цифра, выбранная игроком S: integer; //величина ставки R: boolean; //случайная цифра, загаданная компьютером Z: integer; //количество монет у игрока K: integer; //количество сделанных ходов begin Z:=StrToInt(Form1.Label3.Caption); K:=StrToInt(Form1.Label12.Caption); S:=StrToInt(Form1.Edit2.Text); if S>Z then begin MessageDlg('Вы взали слишком большую ставку', mtError, [mbOk],0); Form1.Edit2.Text:=''; Form1.Edit2.SetFocus; goto bye; end; if S=0 then begin MessageDlg('Ставка должна быть больше нуля', mtError, [mbOk],0); Form1.Edit2.Text:=''; Form1.Edit2.SetFocus; goto bye; end; if StrToInt(Form1.Edit1.Text)= 1 then begin N:=True; Form1.Label9.Caption:='1' end else begin N:=False; Form1.Label9.Caption:='0' end; if Random(2) = 1 then begin R:=True; Form1.Label7.Caption:='1' end else begin R:=False; Form1.Label7.Caption:='0' end; if N=R then begin Form1.label10.Caption:='Поздравляем! Вы угадали и выиграли 1 ставку'; Z:=Z+S end else begin Form1.label10.Caption:='К сожалению, Вы не угадали и проиграли 1 ставку'; Z:=Z-S end; K:=K+1; Form1.Label12.caption:=IntToStr(K); Form1.Label3.caption:=IntToStr(Z); Form1.Label12.caption:=IntToStr(K); if Z=0 then Form1.label13.Caption:= 'Игра окончена. Вы проиграли. У Вас нет больше монет'; bye: end; {$R *.dfm} procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin // Key - символ, соответствующий нажатой клавише. // Если символ недопустимый, то процедура заменяет его // на символ с кодом 0. В результате этого символ в поле // редактирования не появляется и у пользователя создается // впечатление, что программа не реагирует на нажатие некоторых // клавиш. if length(Form1.Edit1.Text)>0 then case Key of #8 : ; // #13: Edit2.SetFocus; // остальные символы - запрещены else Key :=Chr(0); // символ не отображать end else case Key of '0','1': ; // цифра 0 или 1 #8 : ; // #13: Edit2.SetFocus; // остальные символы - запрещены else Key :=Chr(0); // символ не отображать end; end; procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char); begin // Key - символ, соответствующий нажатой клавише. // Если символ недопустимый, то процедура заменяет его // на символ с кодом 0. В результате этого символ в поле // редактирования не появляется и у пользователя создается // впечатление, что программа не реагирует на нажатие некоторых // клавиш. case Key of '0'..'9': ; // цифра #8 : ; // #13 : success; //начать игру // остальные символы - запрещены else Key :=Chr(0); // символ не отображать end; end; begin Randomize(); end.