Glücksspielautomat
lima-city → Forum → Programmiersprachen → Delphi & Pascal
bedingung
button
code
deklaration
dialog
eigenschaft
gleiche position
kleinen sache
klicken
performance
private private deklarationen
programm
programmieren
programmierer
sender
spiel
typ
umschalten
versuchen
zahl
-
unit zufall_u; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls; type Tfm_zufall = class(TForm) sh_1: TShape; bt_zufall: TButton; bt_ende: TButton; ti_zufall: TTimer; bt_automatisch: TButton; Splitter1: TSplitter; sh_2: TShape; sh_3: TShape; procedure bt_endeClick(Sender: TObject); procedure bt_zufallClick(Sender: TObject); procedure bt_automatischClick(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var fm_zufall: Tfm_zufall; z : integer; x : integer; y : integer; implementation {$R *.dfm} procedure Tfm_zufall.bt_endeClick(Sender: TObject); begin close end; procedure Tfm_zufall.bt_zufallClick(Sender: TObject); begin randomize; z := random (5) + 1; if z = 1 then sh_1.Brush.color := clhighlight; if z = 2 then sh_1.brush.color := clred; if z = 3 then sh_1.brush.color := clfuchsia; if z = 4 then sh_1.Brush.Color := clyellow; if z = 5 then sh_1.brush.color := clgreen; randomize; x := random (5) + 1; if x = 1 then sh_2.Brush.color := clhighlight; if x = 2 then sh_2.brush.color := clred; if x = 3 then sh_2.brush.color := clfuchsia; if x = 4 then sh_2.Brush.Color := clyellow; if x = 5 then sh_2.brush.color := clgreen; randomize; y := random (5) + 1; if y = 1 then sh_3.Brush.color := clhighlight; if y = 2 then sh_3.brush.color := clred; if y = 3 then sh_3.brush.color := clfuchsia; if y = 4 then sh_3.Brush.Color := clyellow; if y = 5 then sh_3.brush.color := clgreen; end; procedure Tfm_zufall.bt_automatischClick(Sender: TObject); begin if (x = y) and (y = z) then begin ti_zufall.Enabled := false; showmessage('Herzlichen Glückwunsch! Du hast gewonnen!'); bt_automatisch.Caption := 'Noch ein Spiel'; end else begin ti_zufall.Enabled := false; showmessage('Verloren! Es sind 10 € an den Programmierer zu zahlen!'); bt_automatisch.caption := 'Weiter versuchen'; end end; procedure Tfm_zufall.FormCreate(Sender: TObject); begin bt_zufall.visible := false end; end.
ich möchte einen glücksspielautomaten programmieren
oben ist der code von diesem
Leider weiß ich nicht wie ich das Programm so programmieren kann, das nach der Showmessage der timer bei klicken auf den bt_automatisch weiterläuft
hat irgendjemand eine idee `? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
deklariere eine globale variable vom typ boolean:
var bNewgame: boolean = false;
diese setzt du dann nach dem ändern des captions auf true und fügst eine if bedingung zum code des buttons hinzu, insgesamt sollte das ganze dann so aussehen:
if bt_newgame then begin //HIER DER CODE FÜR EIN NEUES SPIEL, FALLS DU VARIABLEN RESETTEST ODER SO ti_zufall.Enabled:=true; //als letztes noch den timer wieder auf true ;) bNewgame:=false; //und die variable wieder auf false damit der code da unten ausgeführt wird... end else begin if (x = y) and (y = z) then begin ti_zufall.Enabled := false; showmessage('Herzlichen Glückwunsch! Du hast gewonnen!'); bt_automatisch.Caption := 'Noch ein Spiel'; bNewgame:=true; end else begin ti_zufall.Enabled := false; showmessage('Verloren! Es sind 10 € an den Programmierer zu zahlen!'); bt_automatisch.caption := 'Weiter versuchen'; bNewGame:=true; end end;
alternativ(besser für die übersicht kannst du überigens auch einfach einen neuen button erstellen und die eigenschaft "Visible" standardmäßig auf false setzen, dann kannst du anstatt diese menge an code hinzuzufügen einfach die "Visible" eigenschaft des Buttons umschalten und für den User sieht es genauso aus(wenn die Buttons die gleiche Position, Höhe und Breite haben).
Ich denke dass das von der Code-Größe und Übersicht des Codes besser wäre, wie es jetzt mit der Performance aussieht weiß iuch nciht aber bei so einer kleinen Sache ist das eh unerheblich ;) -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage