AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit Zufallszahlen

Offene Frage von "Spezi"
Ein Thema von Spezi · begonnen am 8. Nov 2010 · letzter Beitrag vom 9. Nov 2010
Antwort Antwort
Seite 1 von 2  1 2      
Spezi

Registriert seit: 14. Feb 2009
Ort: Deutschland ;-)
65 Beiträge
 
Delphi 2005 Personal
 
#1

Problem mit Zufallszahlen

  Alt 8. Nov 2010, 18:23
Delphi-Version: 2005
Hi,

in meinem Programm will ich ein Feld mit einigen Punkten füllen. Diese sollen zufällig verteilt werden.
Jedoch werden die Punkte alle auf eine Linie gelegt, zwar mit unterschiedlichen Abständen aber alle auf eine Linie.
Ich habs jetzt mit vier Methoden versucht, aber alle erzeugen das selbe Ergebnis.
In der MEthode FormResize rufe ich schon randomize auf.
ich hoffe ihr könnt mir weiterhelfen.
Anbei ist mein QT mit den drei Möglichkeiten die ich bereits ausprobiert hab.
Vielen dank im vorraus!

mfg
Spezi

Delphi-Quellcode:
 Punkt : Array of Array of Integer;

...

for i:=0 to High(Muenze) do
  begin
    Punkt[i][0]:=round(random((25)+Paintbox1.Width));
    Punkt[i][0]:=round(random((25)+Paintbox1.Height)); (*
    Punkt[i][0]:=round(random*(Paintbox1.Width-50)+25);
    Punkt[i][1]:=round(random*(Paintbox1.Height-50)+25);(*
    Punkt[i][0]:=round(Math.RandomRange(10,Paintbox1.Width-30));
    Punkt[i][1]:=round(Math.RandomRange(10,Paintbox1.Height-30));*)

  end;
Wer Rechtschreibfehler findet darf Sie behalten
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Problem mit Zufallszahlen

  Alt 8. Nov 2010, 18:30
...
In der MEthode FormResize rufe ich schon randomize auf.
...
Wieso in OnResize?

Besser ist wohl OnCreate...
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Problem mit Zufallszahlen

  Alt 8. Nov 2010, 18:36
Randomize setzt den Zufallsgenerator zurück. wenn du ihn kurz nacheinander öfters initilisierts besteht die Gefahr, dass immer die gleichen Zufallszahlen generiert werden
Markus Kinzler
  Mit Zitat antworten Zitat
Spezi

Registriert seit: 14. Feb 2009
Ort: Deutschland ;-)
65 Beiträge
 
Delphi 2005 Personal
 
#4

AW: Problem mit Zufallszahlen

  Alt 8. Nov 2010, 18:49
mhm... ich hab es jetzt mal ins FormCreate geschrieben, leider ändert sich am Bild nix...
Die Punkte liegen immer noch auf einer Linie.
Wer Rechtschreibfehler findet darf Sie behalten
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

AW: Problem mit Zufallszahlen

  Alt 8. Nov 2010, 18:56
Wieso verwendest du eigentlich nicht den Typ TPoint?
Mehrdimensionale Arrays sollte man falls möglich vermeiden.
Nicht immer ist sofort zu erkennen, welche Dimension in welche Richtung geht.

Delphi-Quellcode:
type
  TPunktArray = Array of TPoint;
var
  Punkte : TPunktArray;

for i:=0 to High(Muenze) do
  begin
    Punkte[i].X :=round(random((25)+Paintbox1.Width));
    Punkte[i].Y :=round(random((25)+Paintbox1.Height));
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#6

AW: Problem mit Zufallszahlen

  Alt 8. Nov 2010, 19:12
Klingt als ob Du in X und Y bei Pixels das gleiche schreibst.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#7

AW: Problem mit Zufallszahlen

  Alt 8. Nov 2010, 19:36
Delphi-Quellcode:
// ...
Punkt[i][0]:=round(random((25)+Paintbox1.Width));
Punkt[i][0]:=round(random((25)+Paintbox1.Height)); // <-- zweimal x gesetzt
// ...
Vielleicht passiert dir der gleiche Fehler beim Zeichnen?
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Problem mit Zufallszahlen

  Alt 8. Nov 2010, 21:44
Zitat von lbccaleb;:
Zitat von Spezi;:
...
In der MEthode FormResize rufe ich schon randomize auf.
...
Wieso in OnResize?

Besser ist wohl OnCreate...
Wie kommt man eigentlich auf das schmale Brett randomize im OnCreate eines Formulars aufzurufen. Es sollte nur einmal pro Anwendung aufgerufen werden.

Und welche Stelle wird in einer Anwendung nur einmal aufgerufen?

Delphi-Quellcode:
program FooPrg;

...

begin
  Randomize;
  ...
end.
Nirgendwo anders würde ich das platzieren
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Problem mit Zufallszahlen

  Alt 8. Nov 2010, 21:47
Im onCreate des Hauptformulares wäre es im Notfall auch möglich.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: Problem mit Zufallszahlen

  Alt 8. Nov 2010, 21:49
Zitat von mkinzler;:
Im onCreate des Hauptformulares wäre es im Notfall auch möglich.
Im Notfall kann ich das Licht auch über den Sicherungskasten ausmachen, aber der Schalter ist doch wesentlich bequemer und genau dafür vorgesehen und garantiert ohne Nebeneffekte.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  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 01:00 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