Hi, ich bin neu im Forum (und in Delphi) und finde nicht alles auf Anhieb. Also nicht böse sein wenn es das Thema schon ein Mal gegeben hat, ich finde es nämlich nicht.
Und zwar war meine Frage, ob man Variablen aus Prozeduren in andere Prozeduren übernehmen kann und wenn, wie?
Ich versuche grad eine Art Ratespiel zu erstellen, wobei eine Zahl generiert wird, man gibt eine Zahl ein und man erhält eine Antwort, ob die Zahl größer oder kleiner ist wobei es dann immer so weiter gehen soll, bis man die Zahl hat.
Mein Problem ist, dass ich praktisch den Prozess des Vergleichens und des Ausgeben der Antwort in der selben Prozedur habe wie das Generieren der Zahl und so kommt es, dass ich einen Zufallswert nur ein Mal mit meiner Zahl vergleiche und beim nächsten Mal Raten, wird auch die Zahl neu generiert!
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:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) ESchaetzen: TEdit; BSchaetzen: TButton; MGrossKlein: TMemo; BHighscoreSpeichern: TButton; MHighscore: TMemo; BSchaetzen2: TButton; procedure BSchaetzenClick(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.BSchaetzenClick(Sender: TObject); var hkw,ngw,hs,hsc,hsc2,zz,sw,bs:integer; begin sw:=StrToInt(ESchaetzen.text); randomize; zz:=random(100); hkw:=0; ngw:=100; hsc:=-3; hs:=0; if sw <> zz then begin if sw < zz then begin MGrossKlein.Lines.Add('Ihr eingegebener Wert'+IntToStr(sw)+' ist kleiner als die generierte Zufallzahl'); hsc2:=hsc2+(zz-sw); if sw<hkw then begin hkw:=sw; hsc:=hsc+1; end; end; if sw > zz then begin MGrossKlein.Lines.Add('Ihr eingegebener Wert'+IntToStr(sw)+' ist größer als die generierte Zufallzahl'); hsc2:=hsc2+(sw-zz); if sw < ngw then begin ngw:=sw; hsc:=hsc+1; end; end; if sw=zz then begin MGrossKlein.Lines.Add('Ihr eingegebener Wert'+IntToStr(sw)+'ist die generierte Zufallszahl!' ); if 10000-hsc*hsc2>hs then MHighscore.Lines.Add('Ihr Highscore beträgt'+IntToStr(hs)) end;
end; end; end. |
Das wäre mein Code, ich versuche noch eine Art Highscore zu erstellen, der sich aus der Differenz zwischen dem eigentlichen Wert und den Schätzungen und aus dem Faktor der Anzahl der Schätzungen zusammensetzt.
Manche Sachen spielen noch keine Bedeutung(Ich entschuldige mich für die Verwirrung).
Zum Beispiel mein 2. Button soll später denn Highscore speichern und deswegen möchte ich zum Beispiel den Highscore übergeben und dann, wenn der Benutzer denn möchte, seinen Highscore zu speichern.
Vielen Dank im Voraus...