登山隊の構成と活動

このゲームの操作単位(プレイヤーが指示を与える対象)は、隊員個人ではなく、
隊(パーティ)が最小単位です。隊員が一人だけの隊も編成可能ですが、
個人に命令するのではなく、常に隊に対して命令が出せます。

というわけなので、「隊」というクラスを設計するに先立って、その仕様について
考察してみます。

隊員リスト

「パーティ=隊員の集まり」なので、文字通り隊員クラスのポインタを配列に記憶します。
(1つの隊あたりの最大人数は、10人としておきます。)

このうち、最初の1人目をリーダーとして扱います。
リーダーの苗字は隊名に使われるほか、報告時の顔グラフィックなどにも関係します。

また、リーダーの個人能力「統率」÷10よりも隊員数が多いと、
隊員の士気が下がるか何かマイナス効果が発生するようです。

所持品

ルート工作やキャンプ設営に出かけるときには、対応した登山具を現地に持っていきます。
もちろん、不測の事態に備えて食料も持っていくべきです。

ただし、いずれの所持品にも重量があり、荷物が増えると隊の移動速度が低下します。
このことを踏まえて、効率的に運搬と作戦遂行をこなすというのが、このゲームの本質です。

プログラミング上は、以下の8つの品目の所持数をカウントする配列を用意すればよさそうです。
携帯食料1kg食料パックを開封したもの。1個で1人1食分
食料パック10kg携帯食料10食分をまとめたもの。
使用中酸素8kg使用中の酸素ボンベ数です。酸素が切れると消滅します。
酸素ボンベ8kg未使用の酸素ボンベ数です。
登攀セット6kgルート工作に使います。1個で50m分の工作ができます。
登壁セット8kg壁専用のルート工作キットです。1個で50m分の工作ができます。
テント3kg中間キャンプ設営に使うテントです。
整地セット5kgキャンプ設置可能数を増やすための道具です。

所持品は、その総重量が評価されるため、計算用の関数を用意しておきます。
また、食料パックの開封、梱包や工作キットの保有確認メソッドなども用意しておくべきかもしれません。

現在位置と移動ルート、帰還先

隊の現在位置は、管理の都合上、発見済みルート上に限られます。
特に移動していないときは山の頂点に一致します。
これをプログラム上で管理する方法を検討します。

こういうときは定石どおり、図のように点S、点列D
そして、変数tで管理させてみようと思います。

移動していないときの現在位置または移動開始直後の出発点をSとします。
ついでに、移動開始時にリセットされる変数tを用意します。

パーティを移動させるときは、発見済みルートでつながった複数の山の頂点列で指示します。
これを、D={D1,D2,...Dn}とします。

さて、D==φのとき、パーティは移動していませんので、現在位置はSです。

D!=φのときは、パーティは移動を命ぜられています。
ゲーム中の時間が経過すると、パーティの登攀速度や勾配、風などの条件を総合して、
移動量Δtを計算します。これを、tに加算していくことにしていきます。

そしてこのとき、パーティの現在位置は、tS+(1-t)D1で得ることにします。
tは、0から増え続け、1に近づくほどD1に近づいていきます。

そして、tが1以上になったとき、

  1. SD1とします。
  2. tから、1を引きます。
  3. n(Dの残り要素数)について、

なお、停止命令中や遭難中および食事中、睡眠中には、tは増加させません。

「帰還先」は設営済みキャンプのいずれかを記憶しており、
「帰還」命令やアタック成功後などに帰還するときの目的地に自動設定されます。

作戦内容

パーティの目的は、指定された場所で何かすることですので、その「何をする」の部分を記憶しておき、
同時に指示された移動経路に沿った移動が完了した時点で、それを実行に移します。

パーティに出せる作戦行動には色々ありますが、わかっているだけ網羅してみます。

作戦名目的地 内容
ルート探査任意経路の先 目的地から山頂に向かう未発見ルートをさがします。
発見した場合、さらにその先へ移動して探査を継続することもできます。
ルート工作確定ルート上 目的地から確定ルートに沿って上に工作を行います。
区間単位の工作完了度が増加します。
適した工作キットを持参している必要があります。
運搬キャンプ 目的地のキャンプに、パーティの所持品をすべて運び入れます。
開封済み食料と使用中の酸素ボンベは除外で、パーティに残ります。
整地工作確定ルート上 目的地の最大テント設営数を増やします。
整地工作セットを所持している必要があります。
キャンプ設営確定ルート上の最終キャンプより上 目的地の設置条件が整っており、テントを所持していれば設営を開始します。
テント増設キャンプ 目的地のテントを、最大設営数になるか、所持テントがなくなるまで増設します。
テント撤去キャンプ キャンプのテントを撤去し、回収します。
最後の一張りは、最終キャンプのみ撤去でき、その場合キャンプ内の荷物を
回収するか放置するか選択することになります。
帰還・BC帰還キャンプ 帰還先として保持しているキャンプ先を目的地に設定し、移動します。
BC帰還は、帰還先をBCに設定してから移動する複合命令です。
移動完了したら待機状態になります。
キャンプ移動キャンプ 指定キャンプへ移動し、待機します。
帰還先キャンプは変更されません。
移動任意経路の先 指定した経路で移動します。
のぼり、くだりが混在しても構いませんが、同じ地点を2度通ることはできません。
移動完了後は、そこで待機します。
アタック確定ルート経由で頂上 山頂を目指して移動します。
到達後は、帰還命令と同じ動きをします。
合流任意経路の先 目的地に向かって移動しますが、途中で合流目的パーティに接触できると、
その場で停止状態になり、パーティ編成モードに入ります。
行き違いになって目的地に到着したときは、何もせず待機状態になります。
捜索任意経路の先 目的地に向かって移動し、遭難パーティを探します。
遭難パーティが見つかるかはランダムなようですが、
一定時間捜索するたびに、捜索を継続するか問い合わせてきます。

なお、帰還以外の作戦中(目的地へ移動中および作戦実行中)にアクシデントに遭遇し、
続行不可能になると、帰還先キャンプへの帰還命令に自動設定になります。



システムの考察へ  トップページ

Copyright©2013 Amadela

inserted by FC2 system