jedoch bekomme ich einen Fehler bei dem mir selbst meine Lehrerin nicht helfen kann.
Jetzt mal schauen ob ihr schlauer seid xD
Code: Alles auswählen
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls,
Menus;
type
{ TForm1 }
TForm1 = class(TForm)
btn_start: TButton;
btn_passen: TButton;
btn_erhoehen: TButton;
btn_Mitgehen: TButton;
btn_hilf2: TButton;
btn_hilf1: TButton;
img_Karte1: TImage;
Img_Karte2: TImage;
Img_Karte3: TImage;
Img_Karte4: TImage;
Img_Karte5: TImage;
Img_Karte6: TImage;
Img_Karte7: TImage;
img:TImage;
lbl_aPlayer: TLabel;
procedure Aufdecken(Sender: TObject);
procedure Spiel(Sender: TObject);
procedure Spielzug(Sender: TObject);
private
public
end;
var
Form1: TForm1;
Spielerdaten:Array[1..4,1..9] of Integer;
Karten: Array[1..4,1..13] of integer;
Tischkarten: Array[1..5,1..2] of Integer;
Spielkarten: Array[1..7] of String;
B,I,j,x,y,Player_Anzahl,T,T2,T3,o,AktiverSpiel,highPott,Pott,q,btnAbfrage,KartenAufgedeckt,Karo,Herz,pik,Kreuz,RF:Integer;
implementation
{$R *.lfm}
{ TForm1 }
procedure Austeilen();
begin
randomize;
For i:=1 to 4 do
begin
For j:=1 to 13 do
begin
Karten[i,j]:= 1; //Alle Karten bekommen den Wert 1
end;
end;
For i:=1 to 4 do
begin
Spielerdaten[i,1]:= 1; //Player Value wird auf 1 gesetzt
end;
For i := 1 to 4 do
begin //Karte 1 1 ist z.B. Kreuz 2
For j := 1 to 2 do //Karte 1 1 ist z.B. Kreuz 3 usw
begin
o:=0;
while o =0 do
begin
x:=random(3)+1;
Y:=random(12)+1;
If Karten[x,y] = 1 then //Jede Karte hat anfangs den wert 1, wenn die Karte benutz wird wird dieser auf 0 gesetzt was bedeutet das die karte bereits im spiel ist
begin
Spielerdaten[j,2]:=x; //jedem spieler werden 2 Karten zugewisen
Spielerdaten[j,3]:=y;
Karten[x,y]:= 0;
o:=1;
end;
end;
end;
end;
For i := 1 to 5 do
begin
o:=0;
while o =0 do
begin
x:=random(3)+1;
Y:=random(12)+1;
If Karten[x,y] = 1 then
begin
Tischkarten[i,1]:=x; //Tischkarten werden zugeteilt
Tischkarten[i,2]:=y;
Karten[x,y]:=0;
o:=1;
end;
end;
end;
end;
procedure TForm1.Aufdecken(Sender: TObject);
begin
Spielkarten[KartenAufgedeckt]:=inttostr(Tischkarten[1,1])+inttostr(Tischkarten[1,2]); //Spielkarte wird als string definiert
img:=(FindComponent('img_karte'+inttostr(KartenAufgedeckt))as TImage);
[color=#FF0000] img.Picture.LoadFromFile('../Bilder/'+Spielkarten[KartenAufgedeckt]+'.jpg');[/color] //TImage(KartenAufgedeckt) bekommt den entsprechenden wert zugewisen
end;
procedure Auswertung();
begin
end;[color=#FF0000][/color]
procedure TForm1.Spielzug(Sender: TObject);
begin
showMessage('Spieler '+inttostr(AktiverSpiel)+' ist dran!');
Spielkarten[1]:=inttostr(Spielerdaten[AktiverSpiel,2])+inttostr(Spielerdaten[AktiverSpiel,3]); //Auslesen der Karten aus dem Spielerprofiel
Spielkarten[2]:=inttostr(Spielerdaten[AktiverSpiel,4])+inttostr(Spielerdaten[AktiverSpiel,5]);
img_Karte1.Picture.LoadFromFile('../Bilder/'+Spielkarten[1]+'.jpg');
img_karte2.picture.loadfromfile('../Bilder/'+Spielkarten[2]+'.jpg');
showMessage('TTTEst');
If Spielerdaten[AktiverSpiel,8] < highPott then //Pott höher als das was gesetzt wurde
begin
btn_mitgehen.Visible:=true;
btn_passen.Visible:=true;
btn_erhoehen.visible:=true;
end;
If Spielerdaten[AktiverSpiel,7] = 1 then //Spieler hat bereits erhöt
begin
btn_mitgehen.Visible:=true;
btn_passen.Visible:=true;
end;
while btnAbfrage=0 do
begin
case btnAbfrage of //Aktion des Spieler
1:begin //passen
If highPott > Spielerdaten[AktiverSpiel,7] then
begin
Spielerdaten[AktiverSpiel,1]:=0
end; //else nächster Spieler
end;
2:begin
//pop up ok ?
Pott:=(highPott-Spielerdaten[AktiverSpiel,8])+Pott; //mitgehen
Spielerdaten[AktiverSpiel,1]:=highpott;
end;
3:; //erhöhen
end;
end;
end;
procedure TForm1.Spiel(Sender: TObject);
begin
Austeilen();
Player_Anzahl:=4;
For KartenAufgedeckt:=3 to 7 do
begin
If Player_Anzahl > 1 then
begin
For AktiverSpiel:=q to 4 do //wenn spieler erhöt wird wieder auf 2 gesetz
begin
If Spielerdaten[AktiverSpiel,1] =1 then
Spielzug(nil);
end;
end;
Aufdecken(nil);
end;
If Player_Anzahl= 1 then
//letzer spieler bekommt den Pott
else
Auswertung()
end;
end.
untendrunter steht die Zeile die ich euch markiert habe.Project project1 hat Exception-Klasse >External:SIGSEGV<ausgelöst