Autor Beitrag
Feuerfliege
Hält's aus hier
Beiträge: 3



BeitragVerfasst: So 05.06.05 13:27 
Also erst ma Guten Tag an alle die das hier lesen, es freut mich das sich jemand hierfür interessiert.

Ich hab ein spiel programmiert nur das Problem ist das Fragen immmer noch doppelt vorkommen können, und da hatte ich mir gedacht das ich die schon benutzen fragen einfach in nem Array of Integer speichere und die dann mit der derzeit gezogenen Frage vergleiche. Nur als ich das probiert habe kammen ganz komische Fehlermeldungen, zumal wusste ich nicht genau wie ich einmal den ganzen Array durchlaufen lasse und danach sage entweder ne neue Frage ziehen und die ganze sache wiederholen oder mit der Frage weiter machen.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
var benutzeFragen: Arry [1..15of integer;
for i:=1 to benutzeFragen do
  if derzeitigeFrage = BenutzeFragen[i] then
    <Ziehe noch ma>;
  else
    //Mach mit dem Program weiter.
end;


So sah es bei mir in etwa aus. Er wird zwar alle Zahlen im Arry vergleichen, nur ist das Problem das wenn else kommt das Programm eigentlich am ende stehen bleiben soll und der Benutzer 4 Labels anklicken kann und das passiert hier glaub ich nicht.

So ích hoffe ma das jedere meine Frage verstanden hat und ich diese gut gestellt habe.
Bin über jede psitive Antwort zufrieden.

Mit freundlichen Grüßen
Feuerfliege

Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt.
-delphin-
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 200



BeitragVerfasst: So 05.06.05 13:43 
versuchs mal mit array :D
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: So 05.06.05 13:46 
Hallo,
Probiere es doch so: Speichere die Fragen nicht in einem Array, sondern in einer (bzw. zwei) Liste(n). In der einen Liste stehen die schon gebrauchten Fragen, und in der anderen die noch freien Fragen.
Die nächste Frage wird immer aus der Liste mit offenen Fragen geholt, gestellt, und in die andere Liste verschoben.

Alternativ kann man es bei WWM (darum gehts doch, oder?) so machen, dass man 15 Listen/Arrays hat (eine pro Stufe), und nach jeder Frage eine Stufe höher geht. Dann hat man auch direkt die steigende Schwierigkeit mit drin.

_________________
We are, we were and will not be.
Taladan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 88


Delphi 2005 Personal
BeitragVerfasst: So 05.06.05 13:50 
Also. So ganz habe ich deine Frage nicht verstanden. Aber schaun wa mal, ob die antwort doch passt.

Dein Problem schient in der Verschachtelung deiner Schleifen zu liegen.
1. Bei jeder Neuen Frage muß die Procedure neu ausgeührt werden. Sonnst könnte ja die neue Frage wieder gleich sein.
2. Mach aus der überprüfung eine eigene Funktion.
3. deine Schleife. Empfehlenswert wäre eine Schleife ähnlich wie diese

repeat
- NeueFrageAuslosen.
until (check= False) [aufruf von check, check sollte true zurück liefern, wenn die Frage schon existiert. ]
... hier geht dein Programm weiter

Gruß dat Tala