![]() |
Re: Das große Lotto-Spiel - Bet and Win
Sorry, aber das ist doch absoluter Schwachsinn:
Delphi-Quellcode:
Weißt Du wie ein array funktioniert?
type
TLottozahlen=array[1..1] of Integer; Weißt Du für was das [1..1] steht? //Edit: Mein Vorschlag für eine Typendeklaration von Lottozahlen sähe so aus:
Delphi-Quellcode:
type
TLottozahl = 1..49; TLottozahlen = array[1..6] of TLottozahl; |
Re: Das große Lotto-Spiel - Bet and Win
Ein array mit einem element?! sry, aber hääää?
Und wa sich einfach wissen möchte ist: Steht bei den Listboxen jeweils eine Listbox für eine Ziehung, oder jede Listbox für eine [b]Zahl aus einer Ziehung[b], und die reihen untereinander jeweils für eine neue zeihung? Wenn letzteres der Fall ist, und dich einfach nur stört, dass die Zahlen dann zu klein sind, und nicht im Gleichen abstand, kannst du auch EINE listbox benutzen, und das ereignis ondrawitem (oder so ähnlich) benutzen, und den inhalt der listbox selber zeichnen. edit: also, wenn du mich fragst, ist das projekt verkorxt. vielleicht wäre es besser noch mal völlig neu anzufangen, arrays zu verstehen und das bedienkonzept zu überdenken... |
Re: Das große Lotto-Spiel - Bet and Win
Ähm was war nochmal die eigentliche Frage in diesem Thread? :stupid:
Wenn es ums Speichern geht könntest du ganz einfach sowas machen:
Delphi-Quellcode:
Ich habe den Code schnell getippt und nicht getestet, eigentlich sollte es aber in dieser Form gehen.
var
ini : TIniFile; i, g: Integer; begin try ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'data.ini'); for i := 1 to 6 do begin for g := 0 to (FindComponent('Listbox' + IntToStr(i)) as TListbox).Items.Count-1 do ini.WriteInteger('Listbox' + IntToStr(i), IntToStr(g), (FindComponent('Listbox' + IntToStr(i)) as TListbox).Items[g]); end; finally ini.Free; end; |
Re: Das große Lotto-Spiel - Bet and Win
Die Prozedur für eine Lottoziehung sähe mit meiner Typendeklaration dann so aus:
Delphi-Quellcode:
Zurück zum Thema (da hat Balu der Bär wohl recht :oops: ), dies ist eigentlich eine noch bessere Lösung für das speichern, zumal man dann alles in EINE INI-Datei speichern kann, also das von den Listboxen und von den Edits.
Procedure Zahlen_ermitteln(var Lottozahlen: TLottozahlen);
var i,j: Integer; zahl: TLottozahl; ok: boolean; begin for i := 1 to 6 do begin ok := true; repeat zahl := random(49)+1; for j := 1 to i do ok := ok and (lottozahlen[j] <> zahl); until ok; Lottozahlen[i] := zahl; end; end; |
Re: Das große Lotto-Spiel - Bet and Win
@Martin:
Klar ist das Schwachsinn und in der Schule hatten wir auch 1....6 aber ich habe es umgeändert, damit er pro Fenster eine Zahl ausgibt...und das war so am leichtesten, da ich wie gesagt nicht wirklich viel Ahnung habe nach 3 Monaten Info-Unterricht :( Daher brauch ich auch immer so ausführliche Hilfen bzw am besten Beispiele, damit ich was von euren guten Ideen umsetzen kann! Werde deine Prozedur direkt ausprobieren :) @NamenLozer: Ja ganz genau! Ich meine zweiteres! Wenn das auch so geht, wäre das optimal! Geht dabei wie gesagt vorallem um die Optik...auch hier wäre ein Beispiel gut! @Balu: Kann ich dann mit deinem ini Code trotzdem meinen normalen SaveDialog behalten? @Ihr Drei: Ihr habt jetzt von mir die offizielle Erlaubnis mich auszulachen! ;) Danke für eure Hilfe! Durch eure Ideen und Wissen könnte das am Ende sogar was geben :) |
Re: Das große Lotto-Spiel - Bet and Win
Zitat:
Delphi-Quellcode:
einfach
ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'data.ini');
Delphi-Quellcode:
//Edit: Niemand wird dich auslachen, ich kann dir nur raten es selbst zu versuchen und nicht deinem Lehrer den fertigen Code abzugeben, könnte sonst Probleme wenn du nicht genau weißt wie/was funktioniert. ;)
if SaveDialog1.Execute then
begin ini := TIniFile.Create(SaveDialog1.Filename); //... der restliche Code end; |
Re: Das große Lotto-Spiel - Bet and Win
Hallo,
Delphi-Quellcode:
bei einer Lottoziehung spielt das Glück zwar eine große Rolle, aber nicht initialisierte Feldelemente sollte man immer außen vor lassen.
Procedure Zahlen_ermitteln(var Lottozahlen: TLottozahlen);
var i,j: Integer; zahl: TLottozahl; ok: boolean; begin for i := 1 to 6 do begin ok := true; repeat zahl := random(49)+1; // for j := 1 to i do // Element i ist noch nicht initialisiert! for j := 1 to i - 1 do ok := ok and (lottozahlen[j] <> zahl); until ok; Lottozahlen[i] := zahl; end; end; Einen anderen Ansatz für eine Lottoziehung (mit Erklärung) findet man ![]() //Edit Noch eine Frage: wenn die Variable "ok" einmal den Wert False hatte, kann sie dann jemals wieder den Wert True erhalten? Gruß Hawkeye |
Re: Das große Lotto-Spiel - Bet and Win
ja, hab auch gerade gemerkt, dass "ok := true" UNTER "repeat" muss.
|
Re: Das große Lotto-Spiel - Bet and Win
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab mal ein beispiel für dich geproggt.
Ich hab einige stellen offen gelassen, die musst du selbst proggen. (speichern+laden) Es sollte aber mit dieser neuen Struktur einfacher sein, einen Speicher- u. Lademechanismus einzubauen. (TPlayers kannst du ähnlich wie TZiehungen programmieren, falls du diese Struktur übernehmen willst!) Außerdem wäre es gut, eine Sortier-Funktion mit einzubauen, aber das überlasse ich dir. (oder du nimmst diese methode: ![]() |
Re: Das große Lotto-Spiel - Bet and Win
Vielen Dank NamenLozer für das Beispiel! Gefällt mir sehr gut und ich werde in der Tat daran weiterproggen!
Ebenfalls vielen Dank an alle anderen für die hilfreichen Tipps! Werde eine Menge berücksichtigen! Aber trotzdem glaube ich nicht, dass ich jetzt alles bis zum Ende alleine hinkriegen werde, sodass ich heute abend oder morgen wieder hier rein posten werde! Würde mich freuen, wenn ihr hin und wieder reinschaut und mir weiterhin so tatkräftig zur Seite steht! Danke an alle!! :kiss: MfG Jay |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz