| シミュレーションゲームだけでなく、ゲーム作成において乱数は、よく使われる。 |
| シューティングゲームやアクションゲームでは、敵の動きを決めるのに乱数が使われている。 |
| |
| 戦略シミュレーションでは、コンピューターの行動を決定するのに乱数が使われるわけだが、厳密に指定しな |
| いと、行き当たりばったりの行動になってしまい、歯ごたえのないゲームになってしまう。 |
| (当サイトでは、まずその行き当たりばったりの思考ルーチンを作ることを目的とします) |
| |
| この乱数の使い方は、 |
| CInt((Rnd*5)+1) |
| |
| とすれば、1〜5の範囲で値を発生させることができる。 |
| もし次のようなプログラムがあるならば、 |
| |
| intCommand=CInt((Rnd*5)+1) |
| |
| Select Case intCommand |
| Case 1:pubKousaku '耕作 |
| Case 2:pubToushi '投資 |
| Case 3:pubTrade '取引 |
| Case 4:pubTyouHei '徴兵 |
| Case 5:pubKunren '訓練 |
| End Select |
| |
| 変数intCommand に入っている値を見て、命令を発する処理になっている。 |
| 乱数によって、1が発生すれば、「耕作」を行うことになり、pubKosaku内に記述された独立プログラムへ処理が |
| 飛ばされる。 |
| |
| pubKousakuでは投入された資金に見合った農地が増加し、使用した資金が削減される。 |
| これらの処理を第1国〜16国まで繰り返していけば、とにかく動くシミュレーションゲームができあがる。 |
| では、現時点で何が問題になっているか検討してみよう。 |
| |
| 乱数は必ず使うことになるといっても過言ではないほど重宝するが、乱数を使って、上記のプログラムを繰り |
| 返した場合、戦略性のまったくない命令を発し続けることになる。 |
| つまり、行き当たりばったりな命令を出しているわけだ。 |
| |
| 例えば、資金が400もあれば、秋に耕作するより夏に耕作を行ったほうが得策である。 |
| 収穫が秋であるため、夏の耕作は翌季節に反映されるからだ。 |
| 秋に耕作を行っても、1年後にしか反映されない。トータルとしてみた場合、耕作は夏に行うほうがよい。 |
| そして、余剰食糧があれば、秋に売却して現金化したほうが、今後、投資や徴兵などにも生かすことができる。 |
| |
| どの命令をいつ、どれだけの資金で行うか、といった戦略性を思考ルーチンに実装していないと、行き当たり |
| ばったりのアホルーチンになってしまう。 |
| 内政面だけではなく、隣接国の状況にも気を配らないといけない。 |
| 隣国の兵力が500あるときに自国兵力が100程度しかない状態で、のん気に耕作などやっていられない。 |
| |
| すると命令発行以前に、隣接国の状況を調べて、自国の弱点があれば、それを優先して補うような処理が |
| 必要だと分かる。前述のプログラムには、それも欠けていたのだ。 |
| このような繰り返しで、徐々に思考ルーチンを強力なものへと修正していくことにする。 |
| |
| |