Brauche "todsichere" Zufallszahlen
Übersicht

Apocalyptic |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn er sein Programm compiliert verteilt, kann ihm das ja egal sein ![]() Aber ich denke, dass es eindeutig die bessere Variante ist, dass ganze über den Host laufen zu lassen. |
||
Suum cuique
[ www.ffs-net.de.vu ] [ Raycaster ] |
![]() |
Sebastian |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eindeutig , sowas muss Server ( o. Host) -seitig gemacht werden !
Und solange wird das Versenden nun auch nicht brauchen ..... ... Voraus gesetzt man macht es richtig. Ich hab da auch ne Idee: Man schickt 30s ( oder länger ) eine zufällige Zahl zu den Clients, diese kann dann ja genutzt werden um mit einem überall gleichen Algo alle Zufallszahlen zu erzeugen die bis zur nächsten Übertragung fällig sind. Das Ergebniss wären zufällige Zahlen, die doch überrall gleich sind. Einzigtes Problem ist das der Algo aus einer Zahl eine immergleiche Folge von z-Zahlen Produzieren müsste, was schweirig , jedoch nicht unmöglich ist .... |
||
Seit 2 Jahren kein BlitzBasic und kein Windows mehr, und stolz darauf ! |
![]() |
stfighter01 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@sebastian
wo wir wieder beim zufallsgenerator wären *g* @x-pressive ich würde es einfach mit dem normalen randseed probieren. einen algo kann man noch immer schreiben. mach halt eine zwischenfunktion die du schnell aktualisieren kannst z.b.: BlitzBasic: [AUSKLAPPEN]
|
||
Denken hilft! |
![]() |
Sebastian |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eigentlich nein, denn das Zufalls Elemet liefert der host , alles was man machen muss ist aus einer Zahl einen Zahlenfolge zu berechnen.
Was kein all zu großes Problem sein dürfte ..... |
||
Seit 2 Jahren kein BlitzBasic und kein Windows mehr, und stolz darauf ! |
![]() |
stfighter01 |
![]() Antworten mit Zitat ![]() |
---|---|---|
wobei diese zahlenfolge aber aussehen sollte als wäre sie zufällig-> s.h.: zufallsgenerator ![]() |
||
Denken hilft! |
![]() |
BlitzChecker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei deiner Lösung gibt es nur zwei kleine Probleme:
Was ist bei einer Netzwerkstörung? (OK, wenn es keine so wichtigen Zahlen sind, kann man es ja noch verkraften) Das Netzwerk ist nich die schnellste Lösung, bei Reflexspielen fatal. |
||
www.xairro.com |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Totsichere Zufallszahlen gibt es in der Natur zuhauf. Nimm ein gutes Micro, ein gutes Aufnahmegerät (mit einem gutem AD-Wandler (kein billigen MP3-Player oder Mobiltelefon mit Aufnahmefunktion)) und nehme einen Wasserfall damit auf. Schneide jeweils alle HightBytes ab (da es dort zur nicht voller Aussteuerung bzw. Übersteuerung kommt). Also nur die LowBytes benutzen. Bei einer Abtastung von 44100 Hz Mono, hast du dann schon nach 23,777 Sekunden 1 MB an nützlichen Daten die rein Zufällig sind und von KEINEM Superrechner erraten werden können. Ausser der Computer ist Gott persönlich. '''Oder aber auch Deepfort, die Erde etc... ![]() |
||
![]() |
x-pressive |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das Problem sind nicht die verschiedenen Blitz-Versionen, sondern oft die verschiedenen Prozessortypen. Da hilft auch kompilieren nichts.
Aber ich habe mal drei verschiede Zufalls-Algos ausgegraben und kompiliert, um schon mal ein Problem auszuschliessen. Könnt ihr das Programm mal eben testen: Download Zufalls-Test Bei mir kommt folgendes raus: Zitat: FÜNFZEHN WERTE ZWISCHEN 1 UND 5 ALGO1: 4 2 1 4 3 1 5 3 2 5 4 2 1 4 3 ALGO2: 5 3 3 2 4 5 1 3 2 1 4 1 2 4 1 ALGO3: 4 1 1 5 4 4 3 3 1 4 4 4 3 5 5 |
||
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei kommt genau das gleiche raus... | ||
MegaTefyt |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also, mein Vorschlag wäre gewesen, dass du einen "hardcoded" Zufallszahlenreihe benutzt, die du manipulieren kannst.
Also beispielsweise ein 1000er-Array befüllt mit Zufallszahlen, das bei allen Clients GLEICH ist (fest im Programmcode). Oder es wird vom Server generiert und am Anfang übertragen. Der springende Punkt dabei ist: du schreibst einen Algorithmus, der anhand eines Wertes aus der Zahlenreihe eine komplett neue Zahlenreihe generiert. Da die Reihe ja bei allen Clients gleich ist braucht nur der Manipulationswert übertragen werden, so dass für einen Wert von 1 eine andere Zufallsreihe rauskommt als für 2. So in etwa... ^^ |
||
![]() |
Sebastian |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Also, mein Vorschlag wäre gewesen, dass du einen "hardcoded" Zufallszahlenreihe benutzt, die du manipulieren kannst. Also beispielsweise ein 1000er-Array befüllt mit Zufallszahlen, das bei allen Clients GLEICH ist (fest im Programmcode). Oder es wird vom Server generiert und am Anfang übertragen. Der springende Punkt dabei ist: du schreibst einen Algorithmus, der anhand eines Wertes aus der Zahlenreihe eine komplett neue Zahlenreihe generiert. Da die Reihe ja bei allen Clients gleich ist braucht nur der Manipulationswert übertragen werden, so dass für einen Wert von 1 eine andere Zufallsreihe rauskommt als für 2. So in etwa... ^^ So in etwa meinte ich das auch bloß das ich keine Reihe übertragen wollte sondern einen Wert aus dem eine Reihe Berechnet wird ......... |
||
Seit 2 Jahren kein BlitzBasic und kein Windows mehr, und stolz darauf ! |
![]() |
x-pressive |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aber wenn einer der obigen Algos funktioniert, wäre es doch schon perfekt -dann braucht der Host nur noch seine RandomSeed-Zahl an alle Teilnehmer übertragen und jeder Rechner kann eine Runde selbstständig abarbeiten, weil garantiert die selben Zahlen kommen. Das wäre am saubersten und am einfachsten. Könnt ihr das mal testen? Ich sitz hier vor nem Athlon -vielleicht bringt ein Pentium ja andere Resultate, das müsste ich halt wissen.
Am Ende einer Runde werden alle Rechner immer wieder synchronisiert, d.h. das Spiel wartet, bis alle fertig sind. Am Anfang der nächsten Runde übeträgt der Host wieder ein RandomSeed an alle. Wenn jetzt noch alle genau die selben Zufallszahlen bekommen, müsste das doch passen, oder habe ich inzwischen eine Denkblockade? |
||
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL |
MegaTefyt |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Bei mir ist das obige Ergebnis exakt das gleiche auf einem Intel Pentium 4 3,2 Ghz Extreme Edition. | ||
![]() |
x-pressive |
![]() Antworten mit Zitat ![]() |
---|---|---|
Na, dann müsste das doch eigentlich funktionieren... werd' ich mal testen... | ||
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL |
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
^ Es ist sogar so, dass die Zufallszahlen in BB teilweise auf das Betriebssystem ankommen, daher kann man nicht davon ausgehen dass sie immer in der gleichen Reihenfolge auftreten. Vielleicht solltest du mal Google befragen und selber einen Zufallszahlenalgo Nachcoden. Was ich zu dem Thema eben interessantes gefunden habe, ist:
Lineare Kongruenz-Generatoren |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
Florian |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
BlitzBasic: [AUSKLAPPEN]
|
||
Absoluter Beginner |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Afaik ist Mersenne Twister der bessere / beste "Zufallszahlen" Generator
Also sollte man lieber den nehmen ![]() |
||
Error Inside! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group