LG Betaplus
Code: Alles auswählen
procedure start();
procedure aufloesen();
function exis(a:array of integer; c:integer):boolean;
procedure pruefe();
function zf(c:tImage):integer;
procedure eingabe();
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
kom:array[1..4] of TImage; //richtige kombination
pkom:array[1..4] of TImage; //letzte (vom "Rater") eingegebene Kombination
zkom:array[1..4] of integer;
z:integer; //Zahl des aktuellen Zuges
f:array[1..32] of Timage; //Bilder für den rater
g:array[1..32] of Timage; //Bilder für die "Rückmeldestecker"
win:boolean; //ist das spiel gewonnen oder nicht?
col:array[1..6] of TImage; //Mögliche Farben;
zcol:array[1..6] of integer;
X:integer;
e:array[1..6] of TImage;
L:integer;
a:array[1..4] of integer; //Hilfsarray, "editierbare" Kopie von kom
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.erzeugen(); //zufällige zusammensetzung, mehrfachnennungen möglich
var i,k:integer;
begin
randomize;
for i:=1 to 6 do
begin
zcol[i]:=i;
end;
for i:=1 to 4 do //lege die richtige kombination fest
begin
k:=random(5)+1; //ich gehe hier davon aus, dass du 6 farben verwendest, es geht jede zahl
zkom[i]:=zcol[k];
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Memo1.Visible:=true;
Memo1.Lines.Clear; //alle Zeilen von Memo1 löschen
Memo1.Lines.Add('1.Spiel starten'); //Zeile hinzufügen
Memo1.Lines.Add('2.Farbkombination wählen');
Memo1.Lines.Add('3.Zug beenden');
end;
procedure TForm1.start(); //Die Bilder werden zur erleichterten arbeit in ein feld eingelesen
var h:integer;
begin
Memo1.Visible:=false;
E[1]:=Image69;
E[2]:=Image70;
E[3]:=Image71;
E[4]:=Image72;
E[5]:=Image73;
E[6]:=Image74;
for h:=1 to 6 do
begin
E[h].visible:=true;
end;
f[1]:=Image1;
f[2]:=Image2;
.
.
f[31]:=Image31;
f[32]:=Image32;
for h:=1 to 32 do; //alle Bilder werden am anfang als leer angezeigt
begin
f[h].visible:=true;
f[h].picture.loadfromfile('weiss.jpg');
end;
g[1]:=Image37;
g[2]:=Image38;
.
.
g[30]:=Image66;
g[31]:=Image67;
g[32]:=Image68;
for h:=1 to 32 do; //alle Bilder werden am anfang als leer angezeigt
begin
g[h].visible:=true;
g[h].picture.loadfromfile('weiss.jpg');
end;
z:=1; //Zugzahl wird auf eins gesetzt
erzeugen(); //erzeugen einer zufälligen kombination
win:=false; // das spiel ist noch nicht beendet!
end;
procedure TForm1.aufloesen(); //erzeugte kombination kom in die Bilder laden
begin
case(zkom[1]) of
1: begin image33.picture.loadfromfile('black.jpg'); end; /
2: begin image33.picture.loadfromfile('green.jpg'); end;
3: begin Image33.picture.loadfromfile('purple.jpg'); end;
4: begin Image33.picture.loadfromfile('red.jpg'); end;
5: begin Image33.picture.loadfromfile('blue.jpg'); end;
6: begin Image33.picture.loadfromfile('yellow.jpg'); end;
end;
case(zkom[2]) of
1: begin image34.picture.loadfromfile('black.jpg'); end;
2: begin image34.picture.loadfromfile('green.jpg'); end;
3: begin Image34.picture.loadfromfile('purple.jpg'); end;
4: begin Image34.picture.loadfromfile('red.jpg'); end;
5: begin Image34.picture.loadfromfile('blue.jpg'); end;
6: begin Image34.picture.loadfromfile('yellow.jpg'); end;
end;
case(zkom[3]) of
1: begin image35.picture.loadfromfile('black.jpg'); end;
2: begin image35.picture.loadfromfile('green.jpg'); end;
3: begin Image35.picture.loadfromfile('purple.jpg'); end;
4: begin Image35.picture.loadfromfile('red.jpg'); end;
5: begin Image35.picture.loadfromfile('blue.jpg'); end;
6: begin Image35.picture.loadfromfile('yellow.jpg'); end;
end;
case(zkom[4]) of
1: begin image36.picture.loadfromfile('black.jpg'); end;
2: begin image36.picture.loadfromfile('green.jpg'); end;
3: begin Image36.picture.loadfromfile('purple.jpg'); end;
4: begin Image36.picture.loadfromfile('red.jpg'); end;
5: begin Image36.picture.loadfromfile('blue.jpg'); end;
6: begin Image36.picture.loadfromfile('yellow.jpg'); end;
end;
end;
function TForm1.exis(a:array of integer; c:integer):boolean;
var h:integer;
e:boolean;
begin
e:=false;
for h:=0 to high(a) do
begin
if(a[h]=c)then begin e:=true; a[h]:=7; end;
end;
result:=e;
end;
procedure TForm1.pruefe();
var h:integer;
begin
for h:=1 to 4 do
begin
a[h]:=zkom[h];
end;
for h:=(1+4*(z-1)) to (1+4*(z-1)+3) do
begin
if(exis(a,zf(f[h]))=true)then
begin
g[h].picture.loadfromfile('red.jpg');
end;
if(zf(f[h])=zkom[h MOD 4])then
begin
g[h].picture.loadfromfile('black.jpg');
end;
end;
end;
procedure TForm1.eingabe();
begin
case(x) of
1:F[l].picture.loadfromfile('black.jpg');
2:F[l].picture.loadfromfile('green.jpg');
3:F[l].picture.loadfromfile('purple.jpg');
4:F[l].picture.loadfromfile('red.jpg');
5:F[l].picture.loadfromfile('blue.jpg');
6:F[l].picture.loadfromfile('yellow.jpg');
end;
end;
function Tform1.zf(c:Timage):integer;
var h:integer;
begin
if(c.picture=Image69.picture)then
begin h:=1; end;
if(c.picture=Image70.picture)then
begin h:=2 end;
if(c.picture=Image71.picture)then
begin h:=3 end;
if(c.picture=Image72.picture)then
begin h:=4 end;
if(c.picture=Image73.picture)then
begin h:=5 end;
if(c.picture=Image74.picture)then
begin h:=6 end;
result:=h;
end;
end.