Autor Beitrag
pHix
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mi 24.09.08 21:54 
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!

ausblenden volle Höhe Delphi-Quelltext
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
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  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...


Zuletzt bearbeitet von pHix am Do 25.09.08 13:36, insgesamt 1-mal bearbeitet
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 24.09.08 23:18 
Moin!

Bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien:
1.2 Beiträge:
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]

Einfach oben bei Deinem ersten Beitrag auf user defined image oder user defined image klicken und den Titel ändern. Danke Dir!

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 25.09.08 00:20 
Du kannst unter private oben zum Beispiel Variablen anlegen, die dann innerhalb des gesamten Formular-Objekts gültig sind, d.h. wenn du mit dem einen Button etwas reinschreibst kannst du es mit dem zweiten wieder auslesen.