![]() |
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:44 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