Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

15.05.2011, 11:52

[gelöst] Unterschiedliches Programmverhalten im Normal- Debugmodus.

Hallo Leute.

Ich bin Gerade dabei mir ein Zufalls Dungeon Generator zu schreiben, bis jetzt bin ich soweit das das ein paar Räume in die Karte plaziert werden. Aber leider plaziert er mir immer nur ein Raum im Normalmodus. Ort und Größe des Raumes werden durch Zufall bestimmt, dies geschieht mit rand. Als ich dann das Programm debugt habe hat er es ausgeführt wie ich es mir vorgestellt habe, sprich im debugmodus habe ich mehrere Räume auf der Karte. Kann es sein das es an den Zufallszahlen liegt ich habe irgendwie das gefühl das es bei jedem neuen Versuch immer nur eine zufalls zahl bekomme z.B ist der Raum immer quadratisch. Im debugmodus erhalte ich unterschiedlich große werte. falls nötig poste ich noch mein Code dazu. Danke für eure Antworten.

Gruß Koschi
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Koschi« (15.05.2011, 16:54)


BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

2

15.05.2011, 12:28

Ein bisschen Code wäre nicht schlecht. Eigentlich darf sich ein Programm vom Verhalten her im Debug-Modus nicht vom Release-Modus unterscheiden.

Vielleicht kannst du das Problem lösen, wenn du vor dem ersten Aufruf von rand() srand(GetTickCount()) aufrufst.

3

15.05.2011, 12:37

Danke. Habe es jedesmal davor aufgerufen (stand mit der RandomFunktion), jetzt habe ich es nur einmal in der Main aufgerufen das funktioniert jetzt.
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

4

15.05.2011, 12:40

Wenn du es jedes Mal vor einem Aufruf von rand() aufrufst bekommst du immer gleiche Zufallszahlen, weil das Programm sehr schnell läuft und GetTickCount() mehrmals gleiche Werte liefert. Im Debug-Mode hat das funktioniert, weil das Programm langsamer lief und GetTickCount unterschiedliche Werte lieferte.

5

15.05.2011, 12:59

Ja sowas hatte ich mir schon gedacht. Aber ich wuste bis dato nicht das srand() einmal ausreicht.
Aber jetzt funst es fast so wie ich es mag. Danke Nochmal.
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

6

15.05.2011, 13:05

Ein Unterschied von Debug zu Release kann auch sein, dass Variablen im Debug Modus möglicherweise automatisch 0-initialisiert werden und im Release nicht. Das kann dann zu merkwürdigen unterschiedlichen Ergebnissen führen. -> Variablen IMMMER initialisieren.

7

15.05.2011, 16:53

Ja das habe ich mir angwöhnt, daran lag es auch nicht. Aber Danke für den Tip.
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

Werbeanzeige