unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, ExtCtrls, Buttons; type TForm1 = class(TForm) Panel1: TPanel; GroupBox1: TGroupBox; BitBtn1: TBitBtn; BitBtn2: TBitBtn; BitBtn3: TBitBtn; Shape1: TShape; Shape2: TShape; Shape3: TShape; Shape4: TShape; Shape5: TShape; Shape6: TShape; Shape7: TShape; Shape8: TShape; StatusBar1: TStatusBar; StaticText1: TStaticText; GroupBox2: TGroupBox; StaticText2: TStaticText; StaticText3: TStaticText; StaticText4: TStaticText; GroupBox3: TGroupBox; Label1: TLabel; StaticText5: TStaticText; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; StaticText6: TStaticText; Label6: TLabel; procedure BitBtn2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure BitBtn1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; last_dice:byte; //letzter - also aktueller Wurf sum_dice:byte; //Summe der Würfe im aktuellen Spiel sum_play:byte; //Anzahl der Spiele sum_all:byte; //Gesamtaugenzahl counter_dice:byte; //Registartur aktueller Wüfe im aktuellen Spiel counter_win:byte; //Registartur aktuell gewonnener Spiele counter_lost:byte; //Registartur aktuell verlorener Spiele counter_play:byte; //Registartur aktuell durchgeführter Spiele core:byte; //letzter Spielstand Gewinn implementation {$R *.dfm} procedure TForm1.BitBtn2Click(Sender: TObject); {last_dice:byte; //letzter - also aktueller Wurf sum_dice:byte; //Summe der Würfe im aktuellen Spiel sum_play:byte; //Anzahl der Spiele counter_dice:byte; //Registartur aktueller Wüfe im aktuellen Spiel counter_win:byte; //Registartur aktuell gewonnener Spiele counter_lost:byte; //Registartur aktuell verlorener Spiele} begin Label1.Caption:='0'; Label2.Caption:='0'; Label3.Caption:='0'; Label5.Caption:='...nur zu - Du kannst würfeln'; //Anzeige zum Weiterwürfeln Label5.Font.Color:=clGreen; BitBtn2.Enabled:=False; //Freigabe für ein neues Spiel voerst geperrt bis Augenzahl minimal 15 StatusBar1.Panels[7].Text:=''; //Aktuelle Wufanzeige leer setzen - es wurde im neuen Spiel noch nicht gewürfelt StatusBar1.Panels[9].Text:=''; //Aktuelle Gewinnanzeige leer setzen - es wurde im neuen Spiel noch nicht gewürfelt StatusBar1.Panels[11].Text:=''; //Anzeige der Summe der Wüfe leer setzen StatusBar1.Panels[13].Text:=''; //Anzeige der Anzahl der Wüfe im aktullen Spiel leer setzen //numerischen Wert - also Wert des aktuellen Wurfs zurücksetzen BitBtn1.Enabled:=True; //... das nächste aktuelle Siel ist frei if sum_dice<=21 then begin core:=sum_all; Label6.Caption:=IntToStr(core); //Verlorene Speile werden nicht gerechnet inc(counter_win); //Anzahl Gewinner um eins erhöhen StatusBar1.Panels[3].Text:=IntToStr(counter_win); //Anzahl gewonnene Spiele end else begin inc(counter_lost); //Anzahl Verlierer um eins erhöhen StatusBar1.Panels[5].Text:=IntToStr(counter_lost); //Anzahl verlorener Spiele end; inc(counter_play); //Spielezähler erhöhen Label3.Visible:=False; //Anzeige der Anzahl der Würfe ist nicht sichtbar StatusBar1.Panels[1].Text:='1'; //wieder eim ersten Spiel der neuen Runde Label4.Caption:=IntToStr(counter_play); // counter_dice:=0; //Registratur numerischer Werte zurücksetzen sum_dice:=0; //Summe numerischer Werte zurücksetzen //StatusBar1.Panels[1].Text:=IntToStr(counter_play); //wieder eim ersten Spiel der neuen Runde end; procedure TForm1.FormCreate(Sender: TObject); begin Randomize; counter_play:=1; //... hier sind wir im ersten Spiel end; procedure TForm1.BitBtn1Click(Sender: TObject); {last_dice:byte; //letzter - also aktueller Wurf sum_all:byte; sum_dice:byte; //Summe der Würfe im aktuellen Spiel counter_dice:byte; //Registartur aktueller Wüfe im aktuellen Spiel} begin last_dice:=random(6)+1; //ergibt Wert zwischen 0 und 5 -Addition von 1 macht 1-6 im Bereich sum_dice:=sum_dice+last_dice; //Ermitteln der aktuellen Gesamt-Augenzahl im aktuellen Spiel sum_all:=sum_all+last_dice; Label6.Caption:=IntToStr(sum_all); //Anzeige der Summe aller Würfe anzeigen inc(counter_dice); //Ermitteln der aktuellen Anzahl der Würfe im aktuellen Spiel StatusBar1.Panels[7].Text:=IntToStr(last_dice); //Anzeige des Wertes des letzten Wurfes in der Status-Bar StatusBar1.Panels[11].Text:=IntToStr(sum_dice); //Anzeige der Summe der Würfe im aktuellen Spiel in der Status-Bar StatusBar1.Panels[13].Text:=IntToStr(counter_dice); //Anzeige der Summe der Wüfe im aktuellen Spiel in der Status-Bar if sum_dice<=15 then begin core:=core+last_dice; Label5.Caption:='...nur zu - Du kannst würfeln!!!'; //Anzeige zum bedingungslosen Weiterspielen Label5.Font.Color:=clGreen; StatusBar1.Panels[9].Text:='JA'; //Anzeige des Ergebnisses für die Gewinnaussichtdes letzten Wurfes in der Status-Bar end; if sum_dice>15 then begin core:=core+last_dice; Label5.Caption:='...Vorsicht - jetzt wird''s eng!!!'; //Anzeige zum bedingten Weiterspielen - aber immer noch Gewinn Label5.Font.Color:=clNavy; StatusBar1.Panels[9].Text:='JA'; //Anzeige des Ergebnisses für die Gewinnaussichtdes letzten Wurfes in der Status-Bar BitBtn2.Enabled:=True; //Freigabe für ein neues Spiel end; if sum_dice>=18 then begin core:=core+last_dice; Label5.Caption:='...Hör lieber auf!!!'; //Anzeige zum bedingten Weiterspielen - aber immer noch Gewinn Label5.Font.Color:=clPurple; StatusBar1.Panels[9].Text:='JA'; //Anzeige des Ergebnisses für die Gewinnaussichtdes letzten Wurfes in der Status-Bar BitBtn2.Enabled:=True; //Freigabe für ein neues Spiel end; if sum_dice>21 then begin Label5.Caption:='...Schade - Du hast verloren!!!'; //Anzeige zum Verlorenen Spiel Label5.Font.Color:=clRed; StatusBar1.Panels[9].Text:='NEIN'; //Anzeige des Ergebnisses für die Gewinnaussichtdes letzten Wurfes in der Status-Bar BitBtn1.Enabled:=False; //... das aktuelle Siel ist verloren end; Label1.Caption:=IntToStr(last_dice); //Anzeige des Wertes des letzten Wurfes im Ergebnis-Feld Label2.Caption:=IntToStr(sum_dice); //Anzeige des Wertes des letzten Wurfes im Ergebnis-Feld Label3.Caption:=IntToStr(counter_dice); //Anzeige der Anzahl der letzten Würfe im Ergebnis-Feld case last_dice of 1: begin Shape2.Visible:=False; Shape3.Visible:=False; Shape4.Visible:=False; Shape5.Visible:=False; Shape6.Visible:=False; Shape7.Visible:=False; Shape8.Visible:=True; end; 2: begin Shape2.Visible:=True; Shape3.Visible:=False; Shape4.Visible:=True; Shape5.Visible:=False; Shape6.Visible:=False; Shape7.Visible:=False; Shape8.Visible:=False; end; 3: begin Shape2.Visible:=True; Shape3.Visible:=False; Shape4.Visible:=True; Shape5.Visible:=False; Shape6.Visible:=False; Shape7.Visible:=False; Shape8.Visible:=True; end; 4: begin Shape2.Visible:=True; Shape3.Visible:=True; Shape4.Visible:=True; Shape5.Visible:=True; Shape6.Visible:=False; Shape7.Visible:=False; Shape8.Visible:=False; end; 5: begin Shape2.Visible:=True; Shape3.Visible:=True; Shape4.Visible:=True; Shape5.Visible:=True; Shape6.Visible:=False; Shape7.Visible:=False; Shape8.Visible:=True; end; 6: begin Shape2.Visible:=True; Shape3.Visible:=True; Shape4.Visible:=True; Shape5.Visible:=True; Shape6.Visible:=True; Shape7.Visible:=True; Shape8.Visible:=False; end; end; StatusBar1.Panels[1].Text:=IntToStr(counter_play); //Anzeige Letzter Wurf unsichtbar schalten, bis es einen neuen Wurf gibt end; end.