シミュレーションゲームを作成時のゼロでの除算やオーバーフローなど、よく出くわすエラーについて解説。思考ルーチン作成時には注意です
シミュレーションゲーム作成工房 より強力な思考ルーチンを求めて
ゲーム作成講座 | 地政学 | 無料ダウンロード | 当サイトについて | 更新履歴 | サイトマップ | リンク |

問題点:ゲーム作成時によくある問題(0での除算・オーバーフロー)  

計算機を使って、0で除算してみると「E」という文字が表示される。
「E」とはエラーの意で、ゼロでの除算はやってはいけないことになっている。
プログラム上で、0で除算する処理が行われると、エラーが発生して処理が停止する。
 
 
たくさんの数値を扱うので、知らないあいだにゼロでの除算が行われているかもしれない。
処理を停止させないために、除算を行っているプログラムでは、エラーの発生する余地がないか確認しないと
いけない。
 
例えば、自国と隣国の兵力差を求める場合、割り算を使用する。
このとき割る数がゼロだと、エラー発生となる。何度か作り直してみて、値を比較するときによく出くわすエラー
だと分かった。
 
※除算……割り算のこと
 
 
もうひとつ出くわしそうなエラーに、オーバーフローが挙げられる。
変数の型に数値が入りきらずにエラーとなってしまう現象だ。
例えば整数型(integer型)なら範囲は、−32768〜32767であり、許容範囲外の値を入れようとすると、
エラーが発生して処理は停止する。
 
 
処理を開始させると領国のパラメーターは次第に増加してゆくから、整数型でパラメーターを指定していると、
大抵、オーバーフローになってしまう。そこで長整数型(long型)を使って、このエラーになりにくいようにする。
長整数型の範囲は、−2147483648〜2147483647なので、よほどのことがない限り、オーバーフロー
にならない。と思っていたのだが、あっさりなってしまった。
 
 
実際、上図のような大きな値になるので、プログラムを修正してゲームバランスを調整しなければならない。
(これだけ大きな値が発生してしまうことは、思考ルーチンはもちろん、プログラムに問題がある)
 
  
Google
 
 
 
 
 
 
ゲーム作成講座 | 地政学 | 無料ダウンロード | 当サイトについて | 更新履歴 | サイトマップ | リンク |
Copyright (C) シミュレーションゲーム作成工房, All Rights Reserved.