手続き的に生成されたレベルを使用するゲームを作成しています。テストするときは、レベルを再現したいと思うことがよくあります。今のところ、レベルを保存する方法はありませんが、より簡単な解決策は、Pythonのランダムモジュールで使用されるシードを再利用することだと思いました。しかし、私は両方random.seed()
を使用してみましたがrandom.setstate()
、どちらも結果を確実に再現するようには見えません。奇妙なことに、シードを再利用すると、同じレベルが数回続けて取得されることがありますが、完全に100%信頼できるわけではありません。レベルを通常どおりに(その情報を含むファイルとして)保存する必要がありますか?
編集:
みんな助けてくれてありがとう。私の問題は、Pygameのグループからランダムにスプライトを選択していたという事実に起因していることがわかりました。スプライトは順序付けられていない辞書ビューで取得されます。その部分にPygameのスプライトグループを使用しないようにコードを変更しましたが、現在は完全に機能しています。