AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Random funktion mit variabel?

Ein Thema von Hofnarr · begonnen am 13. Apr 2006 · letzter Beitrag vom 13. Apr 2006
Antwort Antwort
Seite 1 von 2  1 2      
Hofnarr

Registriert seit: 13. Apr 2006
Ort: Keine Ergebnisse gefunden
6 Beiträge
 
#1

Random funktion mit variabel?

  Alt 13. Apr 2006, 07:50
Hallo erstmal

leute ich habe ein kleines Problem:

Ich spiele seit einer gewissen zeit mit der Randomize sach rum. nun bin ich an ein problem gestossen.

erstmal den quelltext:

Delphi-Quellcode:
procedure TForm1.Alles_WuerfelnClick(Sender: TObject);
var a,b,c,d,e,f,g,h,i,j:real ;

 randomize; //Zufallszahl für alle gleichzeitig
 a:=random (6)+1;
 b:=random (6)+1;
 c:=random (6)+1;
 d:=random (6)+1;
 e:=random (6)+1;
 f:=random (6)+1;
 g:=random (6)+1;
 h:=random (6)+1;
 i:=random (6)+1;
 j:=random (6)+1;
nun ich möchte in einem Feld eine zahl eingeben, welche dann die Grösse des "würfels" definiert.
ich habs mal mit variabel einfügen probiert(variabel anstadt die zahl 6), futzte aber nicht... kann jemand helfen?

danke schonmal im vorraus


EDIT: Sorry admins, kann man den thread ins richtige thema verschieben?
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Random funktion mit variabel?

  Alt 13. Apr 2006, 07:55
wie ich das sehe benutzt du Variablen vom Typ "real", wahrscheinlich hast die auch bei Random versucht zu verwenden oder?

Probier das mit einer Integer-Variablen.
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Random funktion mit variabel?

  Alt 13. Apr 2006, 07:58
Hi Hofnar!

Wenn ich deinen Code erweitere kommt etwa sowas raus:

Delphi-Quellcode:
procedure TForm1.Alles_WuerfelnClick(Sender: TObject);
var a,b,c,d,e,f,g,h,i,j:real ;
SizeWuerfel : Byte;
begin
SizeWuerfel:=25;
randomize; //Zufallszahl für alle gleichzeitig
a:=random (SizeWuerfel)+1;
b:=random (SizeWuerfel)+1;
c:=random (SizeWuerfel)+1;
d:=random (SizeWuerfel)+1;
e:=random (SizeWuerfel)+1;
f:=random (SizeWuerfel)+1;
g:=random (SizeWuerfel)+1;
h:=random (SizeWuerfel)+1;
i:=random (SizeWuerfel)+1;
j:=random (SizeWuerfel)+1;
end;
Dieses Vorgehen ist aber ... naja sagen wir ... unschön.
Ich will dir hier nicht gleich kompletten Code vor die Tastatur werfen. Deswegen nur ein Hinweis: Vielleicht (sicher) macht es sich gut, eine Klasse TWuerfel zu erstellen. Wenn du dazu weitere Tips brauchst, sag "Bescheid"
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: Random funktion mit variabel?

  Alt 13. Apr 2006, 08:07
Randomize sollte nur einmalig im Programmablauf aufgerufen werden und nicht ständig bei jedem Click. Daher bewege Randomize in das OnCreate oder OnShow Ereignis deines Formulars.

PS: irgendwie völligst die falsche Abteilung? Was hat das mit der Delphi IDE zu tun?
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

Re: Random funktion mit variabel?

  Alt 13. Apr 2006, 08:30
Es reicht doch wenn die Variablen auch vom Typ Byte sind.

Delphi-Quellcode:
var
  a, b, c, d, e, f, g, h, i, j: Byte;
MfG
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Benutzerbild von Kroko1999
Kroko1999

Registriert seit: 21. Apr 2005
Ort: Spremberg
455 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Random funktion mit variabel?

  Alt 13. Apr 2006, 08:44
ich hätte es so gemacht:
Delphi-Quellcode:
procedure TForm1.Alles_WuerfelnClick(Sender: TObject);
const
  coSize = 6;
var
  A: array[0..9] of Byte;
  I: Byte;
begin
  for I := Low(A) to High(A) do A[I] := Random(coSize)+1;
end;
Da sprach der Stumme zum Blinden: "Du wirst sehen ..."
oder
Wer lesen kann, ist klar im Vorteil!
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#7

Re: Random funktion mit variabel?

  Alt 13. Apr 2006, 08:51
Musst du denn die Werte alle speichern?

oder reicht es nicht wenn du am ende einfach die summe hast?

Delphi-Quellcode:
function Wuerfeln(Wuerfel, Anzahl: Integer):Integer;
var i: Integer;
begin
  Result:=0;
  for i:=1 to Anzahl do
    Result:=Result+Random(Wuerfel)+1;
end;
Und zum Schluss:
Real sollte nicht mehr verwendet werden, nimm lieber (wenn schon Fließkomma) Single, Double oder Extended. Warum? afaik weil Real reichlich subobtimal in der Performance ist weil es 48 Bit ist (???). Richtig?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Hofnarr

Registriert seit: 13. Apr 2006
Ort: Keine Ergebnisse gefunden
6 Beiträge
 
#8

Re: Random funktion mit variabel?

  Alt 13. Apr 2006, 08:52
hmm... ich habe mal deinen Hinweis umzusetzen versucht... und das ist dabei rausgekommen:

Delphi-Quellcode:
Procedure TForm1.Alles_WuerfelnClick(Sender: TObject);
var a,b,c,d,e,f,g,h,i,j:real ;
va:byte;

va:=strtoint(sz.Text);
 randomize; //Zufallszahl für alle gleichzeitig
 a:=random (va)+1;
 b:=random (va)+1;
 c:=random (va)+1;
 d:=random (va)+1;
 e:=random (va)+1;
 f:=random (va)+1;
 g:=random (va)+1;
 h:=random (va)+1;
 i:=random (va)+1;
 j:=random (va)+1;
aber funzen tuts net richtig so...

@chaosben gib nir nochma ein tipp bittöööö ^^

@muetze1 1.doch sollte bei jedem klick eine random zahl ausgeben
2.war mir klar hab ich aber erst nach dem schreiben bemerkt... ich hab die admins ja noch gebeten den thread zu verschieben

@glkgereon mir war leider bis heute nur Int und Real bekannt... was ist den der Unterschied? aussser die bit?
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#9

Re: Random funktion mit variabel?

  Alt 13. Apr 2006, 08:54
Zitat von Hofnarr:
@muetze1 1.doch sollte bei jedem klick eine random zahl ausgeben
trotzdem muss und soll Randomize genau einmal aufgerufen werden.
Randomize initialisiert den Globalen zufallsgenerator, und wenn man ihn nochmal initialisiert wird er nicht wirklich zufälliger.
einmal im OnCreate und gut ist.
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#10

Re: Random funktion mit variabel?

  Alt 13. Apr 2006, 08:56
@glkgereon

Zitat von Online-Hilfe:
Der generische Typ Real entspricht in seiner aktuellen Implementierung dem Typ Double (und damit dem Typ System.Double in .NET).

Der Typ Real48 (6 Byte) hatte in früheren Object Pascal-Versionen den Namen Real. Wenn Sie Quelltext neu compilieren, der den alten Typ Real (6 Byte) in Delphi enthält, ändern Sie diesen Typ in Real48. Die Compiler-Direktive {$REALCOMPATIBILITY ON} wandelt den Typ Real wieder in den alten 6-Byte-Typ um.
Gruß Hawkeye
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz