Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit Laba4_3;
- interface
- uses
- Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
- Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls;
- type
- TArr = array[0..5] of char;
- TForm1 = class(TForm)
- Panel1: TPanel;
- Panel2: TPanel;
- Panel3: TPanel;
- Panel4: TPanel;
- Panel5: TPanel;
- Panel6: TPanel;
- Panel7: TPanel;
- Panel8: TPanel;
- Panel9: TPanel;
- Panel10: TPanel;
- Panel11: TPanel;
- Panel12: TPanel;
- Panel13: TPanel;
- Panel14: TPanel;
- Panel15: TPanel;
- Panel16: TPanel;
- Panel17: TPanel;
- Panel18: TPanel;
- procedure findResult();
- procedure twoKub(var kub1 : TArr;var kub2: TArr; var counter2 : byte);
- procedure threeKub(var kub2 : TArr;var kub3: TArr;var counter2 : byte;var counter3 : byte);
- procedure fourKub(var kub3: TArr;var kub4: TArr;var counter3 : byte;var counter4 : byte);
- procedure FormCreate(Sender: TObject);
- procedure initialArr(var kub1 : TArr;var kub2 : TArr;var kub3 : TArr;var kub4 : TArr;var counter2 : byte;var counter3 : byte;var counter4 : byte);
- procedure drowPanel(kub1 : TArr;kub2 : TArr;kub3 : TArr;kub4 : TArr);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
- var
- Form1: TForm1;
- counter2,counter3, counter4 : byte;
- kub1, kub2, kub3, kub4 : TArr;
- implementation
- {$R *.dfm}
- // g - green b - blue w - white r - red
- procedure TForm1.FormCreate(Sender: TObject);
- begin
- initialArr(kub1,kub2,kub3,kub4,counter2,counter3,counter4);
- findResult;
- end;
- procedure TForm1.fourKub(var kub3 : TArr;var kub4: TArr;var counter3 : byte;var counter4 : byte);
- var
- i : byte;
- temp : char;
- flag, flag2 : boolean;
- begin
- flag := false;
- flag2 := false;
- i := 1;
- while not flag and (counter4 < 6) do
- begin
- while not flag2 and (i < 5) do
- begin
- if (kub1[i] <> kub4[i]) and (kub2[i] <> kub4[i]) and (kub3[i] <> kub4[i]) then
- inc(i)
- else
- flag2 := true;
- end;
- if flag2 then
- begin
- temp := kub4[0];
- for i := 0 to 4 do
- kub4[i] := kub4[i + 1];
- kub4[5] := temp;
- inc(counter4);
- flag2 := false;
- i := 1;
- end
- else
- flag := true;
- end;
- if not flag then
- begin
- temp := kub3[0];
- for i := 0 to 4 do
- kub3[i] := kub3[i + 1];
- kub3[5] := temp;
- inc(counter3);
- counter4 := 1;
- threeKub(kub2,kub3,counter2,counter3);
- end;
- end;
- procedure TForm1.threeKub(var kub2 : TArr;var kub3: TArr;var counter2 : byte;var counter3 : byte);
- var
- i : byte;
- temp : char;
- flag, flag2 : boolean;
- begin
- flag := false;
- flag2 := false;
- i := 1;
- while not flag and (counter3 < 6) do
- begin
- while not flag2 and (i < 5) do
- begin
- if (kub2[i] <> kub3[i]) and (kub3[i] <> kub1[i]) then
- inc(i)
- else
- flag2 := true;
- end;
- if flag2 then
- begin
- temp := kub3[0];
- for i := 0 to 4 do
- kub3[i] := kub3[i + 1];
- kub3[5] := temp;
- inc(counter3);
- flag2 := false;
- i := 1;
- end
- else
- flag := true;
- end;
- if flag then
- fourKub(kub3,kub4,counter3,counter4)
- else
- begin
- temp := kub2[0];
- for i := 0 to 4 do
- kub2[i] := kub2[i + 1];
- kub2[5] := temp;
- inc(counter2);
- counter3 := 1;
- twoKub(kub1,kub2,counter2);
- end;
- end;
- procedure TForm1.twoKub(var kub1 : TArr;var kub2: TArr;var counter2 : byte);
- var
- i : byte;
- temp : char;
- flag, flag2 : boolean;
- begin
- flag := false;
- flag2 := false;
- i := 1;
- while not flag and (counter2 < 6) do
- begin
- while not flag2 and (i < 5) do
- begin
- if kub1[i] <> kub2[i] then
- inc(i)
- else
- flag2 := true;
- end;
- if flag2 then
- begin
- temp := kub2[0];
- for i := 0 to 4 do
- kub2[i] := kub2[i + 1];
- kub2[5] := temp;
- inc(counter2);
- flag2 := false;
- i := 1;
- end
- else
- flag := true;
- end;
- if flag then
- threeKub(kub2,kub3,counter2,counter3)
- else
- begin
- temp := kub1[0];
- for i := 0 to 4 do
- kub1[i] := kub1[i + 1];
- kub1[5] := temp;
- counter2 := 1;
- twoKub(kub1,kub2,counter2);
- end;
- end;
- procedure TForm1.drowPanel(kub1 : TArr;kub2 : TArr;kub3 : TArr;kub4 : TArr);
- begin
- if kub1[1] = 'r' then
- Panel1.Color := clRed
- else if kub1[1] = 'g' then
- Panel1.Color := clGreen
- else if kub1[1] = 'w' then
- Panel1.Color := clSilver
- else if kub1[1] = 'b' then
- Panel1.Color := clBlue;
- if kub2[1] = 'r' then
- Panel2.Color := clRed
- else if kub2[1] = 'g' then
- Panel2.Color := clGreen
- else if kub2[1] = 'w' then
- Panel2.Color := clSilver
- else if kub2[1] = 'b' then
- Panel2.Color := clBlue;
- if kub3[1] = 'r' then
- Panel3.Color := clRed
- else if kub3[1] = 'g' then
- Panel3.Color := clGreen
- else if kub3[1] = 'w' then
- Panel3.Color := clSilver
- else if kub3[1] = 'b' then
- Panel3.Color := clBlue;
- if kub4[1] = 'r' then
- Panel4.Color := clRed
- else if kub4[1] = 'g' then
- Panel4.Color := clGreen
- else if kub4[1] = 'w' then
- Panel4.Color := clSilver
- else if kub4[1] = 'b' then
- Panel4.Color := clBlue;
- if kub1[2] = 'r' then
- Panel5.Color := clRed
- else if kub1[2] = 'g' then
- Panel5.Color := clGreen
- else if kub1[2] = 'w' then
- Panel5.Color := clSilver
- else if kub1[2] = 'b' then
- Panel5.Color := clBlue;
- if kub2[2] = 'r' then
- Panel6.Color := clRed
- else if kub2[2] = 'g' then
- Panel6.Color := clGreen
- else if kub2[2] = 'w' then
- Panel6.Color := clSilver
- else if kub2[2] = 'b' then
- Panel6.Color := clBlue;
- if kub3[2] = 'r' then
- Panel7.Color := clRed
- else if kub3[2] = 'g' then
- Panel7.Color := clGreen
- else if kub3[2] = 'w' then
- Panel7.Color := clSilver
- else if kub3[2] = 'b' then
- Panel7.Color := clBlue;
- if kub4[2] = 'r' then
- Panel8.Color := clRed
- else if kub4[2] = 'g' then
- Panel8.Color := clGreen
- else if kub4[2] = 'w' then
- Panel8.Color := clSilver
- else if kub4[2] = 'b' then
- Panel8.Color := clBlue;
- if kub1[3] = 'r' then
- Panel9.Color := clRed
- else if kub1[3] = 'g' then
- Panel9.Color := clGreen
- else if kub1[3] = 'w' then
- Panel9.Color := clSilver
- else if kub1[3] = 'b' then
- Panel9.Color := clBlue;
- if kub2[3] = 'r' then
- Panel10.Color := clRed
- else if kub2[3] = 'g' then
- Panel10.Color := clGreen
- else if kub2[3] = 'w' then
- Panel10.Color := clSilver
- else if kub2[3] = 'b' then
- Panel10.Color := clBlue;
- if kub3[3] = 'r' then
- Panel11.Color := clRed
- else if kub3[3] = 'g' then
- Panel11.Color := clGreen
- else if kub3[3] = 'w' then
- Panel11.Color := clSilver
- else if kub3[3] = 'b' then
- Panel11.Color := clBlue;
- if kub4[3] = 'r' then
- Panel12.Color := clRed
- else if kub4[3] = 'g' then
- Panel12.Color := clGreen
- else if kub4[3] = 'w' then
- Panel12.Color := clSilver
- else if kub4[3] = 'b' then
- Panel12.Color := clBlue;
- if kub1[4] = 'r' then
- Panel13.Color := clRed
- else if kub1[4] = 'g' then
- Panel13.Color := clGreen
- else if kub1[4] = 'w' then
- Panel13.Color := clSilver
- else if kub1[4] = 'b' then
- Panel13.Color := clBlue;
- if kub2[4] = 'r' then
- Panel14.Color := clRed
- else if kub2[4] = 'g' then
- Panel14.Color := clGreen
- else if kub2[4] = 'w' then
- Panel14.Color := clSilver
- else if kub2[4] = 'b' then
- Panel14.Color := clBlue;
- if kub3[4] = 'r' then
- Panel15.Color := clRed
- else if kub3[4] = 'g' then
- Panel15.Color := clGreen
- else if kub3[4] = 'w' then
- Panel15.Color := clSilver
- else if kub3[4] = 'b' then
- Panel15.Color := clBlue;
- if kub4[4] = 'r' then
- Panel16.Color := clRed
- else if kub4[4] = 'g' then
- Panel16.Color := clGreen
- else if kub4[4] = 'w' then
- Panel16.Color := clSilver
- else if kub4[4] = 'b' then
- Panel16.Color := clBlue;
- if kub1[0] = 'r' then
- Panel17.Color := clRed
- else if kub1[0] = 'g' then
- Panel17.Color := clGreen
- else if kub1[0] = 'w' then
- Panel17.Color := clSilver
- else if kub1[0] = 'b' then
- Panel17.Color := clBlue;
- if kub4[0] = 'r' then
- Panel18.Color := clRed
- else if kub4[0] = 'g' then
- Panel18.Color := clGreen
- else if kub4[0] = 'w' then
- Panel18.Color := clSilver
- else if kub4[0] = 'b' then
- Panel18.Color := clBlue;
- end;
- procedure TForm1.findResult;
- begin
- twoKub(kub1,kub2,counter2);
- drowPanel(kub1,kub2,kub3,kub4);
- end;
- procedure TForm1.initialArr(var kub1 : TArr;var kub2 : TArr;var kub3 : TArr;var kub4 : TArr;var counter2 : byte;var counter3 : byte;var counter4 : byte);
- begin
- kub1[0] := 'g'; //gwbbrg
- kub1[1] := 'w';
- kub1[2] := 'b';
- kub1[3] := 'b';
- kub1[4] := 'r';
- kub1[5] := 'g';
- kub2[0] := 'r'; // rwgbrr
- kub2[1] := 'r';
- kub2[2] := 'w';
- kub2[3] := 'g';
- kub2[4] := 'b';
- kub2[5] := 'r';
- kub3[0] := 'w'; // wwggrb
- kub3[1] := 'g';
- kub3[2] := 'r';
- kub3[3] := 'w';
- kub3[4] := 'g';
- kub3[5] := 'b';
- kub4[0] := 'b'; // rwwbgb
- kub4[1] := 'b';
- kub4[2] := 'g';
- kub4[3] := 'r';
- kub4[4] := 'w';
- kub4[5] := 'w';
- counter2 := 1;
- counter3 := 1;
- counter4 := 1;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement