![]() |
Hilfe beim Erstellen eines Würfelprogramms
Hallo,
ich bräuchte Hilfe beim Erstellen eines Würfelprogramms. Dabei soll via buttonclick 20 mal gewürfelt werden bzw solange bis eine 6 gewürfelt wird und in der Listbox soll die Anzahl der Versuche angegeben werden. Der Quelltext macht mir große Probleme (bin noch nicht lange mit delphi vertraut) und ich probiere schon seit Stunden rum, aber kriege immer wieder Fehlermeldungen. Ich hatte da an eine Repeat-Until Schleife gedacht, aber habs nicht richtig hingekriegt. Kann mir jemand ein wenig beim Quelltext helfen? Dankeschön. :) |
AW: Hilfe beim Erstellen eines Würfelprogramms
Hi und willkommen in der DP.
Dann zeig mal bitte mal was du schon hast. |
AW: Hilfe beim Erstellen eines Würfelprogramms
Na klar, zeig doch mal was Du schon hast, und welche Fehlermeldungen es gibt.
Gruß K-H |
AW: Hilfe beim Erstellen eines Würfelprogramms
Moin, ich denke, so müsste das klappen.
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) ListBox1: TListBox; ButtonWuerfeln: TButton; procedure ButtonWuerfelnClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.ButtonWuerfelnClick(Sender: TObject); var i, ergebnis:Integer; //Variablen Deklaration begin randomize; //Initialisieren des Zufallsgenerators listbox1.clear; //leeren der Box for i:=1 to 20 do //er führt es 20 mal aus begin ergebnis:=random(6)+1; //hier wird eine zufallszahl von 1-6 (0->6 +1) erstellt listbox1.items.add(inttostr(ergebnis)); //das ganze wird in die Lite geschrieben if ergebnis=6 then exit; //wenn es eine 6 war, hört er hier auf. end; end; end. |
AW: Hilfe beim Erstellen eines Würfelprogramms
Zuerst der Punkt:
Delphi-Quellcode:
Eine For Schleife verlässt man mit Break. Das macht in deinem Fall zwar nichts aus, aber wenn später noch etwas nach der Schleife kommt, funktioniert der Code nicht.
if ergebnis=6 then exit;
An für sich funktioniert der Code, aber so wie ich dich verstanden habe willst du nicht die Würfe anzeigen, sondern nur die Anzahl der Würfe bis 6. Im Grunde mußt du nur an diesem Punkt einen Block einfügen, statt Exit aufzurufen:
Delphi-Quellcode:
Hier ein Beispiel:
if ergebnis=6 then exit
Delphi-Quellcode:
const
AnzahlVersuche = 20; var i: Integer; Wurf: Byte; begin //ListBox2.Items.Clear; Randomize; for i := 1 to AnzahlVersuche do begin Wurf := Random(6) + 1; //ListBox2.Items.Add('Versuch ' + IntToStr(i) + ' Zahl ' + IntToStr(Wurf)); if Wurf = 6 then begin ListBox1.Items.Add('Anzahl der Versuche: ' + IntToStr(i)); Break; end; end; if Wurf <> 6 then ListBox1.Items.Add('Trotz ' + IntToStr(AnzahlVersuche) + ' Versuche, keine 6'); end; |
AW: Hilfe beim Erstellen eines Würfelprogramms
Hast recht, mit break anweisungen usw kenn ich mich nich so gut aus, ich lerns halt noch. Den Teil mit der Anzahl hatte iwie überlesen.
Aber so wie du es geschrieben hast, sollte es funktioniern und viiiel schöner aussehen^^ dillipp |
AW: Hilfe beim Erstellen eines Würfelprogramms
@dillipp und Popov: Ihr beide macht gerade fremde Hausaufgaben.
Hilfe geben ist OK aber der Fragende soll auch seine eigenen Gehirnzellen benützen. |
AW: Hilfe beim Erstellen eines Würfelprogramms
@shmia
Jajn, denn... 1.) wenn er Programmieren als Kurs belegt hat und sich seine Hausaufgaben von jemandem anders erledigen läßt, so 1.1) sein Problem und seine Entscheidung ob er etwas lernen will oder nicht, denn 1.2) wer bin ich, dass ich das verurteile 2.) for allem als Anfänger hat hat man es schwer bis man so viel an Grundwissen sich aneignet, dass man in der Lage ist auch selbst zu lernen, denn bevor einer das Addieren lernen kann, muß er die Zahlen kennen. Natürlich kann man in der Schule 1 Jahr lang Konsolenanwendungen programmieren, bis Pascal sitzt, so dass man mit OOP anfangen kann, oder man hilft den Leuten über die ersten Hürden, so dass sie beides parallel lernen. |
AW: Hilfe beim Erstellen eines Würfelprogramms
So, habs jetzt einigermaße hingekriegt, allerdings kriege ich bei "for i:=1 to 20 do" die fehlermeldung "missing operator or semicolon" und bei "listbox1.items.add" ebenfalls.
Was ist daran problematisch? |
AW: Hilfe beim Erstellen eines Würfelprogramms
Ich würde sagen da fehlt ein Operator oder Semikolon
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:36 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