![]() |
zahlenraten
HI leutz,
unzwar habe ich erstens keinen plan ob das hier der richtige bereich is, wenn nich dann werden das die admin hoffentlich richten :D zu meinem problem: ich muss für informatik ein programm schreiben in dem eine zufallzahl generiert wird und ich dann in ein edit fenster zahlen eingeben kann. das proggy gibt mir nach überprüfung der zahl entweder "zahl zu klein" oder eben "zu groß" aus. als letztes sollte man mittels eines reset buttons eine neue zahl generieren können. das ganze kann man eigentlich unter zahlen raten zusammenfassen. ich erwarte jetzt nicht das ihr mir den gesamten quellcode runterschreibt, aber vllt könnt ihr mir ein paar denkanstöße oder vllt links zu tutorials geben. mfg michi |
Re: Neuling + Problem
Wie wärs, wenn du anfängst und fragst dann, wenn du nicht weiterweißt?
|
Re: Neuling + Problem
|
Re: Neuling + Problem
Bitte ändere Deinen Titel in etwas aussagekräftiges. Benutze dafür bitte den Edit-Button neben Deinem Beitrag, Danke.
|
Re: zahlenraten
ok..also immer wenn ich versuche mein programm zu starten kommt dieser fehler:
[Fehler] Unit1.pas(35): Anweisung erwartet, aber '=' gefunden
Delphi-Quellcode:
wer hat ne idee?
procedure TZahl.FormCreate(Sender: TObject);
begin RANDOMIZE; ZufallsZahl.Caption ;= *an dieser stelle tritt der fehler auf* IntToStr(Random(101)); end; procedure TZahl.BokClick(Sender: TObject); var I:Integer; begin I:=StrToInt(Zahl.Text); If I>StrToInt(Zufallszahl.Caption) Then Lausgabe.Caption:='eingebene Zahl ist zu groß!'; If I<StrToInt(Zufallszahl.Caption) Then Lausgabe.Caption:='eingebene Zahl ist zu klein!'; If I=StrToInt(Zufallszahl.Caption) Then Begin Lausgabe.Caption:='Richtig geraten!'; Zufallszahl.visible:=TRUE; End; end; end. |
Re: zahlenraten
Delphi-Quellcode:
ZufallsZahl.Caption := IntToStr(Random(101));
|
Re: zahlenraten
dankeschön
|
Re: zahlenraten
weitergehts... nächster fehler:
![]() ![]() code ist noch der selbe wie oben genannt nur mit der verbesserung von mkinzler mfg michi |
Re: zahlenraten
Der Fehler sagt doch alles, der wert in Zahl.Text/ZufallsZahl.Text ('Zahl') kann nicht in einen Integer gewandelt werden.
Entwder Konvertierungen in try..except einschließen oder TryStrToInt verwenden. |
Re: zahlenraten
bei trystrtoint kommt "[Fehler] Unit1.pas(42): Nicht genügend wirkliche Parameter"
|
Re: zahlenraten
Zitat:
Delphi-Quellcode:
function TryStrToInt(const s: string; out i : integer): boolean;
|
Re: zahlenraten
Das spiel hab ich auch schon gesschrieben. Hier mein Quelltext:
Delphi-Quellcode:
Hoff es hilft dir weiter :cheers:
unit spiel;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Edit1: TEdit; Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; const Max = 15; var Form1: TForm1; Eingabe, Versuche, Zufall: Integer; spielEnde: Boolean; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin if spielEnde then Close; try Edit1.SetFocus; Eingabe := StrToInt (Edit1.Text); inc (Versuche); if Versuche <= Max then Label2.Caption := IntToStr (Versuche) + '. Versuche:' else Label2.Caption := 'Es reicht!'; if Eingabe = Zufall then label1.Caption := 'Richtig geraten!'; if Eingabe < Zufall then Label1.Caption := 'Deine Zahl ist zu klein!'; if Eingabe > Zufall then Label1.Caption := 'Deine Zahl ist zu groß'; if (Eingabe = Zufall) or (Versuche > Max) then begin Button1.Caption := 'Ende'; SpielEnde := true; end; except Label1.Caption := 'Quatsch!'; end; end; procedure TForm1.FormCreate(Sender: TObject); begin randomize; Zufall := random(1000) + 1; Versuche := 1; SpielEnde := false; end; procedure TForm1.Button2Click(Sender: TObject); begin Edit1.SetFocus; Label1.Caption := 'Ich denke mir eine neue Zahl aus!'; Label2.Caption := 'Rate mal!'; Button1.Caption := 'OK'; Zufall := random(1000) + 1; Versuche := 1; SpielEnde := false; end; end. |
Re: zahlenraten
Kurzer Hinweis, damit du dich nicht wunderst: Exceptions werden, auch wenn du sie mit try...except abfängst, trotzdem im Debugger gemeldet.
|
Re: zahlenraten
Ich würde das Auftreten von Exception verhindern, in dem ich die jeweilen Try<Typ>To<Typ>-Varianten nehme.
|
Re: zahlenraten
Du könntest auch den Ansatz versuchen, nur die Eingabe von Zahlen im Editfeld
zuzulassen.
Delphi-Quellcode:
Grüße
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin if not (key in ['0'..'9',#8]) then key:=#0; end; Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:27 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