ロールプレイングゲームの一般的なサイコロをシミュレートするプログラムまたは機能を実装します。少なくとも2つの最も一般的なサイコロであるd6とd20を処理する必要があります。
ただし、ステレオタイプのゲーマーが期待どおりに機能するはずであり、実際のサイコロの動作としては機能しません。
これはゲーマー間の冗談であり、非常に重要なロールに特別に幸運なサイコロを振ることができます。以前にたくさんのサイコロを投げ、「1」になったサイコロを選択してから、再び手に入れるまで「1」を複数回振ったいくつか。その後、それらは1を順番に複数回振ったので、それらを慎重に保存します。したがって、次に1を振る確率は非常に低くなるはずです。
もちろん、ロールは統計的に独立しているため、これは実際のサイコロの動作とは異なります。
シミュレートされたダイスは、以前のロールを考慮に入れ、ギャンブラーの誤解におけるギャンブラーが期待どおりに動作するように機能する必要があります。たとえば、多数の低い数字が出た場合、高い数字を出せる確率を高くする必要があります。
ただし、これは不正行為であるため、よく隠す必要があります。これは、プログラムを少し見ただけで、あなたが不正行為をしたことを明らかにしてはならないことを意味します。つまり、以前の結果を明示的に保存し、スローするたびにそれらを読み取ることは、疑わしいことになります。サイコロのこの「プロパティ」を非表示にする必要があり、それをもっともらしい否認可能にして正直な間違いに偽装する場合はボーナスポイントを獲得する必要があります。(たとえば、「意図しない」欠陥で独自のRNGを作成します)
有権者は、この「欠陥」がどれほど隠されているかを考慮に入れてください。
プログラムは明確で、難読化されていない必要があります。難読化されたプログラムで悪質なコードを隠すのは簡単すぎます。
getRandomBetween(1,d)
私はそれをより深く見るようになります。