hallo
Wenns geht, packe bitte das nächste mal mit ZIP, Ace hat auch nich jeder.
also gehen tuts erstemal. aber nimms mir nicht übel - du hast programmiertechnich noch einige Lücken.
Grafisch wären sicherlich noch ein paar Änderungen nötig (das gescannte Image sind nich ganz so gut aus, die Würfel werden nur aus Zahlen dargestellt. Auch sehe ich nirgends, wann/welcher Spieler drann ist
dein Code umfaßt sage und schreibe über 2900 Zeilen 

 . das sind viel zu viele. vor allem weil in vielen Procs immer wieder das selbe gamacht wird.
Auch wirst du später nie wieder durchsehen, wenn du deinen Componenten keine sinnvollen Namen gibst, Weißt du auf anhieb deine 61 Labels und 49 Buttons ?
Du solltest dich trotzdem nochmal mit ein paar Sachen auseinandersetzen: insbesondere Schleifen, Arrays (siehe onlinehilfe und Tutorialseiten, z.B. auf delphi-source
außerdem verwendest du überall real zahlen, obwohl es eigentlcih bloß integer sind
Möglichkeiten, dein Programm anders gestalten gibts viele.
insbesondere mit der Eigenschaft Tag von Buttons (da ist ein Beipiel in der Hilfe), da kann man sich viele Schreibarbeiten ersparen,
z.B. beim übertragen könntest du z.B. den Add-Buttons tags verwenden und beim Klick den Tag des senders abfragen und dann dass entsprechende Label mit der anzeige betrauen oder auch dort ein Stringgrid verwenden oder oder ...
hier ein kurzes Beispiel, wie du z.B. die Sache ein wenig eleganter - wenn du arrays und Schleifen verwendest lösen kannst.
gugg dir insbesondere das testen, wird zwar nicht alles getestet, aber so viele Zeilen wie bei dir sind gar nicht nötig.
der code ist zwar sicherlich nicht das non+ultra, ich hab versucht es sehr einfach zu halten, versuch mal, ob du klar kommst
pack auf dein neues Formular 3 Buttons, 1Stringgrid, 1Label, benenn sie entsprechend meiner Schreibweise und weiß im Objektinspektor beim Onklick-ereignis die jeweilige Clickprocedure zu.
												| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 15:
 16:
 17:
 18:
 19:
 20:
 21:
 22:
 23:
 24:
 25:
 26:
 27:
 28:
 29:
 30:
 31:
 32:
 33:
 34:
 35:
 36:
 37:
 38:
 39:
 40:
 41:
 42:
 43:
 44:
 45:
 46:
 47:
 48:
 49:
 50:
 51:
 52:
 53:
 54:
 55:
 56:
 57:
 58:
 59:
 60:
 61:
 62:
 63:
 64:
 65:
 66:
 67:
 68:
 69:
 70:
 71:
 72:
 73:
 74:
 75:
 76:
 77:
 78:
 79:
 80:
 81:
 82:
 83:
 84:
 85:
 86:
 87:
 88:
 89:
 90:
 91:
 92:
 93:
 94:
 95:
 96:
 97:
 98:
 99:
 100:
 101:
 102:
 103:
 104:
 105:
 106:
 107:
 108:
 109:
 110:
 111:
 112:
 113:
 114:
 115:
 116:
 117:
 118:
 119:
 120:
 121:
 122:
 123:
 124:
 125:
 126:
 127:
 128:
 129:
 130:
 131:
 132:
 133:
 134:
 135:
 136:
 137:
 138:
 139:
 140:
 141:
 142:
 143:
 144:
 145:
 146:
 147:
 148:
 149:
 150:
 151:
 152:
 153:
 154:
 155:
 156:
 157:
 158:
 159:
 160:
 161:
 162:
 163:
 164:
 165:
 166:
 167:
 168:
 169:
 170:
 171:
 172:
 173:
 174:
 175:
 176:
 177:
 178:
 
 | unit Unit3;
 interface
 
 uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, Grids;
 
 type
 TForm3 = class(TForm)
 ButtonNeuWuerfeln: TButton;
 StringGrid_Wuerfel: TStringGrid;
 ButtonTesten: TButton;
 Label1: TLabel;
 ButtonErneutWuerfeln: TButton;
 procedure ButtonNeuWuerfelnClick(Sender: TObject);
 procedure FormCreate(Sender: TObject);
 procedure StringGrid_WuerfelClick(Sender: TObject);
 procedure ButtonTestenClick(Sender: TObject);
 procedure ButtonErneutWuerfelnClick(Sender: TObject);
 private
 
 Wuerfel,      RausgelegteWuerfel: array [1..5] of integer;    Procedure WuerfelAnzeigen;
 Function WuerfelAnzahl(W:integer):integer;
 Function WuerfelPunkte(w:integer):integer;
 public
 
 end;
 
 var
 Form3: TForm3;
 
 implementation
 
 {$R *.dfm}
 procedure TForm3.FormCreate(Sender: TObject);
 Var i:integer;
 begin
 randomize;     for i:=1 to 5 do Wuerfel[i]:=0;
 with StringGrid_Wuerfel do
 begin
 FixedCols := 1;
 FixedRows := 1;
 RowCount:=2;
 ColCount := 6;
 cells[0,1]:='rausgelegt';
 DefaultColWidth := 30;
 ColWidths[0]:=60;
 end;
 end;
 
 procedure TForm3.ButtonNeuWuerfelnClick(Sender: TObject);
 Var I:integer;
 begin
 for i:=1 to 5 do
 begin
 Wuerfel[i]:=random(6)+1;
 RausgelegteWuerfel[i]:=0;
 end;
 WuerfelAnzeigen;
 end;
 
 procedure TForm3.ButtonErneutWuerfelnClick(Sender: TObject);
 Var I:integer;
 begin
 for i:=1 to 5 do
 if Wuerfel[i]<>0 then
 begin
 Wuerfel[i]:=random(6)+1;
 RausgelegteWuerfel[i]:=0;
 end;
 WuerfelAnzeigen;
 end;
 
 procedure TForm3.StringGrid_WuerfelClick(Sender: TObject);
 begin
 with StringGrid_Wuerfel do
 begin
 if col in [1..5] then
 begin
 if Wuerfel[col]<>0 then
 begin
 RausgelegteWuerfel[col]:=Wuerfel[col];
 Wuerfel[col]:=0;
 end;
 end;
 end;
 WuerfelAnzeigen;
 end;
 
 procedure TForm3.ButtonTestenClick(Sender: TObject);
 Var W,erg,i,i2:integer;
 ok:boolean;
 begin
 Label1.Caption := 'nix';
 for W:=1 to 6 do
 begin
 erg := WuerfelAnzahl(W);
 if erg>=3 then
 begin
 label1.Caption:='Würfel '+ inttostr(W) +' wurde '+inttostr(erg)+' x gewürfelt - Punkte: '+inttostr(WuerfelPunkte(W));
 break;         end;
 end;
 
 if (WuerfelAnzahl(1)=1) and (WuerfelAnzahl(2)=1) and (WuerfelAnzahl(3)=1) and (WuerfelAnzahl(4)=1) and (WuerfelAnzahl(5)=1) then
 label1.Caption := 'kleine Straße';
 
 ok:=true;
 for i:=2 to 6 do
 if WuerfelAnzahl(i)<>1 then
 begin
 ok:=false;
 break;
 end;
 if ok then label1.Caption := 'große Straße';
 
 ok:=false;
 for i:=1 to 6 do
 for i2:=1 to 6 do
 begin
 if (WuerfelAnzahl(i)=3) and (WuerfelAnzahl(i2)=2) then ok :=true;
 end;
 if ok then Label1.Caption := 'Fullhouse';
 end;
 
 
 procedure TForm3.WuerfelAnzeigen;
 Var i:integer;
 begin
 with StringGrid_Wuerfel do
 for i:=1 to 5 do
 begin
 if Wuerfel[i]<>0 then Cells[i,0]:=inttostr(Wuerfel[i])
 else Cells[i,0]:='';
 if RausgelegteWuerfel[i]<>0 then Cells[i,1]:=inttostr(RausgelegteWuerfel[i])
 else Cells[i,1]:='';
 end;
 end;
 
 function TForm3.WuerfelAnzahl(W: integer): integer;
 Var i:integer;
 begin
 result:=0;
 for i:=1 to 5 do
 if RausgelegteWuerfel[i]=W then inc(result);
 end;
 
 function TForm3.WuerfelPunkte(w: integer): integer;
 Var i:integer;
 begin
 result:=0;
 for i:=1 to 5 do
 if RausgelegteWuerfel[i]=W then inc(result,W);
 end;
 
 end.
 | 
		
	  
Mfg Frank