![]() |
Der "Color-Code"
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo meine lieben mit Streiter des Programierfeldes.
Ein Kumpel von mir weis das ich Spiele Programierer werden will und gab mir die klitze kleine aufgabe für ihn ein "Spiel" zu entwerfen. Er nannte es "Color-Code" Und wie der Name schon sagt es geht darum, das man einen Farben Code zusammen bekommt und ihn sich merkt. Alles funktionier einband frei das programm generiert einband frei und bla bla bla nur! ich müss meinen Abgleich zurück Initalisiren, Mit "Abgleich:=StrToInt('');" gehts nicht wäre Super wenn da jemand was passendes hätte :) Ich werde das Spiel gleich mal mit Anhängen :) Eine gute nacht und einen Traum voller Codes Wünscht euch DragonD93 |
AW: Der "Color-Code"
Zitat:
|
AW: Der "Color-Code"
Guten Abend...
2 Nachfragen: - Kannst du bitte mal den Ablauf des Spieles näher erklären ? - wozu dienen die 2 Variablen Abgleich und Abfolge ? Hinweise: - Randomize nur einmal im Programm aufrufen. z.B. im OnCreate des Formulars - DRY Prinzip. Es gibt Möglichkeiten doppelten Code zu vermeiden. Aber erst mal muß es funktionieren...:zwinker: |
AW: Der "Color-Code"
Liste der Anhänge anzeigen (Anzahl: 1)
Eigentlich funktionierte bis bis auf das einmalige Setzen der Farben gar nichts...ich weiß nicht ob ich den Sinn des Spieles wirklich verstanden haben...
|
AW: Der "Color-Code"
Zitat:
Das hab ich schon öfter im Forum gelesen und wollte mal fragen, was dahinter steckt. Auch 'nur' DRY oder nochwas anderes? |
AW: Der "Color-Code"
Nein, kein DRY.
Der Zufallsgenerator liefert über die Zeit eine "gleichverteilte" Zahlenmenge. Initialisierst du ihn ständig neu (Randomize ist ja dafür da), dann kann die Verteilung ungünstig beeinflußt werden, wobei dann einige Werte viel öfters vorkommen, als Andere. Es könnte sogar passieren, daß sich Zahlengruppen in kurzer Zeit wiederholen.
Delphi-Quellcode:
program Project1;
{$APPTYPE CONSOLE} uses SysUtils; var i1, i2, i3, i4: Integer; i5, i6, i7, i8: Integer; begin try RandSeed := 123456789; //Randomize; i1 := Random(100); i2 := Random(100); i3 := Random(100); i4 := Random(100); RandSeed := 123456789; //Randomize; i5 := Random(100); i6 := Random(100); i7 := Random(100); i8 := Random(100); WriteLn(Format('%d %d %d %d', [i1, i2, i3, i4])); WriteLn(Format('%d %d %d %d', [i5, i6, i7, i8])); ReadLn; except on E: Exception do begin WriteLn(E.ClassName, ': ', E.Message); ReadLn; end; end; end. ![]() ![]() |
AW: Der "Color-Code"
Verstehe, danke.
RandSeed nutzt man also (wie in deinem Beispiel), wenn man Zufallszahlen reproduzieren oder einen "ganz bestimmten Zufall" haben will? Macht wahrsch. nur zu Testzwecken Sinn, da ja in den Links bzw. der Hilfe steht, dass man es keinesfalls zur Verschlüsselung verwenden soll. |
AW: Der "Color-Code"
Man sollte besser von Pseudozufall (engl. pseudo random) sprechen. Der eigentliche Generator liefert immer eine feste Folge von 32-Bit Werten, insgesamt 2^32 = 4294967296. Das einzige was man mit Randseed (oder Randomize) wählt, ist die Startposition innerhalb dieser Folge.
Man sollte den Generator u.a. deshalb nicht für ernsthafte kryptographische Zwecke benutzen, weil die 2^32-Zustände einfach viel zu wenig sind (und damit in vielen Fällen dann Bruteforce-Attacken möglich sind). |
AW: Der "Color-Code"
Zeichnet sich ein ''Zufall'' nicht dadurch aus, das jede option bei jeder ziehung die selbe wahrscheinlichkeit hat und das es eben auch möglich ist immer die selbe sache zu ziehen?
(Möglich nur eben gering wahrscheinlich..) Daher müsste doch Randomize genau das gewünschte ergebeniss bringen oder ? einen reellen zufall |
AW: Der "Color-Code"
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 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