![]() |
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 03:00 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