Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Hilfe beim Erstellen eines Würfelprogramms (https://www.delphipraxis.net/166770-hilfe-beim-erstellen-eines-wuerfelprogramms.html)

lali 28. Feb 2012 16:44

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. :)

Coffeecoder 28. Feb 2012 17:00

AW: Hilfe beim Erstellen eines Würfelprogramms
 
Hi und willkommen in der DP.
Dann zeig mal bitte mal was du schon hast.

p80286 28. Feb 2012 17:09

AW: Hilfe beim Erstellen eines Würfelprogramms
 
Na klar, zeig doch mal was Du schon hast, und welche Fehlermeldungen es gibt.

Gruß
K-H

dillipp 28. Feb 2012 17:26

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.

Popov 28. Feb 2012 17:40

AW: Hilfe beim Erstellen eines Würfelprogramms
 
Zuerst der Punkt:
Delphi-Quellcode:
if ergebnis=6 then exit;
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.

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:
if ergebnis=6 then exit
Hier ein Beispiel:

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;

dillipp 28. Feb 2012 17:57

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

shmia 28. Feb 2012 17:58

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.

Popov 28. Feb 2012 18:15

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.

lali 28. Feb 2012 18:41

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?

Popov 28. Feb 2012 18:49

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.
Seite 1 von 2  1 2      

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