![]() |
belibig oftes Würfeln
hihi
sagt mal kann mir mal einer weiterhelfen. Ich will ein programm machen bei dem ich die würfelanzahl angeben kann (z.b.: 50mal) und das programm gibt mir dann aus wie oft bei den 50mal die 1 und die 2 etc.pp gewürfelt wurde. Ich komme aber nicht weiter weil ich nicht weis wie ich den Zufallsmechanissmus darin einknüpfe. :wall: Wäre echt genial wenn mir jemand da weiterhelfen könnte!! |
Re: belibig oftes Würfeln
|
Re: belibig oftes Würfeln
Danke erstmal für den Link.
Also ich weiß ja wie man einen Würfel einzeln macht! Ich weiß auch wie ich die Zählschleife einzeln verwende aber ich weiß nicht wie ich beide kombinieren soll. Hatte heute schon mindestens 50 Varianten und keine ging im entferntesten. |
Re: belibig oftes Würfeln
machs doch mit nem integer .
Delphi-Quellcode:
i:integer; //anzahl der würfelrunden
a:integer; //was im edit steht a:=edit1.text; if i<a then begin label1.caption:=random(5)+1; i:=i+1; end; |
Re: belibig oftes Würfeln
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
meinst Du das hier im Anhang? |
Re: belibig oftes Würfeln
Hie vieleicht nochmal mein Quellcode damit man vieleicht mehr darunter versteht
procedure TForm1.Button1Click(Sender: TObject); var a,x,b,c,g,f,h,i,j,k,l,m,n,o,p,q,r:integer; begin a:=strtoint(Edit1.Text); repeat randomize; b:=random(6)+1; case b of 1:inttostr(g); 2:inttostr(h); 3:inttostr(i); 4:inttostr(j); 5:inttostr(k); 6:inttostr(l); end; until a=a; for f:= 0 to g do begin label16.Caption:=inttostr(f); end; for m:= 0 to g do begin label17.Caption:=inttostr(m); end; for n:= 0 to g do begin label18.Caption:=inttostr(m); end; for o:= 0 to g do begin label19.Caption:=inttostr(o); end; for p:= 0 to g do begin label20.Caption:=inttostr(p); end; for r:= 0 to g do begin label21.Caption:=inttostr(r); end; Vieleicht findet jemand den oder die Fehler und kann helfen |
Re: belibig oftes Würfeln
Zitat:
|
Re: belibig oftes Würfeln
also
"" fehlt auf jeden fall und sonst finde ich das recht kompiziert weil es ja auch einfacher geht. übernimm ma meinen teil und schreib dann den rest. |
Re: belibig oftes Würfeln
Ich hab ja nur den wichtigen teil rausgenommen.
Die Datei zum Downloaden funzt bei mir nicht--> hab nur ne poplige delphi 4 Version Ach ja ich will nur schleifen verwenden um das programm zu realisieren. naja und halt das zufallsding Greez |
Re: belibig oftes Würfeln
Delphi-Quellcode:
Wie immer ungetestet (tm), müsste aber gehen
var
WuerfelErgebnisse=Array[1..6] of Integer; randomize; for i := 1 to 6 do WuerfelErgebnisse[i]:=0; for i := 1 to AnzahlDerWuerfe do WurefelErgebnisse[random(6)+1]:=WurefelErgebnisse[random(6)+1]+1; (BTW: Passys ist ziemlich unbrauchbar, da die ergebnisse nur zwischen 1 und 5 liegen können) |
Re: belibig oftes Würfeln
Zitat:
Höchstens die TListView gibts nicht Delphi4 noch nicht, was ich aber nicht glaube. Ansonsten öffne einfach die .pas-Datei. |
Re: belibig oftes Würfeln
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i:integer; //anzahl der würfelrunden a:integer; //was im edit steht b:integer; //gewürfelte zahl eins,zwei,drei,vier,fünf,sechs:integer //gewürfelte zahlen begin a:=edit1.text; if i<a then begin b:=random(5)+1; //0 wird auch gewürfelt ;) if b =1 then eins:=eins+1 else if b = 2 then zwei:=zwei+1 else if b =3 then drei:=drei+1 else if b = 4 then vier:=vier+1 else if b =5 then fünf:=fünf+1 else if b = 6 then sechs:=sechs+1 //jetzt nur noch die zahlen an label übergeben... i:=i+1; end; |
Re: belibig oftes Würfeln
vieleicht nichmal für alle
Ich will nur schleifen und den zufallsmechanismus verwenden. Ich gebe vor wie oft der würfeln soll. Und der gibt mir dann aus wie oft die 1,2,3,4,5 und die 6 gewürfelt wurde. Meht spielereinen will ich erstmal gar nicht! |
Re: belibig oftes Würfeln
Zitat:
Gruß Hawkeye |
Re: belibig oftes Würfeln
Delphi-Quellcode:
Das ganze ginge natürlich mit einem Array viel kompakter:
procedure zufall;
var anzahl1,anzahl2,anzahl3,anzahl4,anzahl5,anzahl6:integer; i:integer; begin for i:=1 to 42 do //im Beispiel 42-mal würfeln case random(6)+1 of 1: anzahl1:=anzahl1+1; 2: anzahl2:=anzahl2+1; 3: anzahl3:=anzahl3+1; 4: anzahl4:=anzahl4+1; 5: anzahl5:=anzahl5+1; 6: anzahl6:=anzahl6+1; end; end;
Delphi-Quellcode:
@inherited: dein inc funktioniert nicht ;) anzahl[random]:=anzahl[random]+1 du rufst random 2-mal auf
procedure zufall;
var anzahl:array[1..6] of integer; i:integer; begin for i:=1 to 42 do inc(anzahl[random(6)+1]); end; @Hawkeye219: ich würde eher sagen durch das zufällige Angleichen zweier Werte sind die Ergebnisse nicht mehr so weit auseinander, also nicht mehr so verstreut und der Zufallseffekt wird geringer... :stupid: |
Re: belibig oftes Würfeln
ihr könnt mir doch sagen wenn ich ein zählschleife und den zufallmechanismus verwende wie ich das machen muss damit der mir dann ausgibt wie oft der die 1-6 gewürfelt hat bei n-maligem Würfeln oder?
|
Re: belibig oftes Würfeln
Delphi-Quellcode:
Grüße
begin
a:=strtoint(Edit1.Text); einser_zaehler:=0; zweier_zaehler:=0; dreier_zaehler:=0; vierer_zaehler:=0; fuenfer_zaehler:=0; sechser_zaehler:=0; i:=1; repeat //randomize; // nur einmal aufrufen z.B. in Form.create b:=random(5{6})+1; // random(6) ermittelt eine Zufallszahl zwischen 0 und 6 // Dein Ergebnis wird verfälscht wenn eine 0 gewürfelt wird // da das Ergebnis nicht gewertet wird aber ein Würfelversuch hochgezählt wird // deshalb random(5) +1 case b of 1:{inttostr(g)} inc(einser_zaehler); // weil Du ja wissen willst wie oft denn ein einser gewürfelt wurde 2:{inttostr(h)} inc(zweier_zaehler); 3:{inttostr(i)} inc(dreier_zaehler) ; 4:{inttostr(j)} inc(vierer_zaehler); 5:{inttostr(k)} inc(fuenfer_zaehler); 6:{inttostr(l)} inc(sechser_zaehler); end; inc(i) // Zähler hochzählen until i=a; Wozu das? {for f:= 0 to g do begin label16.Caption:=inttostr(f); end; for m:= 0 to g do begin label17.Caption:=inttostr(m); end; for n:= 0 to g do begin label18.Caption:=inttostr(m); end; for o:= 0 to g do begin label19.Caption:=inttostr(o); end; for p:= 0 to g do begin label20.Caption:=inttostr(p); end; for r:= 0 to g do begin label21.Caption:=inttostr(r); end; } label6.caption:=IntToStr(einser_zaehler); ... Klaus |
Re: belibig oftes Würfeln
!!!!!!!ich will ja >>>>schleifen<<<<< für das projekt verwenden!!!!!!
Also möchte ich für das projekt aussschließlich schleifen verwenden--> also for/while/repeat schleifen!!! Das müsste doch zu machen sein das die for schleife die auch zählt wie oft die was macht das die mir zählt wie oft ich z.b.: eine 1 gefüfelt bekommen habe... oder geht das nicht???? |
Re: belibig oftes Würfeln
Dann erklär bitte mal Deinen Code, ich verstehe ihn nicht.
Und schrei nicht so rum. Grüße Klaus |
Re: belibig oftes Würfeln
also ich dachte mir das so:
procedure TForm1.Button1Click(Sender: TObject); var a,x,b,c,g,f,h,i,j,k,l,m,n,o,p,q,r:integer; //Kann sein das da zuvile drin sind aber da liegt nicht der fehler begin a:=strtoint(Edit1.Text);//--> im Editfenster wird die anzahl eingegeben wie oft gewürfelt wird repeat //ich dacht es funzt mit repeat das ich den so oft wiederholen lasse er den wert der eingabe errreicht hat randomize; //Zufallsding wird aktiviert b:=random(6)+1; //der soll würfeln bzw. zufall aus den 6zahlen machen (wie gehöhnich) case b of 1:inttostr(g); //hier fängt es an wo ich nicht mehr weiterwusste 2:inttostr(h); //dachte ich kann gewürfelten zahl einer variable zuordnen die er später zum Zählen nimmt 3:inttostr(i); 4:inttostr(j); 5:inttostr(k); 6:inttostr(l); end; until a=a; //ersoll das halt solange wiederhohlen bis er die eingegebenen Zahl erreicht hat for f:= 0 to g do //jetzt soll er die Variablen auf zum Zählen nutzen die ich oben belegt habe. begin label16.Caption:=inttostr(f); //soll mir dann das endergäbniss ausgeben wie oft z.b.:die 1 gewüfelt wurde end; for m:= 0 to g do begin label17.Caption:=inttostr(m); end; for n:= 0 to g do begin label18.Caption:=inttostr(m); end; for o:= 0 to g do begin label19.Caption:=inttostr(o); end; for p:= 0 to g do begin label20.Caption:=inttostr(p); end; for r:= 0 to g do begin label21.Caption:=inttostr(r); end; //Ich dachte das könnte man so realisieren aber dem scheint nicht so. hab nicht geschrien. bin nur etwas greizt weil ich da schon den ganzen tag dran sitze und immer noch keine Lösung habe |
Re: belibig oftes Würfeln
Schaue dir meine .pas-Datei an.
Da ist das genau drin. :roll: |
Re: belibig oftes Würfeln
hab mal reingeschaut
kann ich das ergäbniss auch in einem Label ausgeben bzw. kannst du mir das zeigen ich seh in deinem Quellcode nicht ganz durch. Könntest du mir den mal erklären oder einfach nur kurtze erklärungen an den Rand schreiben Greez |
Re: belibig oftes Würfeln
Zitat:
Das random erstmal in einen Int packen und dann... peinlich. UND DAS IST EINE SCHLEIFE herrgott! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:13 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 by Thomas Breitkreuz