![]() |
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:
|
AW: False or True zufällig.
Zitat:
Ein zufälliger Bool-Wert wird der Variable zugewiesen. Und was passiert wenn man den öfter und immer wieder ausführt? Immer noch ein zufälliger Bool-Wert. Und wenn der bei Mondfinsternis nach 20 Uhr ausgeführt wird? Immer noch ... Rufe diesen Code also nur dann auf, wenn du eine zufällige Richtung benötigst. Oder haust du auch pauschal jede Sekunde auf den Lichtschalter und wunderst dich warum das Licht flackert? :roll: |
AW: False or True zufällig.
Zitat:
Habs in ein Button gepackt,klappt super. |
AW: False or True zufällig.
Zitat:
|
AW: False or True zufällig.
Zitat:
|
AW: False or True zufällig.
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:39 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