- •Анотація
- •Розділ і .Правила гри «Бики та корови » та засоби їх реалізації в мові програмування Delphi .
- •1.1 Правила гри
- •1.2 Опис засобів реалізації гри Рядки
- •Цикли for ... To ... Do
- •Властивості Panel
- •Розділ іі .Дослідження складності стратегій гри для чисел з різною кількістю цифр.
- •2.1 Порівняння ігор «Бики та корови » і «Mastermind»
- •Розділ іі. Сутність та реалізація гри «Бики та корови»
- •3.2 Реалізація гри «Бики та корови»
- •Висновки
- •Використовувана література
Розділ іі. Сутність та реалізація гри «Бики та корови»
Основні інструменти середовища Delphi для реалізації гри
Для реалізації гри «Бики та корови» було використано такі компоненти інтерфейсу та їх властивості (за допомогою меню Object Inspector):
Об’єкт |
Властивість |
Form1, |
.Caption . |
Form1.Label 1-18 |
.Caption, Font |
Form1.Button 1-9 |
.Height .Width ,Font Caption |
Form1.Edit 1-4 |
Text, Caption , Clear, Visible. |
Form1.Panel 1-7 |
Visible, Caption, Color |
3.2 Реалізація гри «Бики та корови»
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
ch,ch2: string;
s,a,a1: integer;
implementation
uses Unit2, Unit3, Unit4;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
panel4.Visible:=true;
s:=1;
a:=0;
a1:=0;
label8.Visible:=false;
label6.Visible:=false;
label7.Visible:=false;
edit1.Visible:=false;
button1.Visible:=false;
end;
procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
s1,s2:string;
k:boolean;
begin
k:=true;
s1:='';
s2:=edit2.text;
if (edit2.Text<>'') and (length(edit2.Text) = 4) then//Перевірка вводу букв та перевірка на повторення цифр в числі
begin
for i:=1 to 4 do begin
if (Pos(s2[i],'1234567890') <> 0) and (Pos(s2[i],s1) =0 ) then// Фільтрує ввід пустого числа та контролює довжину числа до 4 цифр.
s1:=s1+s2[i]
else k:=false; end;
if k = true then begin
ch:=edit2.Text;//Глобальна змінна загараного числа 1 гравця
panel4.Visible:=false;
panel5.Visible:=true;
label6.Visible:=true;
label5.Caption:='';
end
elselabel5.Caption:=' не правильно введене число;end
else
label5.Caption:= не правильно введене число;
end;
procedure TForm1.Button3Click(Sender: TObject);
var i:integer;
s1,s2:string;
k:boolean;
begin
k:=true;
s1:='';
s2:=edit3.text;
if (edit3.Text<>'') and (length(edit3.Text) = 4) then
begin
for i:=1 to 4 do begin
if (Pos(s2[i],'1234567890') <> 0) and (Pos(s2[i],s1) =0 ) then// Фільтрує ввід пустого числа та контролює довжину числа до 4 цифр.
s1:=s1+s2[i]
else k:=false; end;
if k = true then begin
ch2:=edit3.Text; ;//Глобальна змінна загараного числа 2 гравця
panel5.Visible:=false;
label7.Visible:=true;
edit1.Visible:=true;
button1.Visible:=true;
label6.Caption:='';
endelselabel6.Caption:= не правильно введене число;end
else
label6.Caption:=не правильно введене число!;
end;
procedure TForm1.Button1Click(Sender: TObject);
var i,x,y:integer;
v1,s1:string;
k:boolean;
begin
x:=0;
y:=0;
v1:=edit1.text;
k:=true;
if (edit1.Text<>'') and (length(edit1.Text) = 4) then// Фільтрує ввід пустого числа та контролює довжину числа до 4 цифр.
begin
for i:=1 to 4 do begin
if(Pos(v1[i],'1234567890') <> 0)and(Pos(v1[i],s1) =0 )then//Перевірка вводу букв та перевірка на повторення цифр в числі
s1:=s1+v1[i]
else k:=false; end;
if k = true then begin
for i:=1 to 4 do
begin
if v1[i]=ch2[i] then
x:=x+1;
end;
a:=a+1;
if x = 4 then
label5.Caption:='Ви виграли за '+inttostr(a)+' х³д';
for i:=1 to 4 do
begin
if (v1[i]<>ch2[i]) and (pos(ch2[i],v1)<>0) then
inc(y);
end;
label3.Caption:='Ó âàñ '+inttostr(x)+' áèê³â ³ '+inttostr(y)+' êîð³â';
memo1.Lines.Add(v1+' '+inttostr(x)+' b '+inttostr(y)+' k');
edit1.clear;
edit1.visible:=false;
button1.Visible:=false;
edit4.visible:=true;
button4.Visible:=true;
label8.Visible:=true;
end;
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
var i,x,y:integer;
v1,s1:string;
k:boolean;
begin
k:=true;
x:=0;
y:=0;
v1:=edit4.text;
if (edit4.Text<>'') and (length(edit4.Text) = 4) then begin// Фільтрує ввід пустого числа та контролює довжину числа до 4 цифр.
for i:=1 to 4 do begin
if(Pos(v1[i],'1234567890') <> 0)and(Pos(v1[i],s1) =0 )then//Перевірка вводу букв та перевірка на повторення цифр в числі
s1:=s1+v1[i]
else k:=false; end;
if k = true then begin
for i:=1 to 4 do//Пошук биків
begin
if v1[i]=ch[i] then
x:=x+1;
end;
a1:=a1+1;
if x = 4 then
label6.Caption:= «Ви виграли!»;
for i:=1 to 4 do//Пошук корів
begin
if (v1[i]<>ch[i]) and (pos(ch[i],v1)<>0) then
inc(y);
end;
label4.Caption:=У вас '+inttostr(x)+' биків '+inttostr(y)+' корів';
memo2.Lines.Add(v1+' '+inttostr(x)+' b '+inttostr(y)+' k');
edit4.clear;
edit4.visible:=false;
button4.Visible:=false;
edit1.visible:=true;
button1.Visible:=true;
end;
end;
end;
procedure TForm1.Button5Click(Sender: TObject);//Кнопка використовується для ночатку нової гри.
begin
memo1.Clear;
memo2.Clear;
edit4.Clear;
edit3.Clear;
edit2.Clear;
edit1.Clear;
label7.caption:='';
label4.caption:='';
label3.caption:='';
label5.visible:=true;
label8.caption:='';
label6.caption:='';
edit1.Visible:=false;
button1.Visible:=false;
edit4.Visible:=false;
button4.Visible:=false;
panel5.Visible:=false;
panel4.Visible:=true;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
panel7.Visible:=true;
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
panel7.Visible:=false;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
panel6.Visible:=false;
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
panel6.Visible:=true;
end;
end.