![]() |
False or True zufällig.
Guten Abend zusammen.
Ich bin gerade dabei ein Ping Pong Spiel in 2D zu programmieren. Die Bewegung des Balls habe ich mit 2 Booleans und einem Timer gemacht. Ein Boolean sorgt für die x-Achse. Also wenns true ist geht er 2 nach rechts, sobald er clientwidth überschreitet wirds zu false und geht 2 nach links. Problem ist, dass der Ball am Anfang immer nach rechts geht, also das Boolean zu Beginn immer true ist. Es soll aber zufällig sein ob er zu Beginn nach links oder rechts geht, also Zufall ob das Boolean false oder true ist. Hat jemand ne Idee, wie ich das umsetzten könnnte?:) |
AW: False or True zufällig.
Randseed := Gettickcount;
Dir := Random(50)>25; Das wäre zum Beispiel eine Variante. Wichtig ist das der Randseed gesetzt wird, da random nicht wirklich zufällig ist. |
AW: False or True zufällig.
Jetzt wird permanent zwischen false und true gewechselt. Das hilft mir aber nicht, da nur zu Beginn zufällig false oder true entschieden werden soll.
|
AW: False or True zufällig.
Dann verwende disen Code nur am Anfang.
|
AW: False or True zufällig.
Besser so:
Delphi-Quellcode:
//uses math;
function QQuersumme(x: integer): integer; begin Result := Sign(x) * (1 + ((Abs(x)-1) mod 9)); end; (* procedure TForm1.Timer1Timer(Sender: TObject); begin Checkbox1.checked:= odd(QQuersumme(GetTickCount)); end; *) procedure TForm1.Timer1Timer(Sender: TObject); begin if odd(QQuersumme(GetTickCount))=true then BEGIN Checkbox1.checked:=true; Timer1.Interval:= Timer1.Interval +15; END else BEGIN Checkbox1.checked:=false; Timer1.Interval:= Timer1.Interval -15; END; //Fenster definieren, um Ausreisser zu verhindern If Timer1.Interval>1100 then Timer1.Interval:=1000; If Timer1.Interval<900 then Timer1.Interval:=1000; end; |
AW: False or True zufällig.
Das ist doch ein Paradebeispiel für Odd:
Delphi-Quellcode:
Dir := Odd(Random(2));
|
AW: False or True zufällig.
werde es ausprobieren, danke.
|
AW: False or True zufällig.
Jetz nicht wirklich, oder?
Zitat:
|
AW: False or True zufällig.
Zitat:
|
AW: False or True zufällig.
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 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-2025 by Thomas Breitkreuz