アプリ本体の機能
リプレイアプリ本体に持たせる機能を列挙します。
・リプレイスタート時にマップを初期状態に戻す機能。
・各プレイヤーの現在位置やワープ先などの管理。
・買い物料、株価など各種計算。
・マップの全体状況(マップの形状、お店の持ち主、値段など)の管理。
・止まったマスでのイベント(株売買やサラリー、優勝判定なども含む)の管理。
マップの全体状況の管理には、座標の概念を使います。各マップの座標・エリアの記号はこちらに掲載しています。また、リプレイデータには買い物料などの情報を書いていないので、これらは全てアプリ側に持たせる必要があります。使う計算式はこちらにまとめておきました。
必要なデータ
マップの全体状況の管理には「マップのマス配置データ」、「初期買い物料」、「お店が属するエリア」、「初期お店価格」、「増資された額」が必要です。「お店が属するエリア」は、株価の計算や、チャンスカードで使います。
お店関係・株価の計算に必要なデータは、「初期買い物料」、「初期お店価格」、「増資された額」、「株価変動率」です。これらと「エリア内のお店の数」があれば、買い物料の計算ができます。「お店の数」は計算する度に数えても良いのですが、別に管理できればなお良いでしょう。株価の計算には「初期お店価格」、「増資された額」、「株価変動率」を使います。
更にイベント用のデータとしてストリートごとの「サラリー基本給・能力給」、「目標金額」も必要です。
リプレイ中に管理する必要があるデータは、こちらにまとめておきました。
アプリを作る時の注意
アプリケーションで株価やお店の値段などを管理する時は、計算式に注意する必要があります。ほとんどの計算部分では、計算結果の小数点以下は全て切り捨てられ、その結果を使います。小数点以下を残しておいて、次回の計算にも考慮する、ということはありません。
買い物料・株価の計算をする時は、そのつど計算過程の最初から再計算しましょう。増分だけ計算しようとすると間違いが起きる可能性が高くなります。例えば、増資した時の株価の上昇処理では、「いくら上昇したか」を計算するのではなく、「上昇した結果、いくらになったか」を計算するようにします。
いたストGKでの株価変動のタイミングを示しておきます。
プレイヤーの行動終了→所持金不足で株・お店を売る→次のプレイヤーの行動直前
A B
タイミングAでは「チャンスカード」と「お店価格変動」による変動が、タイミングBでは「株の売買」と「お店価格変動」による変動が別々に起きます。
更にいたスト2とGKの細かい処理の違いにも注意する必要があります。この違いはこちらに載せておきました。これらのイベントが起こった時は、いたスト2かGKかで処理を分ける必要があります。