| Autor |
Beitrag |
Public Enemy
      
Beiträge: 26
Win Xp und Win Vista
Delphi 6 und 7
|
Verfasst: So 15.03.09 13:48
Hallo zusammen,
hoffe dies ist das richtige unter Forum für mein Problem. Und zwar habe ich ein Spiel in Delphi gemacht und zur Zeit läuft es auch so wie ich möchte bis auf einen kleinen Fehler. Und Zwar geht es darum Geld zu gewinnen, welches einem dann auch gut geschrieben wird. Doch wenn man sein ganzes Geld verzockt hat und das Spiel erneut startet über Datei-> Neues Spiel
Wird kein Geld mehr bei einem Gewinn gut geschrieben. Abgezogen wird es jedoch. Dies ist aber nur wenn man das Spiel ganze Resetet hat keine Ahnung wieso, weshalb warum
Ich werde einfach einmal den Code hier posten und hoffe ihr blickt da durch. Bin auch für weitere Kritik offen was man besser machen könnte und und und
MfG Public Enemy
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: 179: 180: 181: 182: 183: 184: 185: 186: 187: 188: 189: 190: 191: 192: 193: 194: 195: 196: 197: 198: 199: 200: 201: 202: 203: 204: 205: 206: 207: 208: 209: 210: 211: 212: 213: 214: 215: 216: 217: 218: 219: 220: 221: 222: 223: 224: 225: 226: 227: 228: 229: 230: 231: 232: 233: 234: 235: 236: 237: 238: 239: 240: 241: 242: 243: 244: 245: 246: 247: 248: 249: 250: 251: 252:
| unit DiceGame;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Menus;
type TForm1 = class(TForm) Label1_Geld: TLabel; GroupBox1_setzen: TGroupBox; GroupBox2_Wuerfeln: TGroupBox; GroupBox3_GewinnNeustart: TGroupBox; Label2_Restgeld: TLabel; Button1_Verringern: TButton; Button2_Erhoehen: TButton; Edit1_Einsatz: TEdit; Label3_Zahl: TLabel; ComboBox1_Wuerfelzahl: TComboBox; Button3_Setzen: TButton; Label4_Wuerfel1: TLabel; Label5_Wuerfel2: TLabel; Label6_Wuerfel3: TLabel; Button4_Los: TButton; Label7_Treffer: TLabel; Label8_Gewinn: TLabel; Button5_Neustart: TButton; Label9_Gewonnen: TLabel; Label10_Einsatz: TLabel; Datei: TMainMenu; Datei1_Datei: TMenuItem; MAin_Beenden: TMenuItem; MAin_Optionen: TMenuItem; Main_NeuesSpiel1: TMenuItem; procedure FormCreate(Sender: TObject); procedure Button1_VerringernClick(Sender: TObject); procedure Button2_ErhoehenClick(Sender: TObject); procedure Button3_SetzenClick(Sender: TObject); procedure Button4_LosClick(Sender: TObject); procedure Button5_NeustartClick(Sender: TObject); procedure MAin_BeendenClick(Sender: TObject); procedure MAin_OptionenClick(Sender: TObject); procedure Main_NeuesSpiel1Click(Sender: TObject); private public end;
var Form1: TForm1; geld: integer; gesetztesGeld: integer; gesetzteZahl: integer; i: integer; w1, w2, w3: integer; trefferCount: integer; einsatz: integer; gewonnen: integer;
implementation
uses PopUp;
{$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin randomize; Button1_Verringern.Enabled := false; Button4_Los.Enabled := false; Button5_Neustart.Enabled := false;
geld:=20; gesetztesGeld:= 1; einsatz := 0; gewonnen := 0;
Label1_Geld.caption := 'Geld: ' + IntToStr(geld) + '€'; Label2_Restgeld.caption := 'Restgeld: ' + IntToStr(geld-gesetztesGeld) + '€'; Label9_Gewonnen.caption := 'Gewonnen: 0€'; Label10_Einsatz.caption := 'Einsatz: 0€';
for i:=1 to 6 do begin ComboBox1_Wuerfelzahl.Items.Add(IntToStr(i)) end; ComboBox1_Wuerfelzahl.ItemIndex := 0; end;
procedure TForm1.Button1_VerringernClick(Sender: TObject); begin dec(GesetztesGeld,1); Edit1_Einsatz.Text := IntToStr(gesetztesGeld) + '€'; Button2_erhoehen.Enabled := true; Label2_Restgeld.caption := 'Restgeld: ' + IntToStr(geld-gesetztesGeld) + '€';
if (gesetztesGeld=1) then Button1_Verringern.Enabled := false; end;
procedure TForm1.Button2_ErhoehenClick(Sender: TObject); begin inc(gesetztesGeld,1); Edit1_Einsatz.Text := IntToStr(gesetztesGeld) + '€'; Button1_Verringern.Enabled := true; Label2_Restgeld.caption := 'Restgeld: ' + IntToStr(geld-gesetztesGeld) + '€';
if (geld-gesetztesGeld = 0) then begin Button2_Erhoehen.Enabled := false; end;
end;
procedure TForm1.Button3_SetzenClick(Sender: TObject); begin Button1_Verringern.Enabled := false; Button2_Erhoehen.Enabled := false; Edit1_Einsatz.Enabled := false; ComboBox1_Wuerfelzahl.Enabled := false; Button4_Los.Enabled := true; gesetzteZahl := StrToInt(ComboBox1_Wuerfelzahl.Text); dec(geld, gesetztesGeld); inc(einsatz, gesetztesGeld); Label10_einsatz.caption := 'Einsatz: ' + IntToStr(einsatz) + '€'; Label1_Geld.caption := 'Geld: ' + IntToStr(geld) + '€'; Button3_Setzen.caption := 'Gesetzt'; Button3_Setzen.Enabled := false; end;
procedure TForm1.Button4_LosClick(Sender: TObject); begin w1:=1+random(6); w2:=1+random(6); w3:=1+random(6); Label4_Wuerfel1.caption := 'Würfel1: ' + IntToStr(w1); Label5_Wuerfel2.caption := 'Würfel2: ' + IntToStr(w2); Label6_Wuerfel3.caption := 'Würfel3: ' + IntToStr(w3); Button4_Los.caption := 'Fertig'; Button4_Los.Enabled := false; Button3_Setzen.Enabled := false; Button5_Neustart.Enabled := true; trefferCount:=0;
if(w1=gesetzteZahl) then begin inc(trefferCount,1); end; if(w2=gesetzteZahl) then begin inc(trefferCount,1); end; if(w3=gesetzteZahl) then begin inc(trefferCount,1); end;
Label7_Treffer.caption := 'Treffer: ' + IntToStr(trefferCount); Label8_Gewinn.caption := 'Gewinn: ' + IntToStr(trefferCount*gesetztesGeld) + '€'; inc(geld, trefferCount*gesetztesGeld); Label1_Geld.caption := 'Geld: ' + IntToStr(geld) + '€'; inc(gewonnen, trefferCount*gesetztesGeld); Label9_Gewonnen.caption := 'Gewonnen: ' + IntToStr(gewonnen) + '€';
if(geld=0) then begin Button5_Neustart.Enabled := false; ShowMessage('Verloren!!!'); end; end;
procedure TForm1.Button5_NeustartClick(Sender: TObject); begin Button1_Verringern.Enabled := false; Button2_Erhoehen.Enabled := true; Button3_Setzen.Enabled := true; Button4_Los.Enabled := false; Button5_Neustart.Enabled := false; Button3_Setzen.Caption := 'Setzen'; Button4_Los.Caption := 'Los!'; Edit1_Einsatz.Enabled := true; ComboBox1_Wuerfelzahl.Enabled := true; Label4_Wuerfel1.caption := 'Würfel1:'; Label5_Wuerfel2.caption := 'Würfel2:'; Label6_Wuerfel3.caption := 'Würfel3:'; Label7_Treffer.caption := 'Treffer:'; Label8_Gewinn.caption := 'Gewinn:'; gesetztesGeld := 1; Edit1_Einsatz.Text := '1€';
if(geld-gesetztesGeld=0) then begin Button2_Erhoehen.Enabled := false; end; Label2_Restgeld.caption := 'Restgeld: ' + IntToStr(geld-gesetztesGeld) + '€'; end;
procedure TForm1.MAin_BeendenClick(Sender: TObject); begin self.Close; end;
procedure TForm1.MAin_OptionenClick(Sender: TObject); begin Form2_Fenster.Visible:=true; end;
procedure TForm1.Main_NeuesSpiel1Click(Sender: TObject); begin
Edit1_Einsatz.Enabled := true; Button2_Erhoehen.Enabled:= true;
Label4_Wuerfel1.caption := 'Würfel1: '; Label5_Wuerfel2.caption := 'Würfel2: '; Label6_Wuerfel3.caption := 'Würfel3: '; Edit1_Einsatz.Text:= IntToStr(1) + '€';
ComboBox1_Wuerfelzahl.Enabled:= true; Button3_Setzen.Enabled := True;
geld:=20; gesetztesGeld:= 1; einsatz := 0; gewonnen := 0;
Label1_Geld.caption := 'Geld: ' + IntToStr(geld) + '€'; Label2_Restgeld.caption := 'Restgeld: ' + IntToStr(geld-gesetztesGeld) + '€'; Label9_Gewonnen.caption := 'Gewonnen: 0€'; Label10_Einsatz.caption := 'Einsatz: 0€';
ComboBox1_Wuerfelzahl.ItemIndex := 0; end;
end. |
Falls noch mehr benötigt wird bescheid sagen...
|
|
Public Enemy 
      
Beiträge: 26
Win Xp und Win Vista
Delphi 6 und 7
|
Verfasst: Mo 16.03.09 12:11
Also ich könnte auch jemanden per Pn den ganzen Code schicken wenn es helfen würde? Sry für doppel Post dachte aber das wenn ich nur editiere es keiner sieht.
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Mo 16.03.09 12:16
könntest du vielleicht das Spiel selbst als ZIP anhängen. Da würd ich mir leichter tun das ganze dann zu analysieren, wo das problem steckt.
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
Public Enemy 
      
Beiträge: 26
Win Xp und Win Vista
Delphi 6 und 7
|
Verfasst: Mo 16.03.09 12:19
Hier bitte sehr. Wusste ich doch das es daran liegt 
Einloggen, um Attachments anzusehen!
|
|
Public Enemy 
      
Beiträge: 26
Win Xp und Win Vista
Delphi 6 und 7
|
Verfasst: Mi 18.03.09 16:30
Echt keiner ne Ahnung ? Ihr seid meine einzige Hilfe 
|
|
azubi_20
      
Beiträge: 593
WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
|
Verfasst: Mi 18.03.09 17:41
|
|
Public Enemy 
      
Beiträge: 26
Win Xp und Win Vista
Delphi 6 und 7
|
Verfasst: Mi 18.03.09 18:07
Danke für diesen Tipp  Jedoch habe ich es schon probiert, doch nichts gefunden. Gucke mir aber gerade mal ein Tutorial für Debbuging in Delphi an
UPDATE
Mir ist gerade mal aufgefallen, dass manchmal doch Geld dazu addiert wird hmm ganz schön trocky der Fehler :d
|
|
Ulixes
      
Beiträge: 63
Win Vista Home Premium
Delphi 2009 Professional, XHTML, CSS, PHP
|
Verfasst: Mi 18.03.09 19:57
Hallo,
also ich muss gestehen, dass bei mir auch nach mehrmaligen Drücken des Buttons "Neues Spiel" das Programm
noch alles richtig macht.
Ich weiß allerdings nicht, was du genau mit "Reseten" meinst:
-> Programm schließen und öffnen
-> "neues Spiel"
-> "Neu Starten"
Mit freundlichen Grüßen
_________________ "Alles ist möglich, Unmögliches dauert nur ein bisschen länger!"
|
|
Public Enemy 
      
Beiträge: 26
Win Xp und Win Vista
Delphi 6 und 7
|
Verfasst: Mi 18.03.09 21:05
Ehm okay sry dann ahbe ich mich etwas dumm ausgedrückt. Also wenn man das Spiel öffnet und sofort spielt geht alles noch klar. Doch wenn man verloren hat muss man das Spiel über Datei und Neues Spiel starten. Wenn man jetzt wieder spielen will passiert das oben genannte Problem. Und dies unkontinuierlich
Also mit reseten meinte ich Datei->Neues Spiel
|
|
Ulixes
      
Beiträge: 63
Win Vista Home Premium
Delphi 2009 Professional, XHTML, CSS, PHP
|
Verfasst: Do 19.03.09 15:37
Also ich finde wirklich kein Fehler in der Anwendung...
Ich habe das jetzt 10min gespielt, bin mehrmals Pleite gegangen und das oben genannte
Problem tritt bei mir nicht auf.
_________________ "Alles ist möglich, Unmögliches dauert nur ein bisschen länger!"
|
|
Regan
      
Beiträge: 2157
Erhaltene Danke: 72
Java (Eclipse), Python (Sublimetext 3)
|
Verfasst: Do 19.03.09 17:13
|
|
Public Enemy 
      
Beiträge: 26
Win Xp und Win Vista
Delphi 6 und 7
|
Verfasst: Fr 20.03.09 16:16
Ich weiss nicht wan und wieso das jetzt genau passiert-.- Komm und geht wann es will. Habe mich nun entschieden den Code säubern mal gucken. Außerdem habe ich das Prog nun meinem Lehrer mal mitgegeben..
Trotzdem vielen Dank für eure Mühe 
|
|