![]() |
Zufalls Zahl Spiel mit Hilfe
Sers,
So unser Lehrer hat uns eine Super Tolle.... Aufgabe gegeben :P Wir sollten ein "Spiel" Programmieren wo eine Zahl von Delphi generiert wird und diese man dann Raten muss. Bis hier hin habe ichs noch geschafft :) Nun verlangt er aber von uns das wenn wir auf den Button "Hilf" klicken in der Memo erscheint in welchem Bereich die zahlt liegt. z.B. von 20 bis 30 Das Problem ist allerdings das es nicht viele IF-Abfragen geben darf sondern wir das irgendwie Rechnen sollen und ich Kein Plan habe wie :P Ebenfalls habe ich dazu programmiert das man mit Enter das Geschätzte abschicken kann und mit der Entferntaste das Memo wieder löschen. Hier mal mein Momentaner Code soweit wie ich bin
Code:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; Edit1: TEdit; Button3: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Edit1KeyPress(Sender: TObject; var Key: Char); procedure Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); private { Private-Deklarationen } x: integer; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin Memo1.Clear; Edit1.Text := ''; Randomize; x := Random(100); Memo1.Lines.Add('Anfangen !!!!!!!!!!') end; procedure TForm1.Button1Click(Sender: TObject); var y : Integer; begin y := StrToInt(Edit1.Text); if y < x then Memo1.Lines.Add(IntToStr(y) + ' Zu Klein') else if y > x then Memo1.Lines.Add(IntToStr(y) + ' Zu Groß') else if y = x then Memo1.Lines.Add(IntToStr(y) + ' PERFEKTTTTT!!!!!!!'); end; procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if ord(key)=13 then begin Form1.Button1Click(self); Edit1.Text := ''; end; end; procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if ord(key)=46 then begin Memo1.Clear; Memo1.Lines.Add('Anfangen !!!!!!!!!!') end; end; end. Hoffe jemand kann mir helfen wie ich Weiter komme. mfg |
AW: Zufalls Zahl Spiel mit Hilfe
In der Schule haben wir die gleiche Aufgabe. Ich habs hinbekommen. Ein Tipp : Versuche es mal mit der REPEAT- Schleife, wenn du dann immernoch Probleme haben solltest werde ich dir weiterhelfen aber versuche es.
|
AW: Zufalls Zahl Spiel mit Hilfe
Edit: Wait!
x = 23 Hilfe = "Zahl liegt zwischen 20 und 30" Vorgang:
Delphi-Quellcode:
UntereGrenze:
UntereGrenze := ( x div 10 ) * 10;
ObereGrenze := UntereGrenze + 10; x (23) div 10 = 2 10*2 = 20 ObereGrenze: UntereGrenze (20) + 10 = 30 |
AW: Zufalls Zahl Spiel mit Hilfe
Wieso Schleife? Die Zahl ist mal angenommen 20. Dann würde ich zehn Drauf addieren und zehn abziehen. Dann habe ich 10 und 30 und das wäre der Bereich, in der die Zahl liegt. Aufpassen muss man nur wenn bei der Addition oder Subtraktion die Ober- und/oder Untergrenze unterschritten wird. Das müsste man noch behandeln.
|
AW: Zufalls Zahl Spiel mit Hilfe
Delphi-Quellcode:
So muss man die Zahl So lange eingeben bis die "geratenZ" = "zufallZ" ist. Und das mit den im welchen Bereich hat Lucky ja schon gesagt
Repeat
geratenZ := InputBox('Zahlenraten','Bitte geben Sie eine beleibige Zahl von 1 bis 20 ein !',''); Until Strtoint(geratenZ) = zufallZ; end; |
AW: Zufalls Zahl Spiel mit Hilfe
Hallo und Willkommen in der DP :dp:
in der Variable X hast du ja den "gezogenen" Wert. Da brauchst du nur um den Wert einen Bereich zu definieren. Vorschlag: - deklariere 2 Variablen (MinX, MaxX) um den Bereich zu speichern. - Fester bereich von 10 Ziffern - die einfachste Variante wäre
Delphi-Quellcode:
// ist aber Quatsch, da der Benutzer das irgendwann spitzkriegt.
MinX:= X-5;
MaxX:= X+5; - schwieriger
Delphi-Quellcode:
:hi:
// zusätzliche Variable X1 z.B
X1:= Random(10); // mit der Variable X1 den Bereich nach oben und unten berechnen. Dabei die Sonderfälle beachten // Bereich darf nicht größer sein als 100 und kleiner als 0 |
AW: Zufalls Zahl Spiel mit Hilfe
Ich habs gemacht wie Aphton beschrieben hat..
Und es funktioniert :)
Code:
procedure TForm1.Button3Click(Sender: TObject);
var UntereGrenze, ObereGrenze : Integer; begin UntereGrenze := ( x div 10 ) * 10; ObereGrenze := UntereGrenze + 10; Memo1.Lines.Add('Zahl liegt zwischen ' + IntToStr(UntereGrenze) + ' und ' + IntToStr(ObereGrenze)); end; Wie eine REPEAT- Schleife geht hatten wir bisher Leider noch nicht :( Danke an alle fürs Helfen :) |
AW: Zufalls Zahl Spiel mit Hilfe
Zitat:
:hi: |
AW: Zufalls Zahl Spiel mit Hilfe
Er meinte wir sollen nur machen das da steht:
"Zahl ist zwischen 10 bis 20" "Zahl ist zwischen 20 bis 30" So mehr wollte er nicht :P |
AW: Zufalls Zahl Spiel mit Hilfe
Die Variante mit dem div hat ja quasi einen dynamischen Abstand. Alles ist gut :zwinker:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:30 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