2018 ソフトウェア設計及び演習用の班Wiki
18::gr09::発表
主な仕様
- すごろくゲームと、サイコロによる戦闘ゲームを融合。プレイヤーは1名。
- 最初は通常のすごろくと同様に、サイコロを振って出た目だけマップ上のマスを進む。
- キャラは複数のサイコロを持つことができ、一回振るごとに手持ちのサイコロは一個減る。
- マスの中には、手持ちのサイコロが増加または減少する、敵キャラとの戦闘に入る、などのイベントマスがあり、このイベントが終わった時点で手持ちのサイコロが無くなれば、GAMEOVERとなる。
- 戦闘におけるメインの武器もサイコロであり、出た目に応じて相手のHPが減少する。ここでも一回振るごとに手持ちのサイコロは一個減る。先にHPまたはサイコロが無くなったほうが負けとなる。
- ゴール後にラスボスとの戦闘があり、ルールは途中のマスでの戦闘と同じである。この戦闘で勝てばCLEARとなる。
モジュール分けと担当
-
STARTモジュール(今泉)
-
ゲーム起動後に一番最初に開かれる画面
- ゲームを始める →MAP・移動モジュールを呼び出す
- やめる →ブラウザを閉じる
-
ゲーム起動後に一番最初に開かれる画面
-
MAP・移動モジュール(伊東)
-
マップと自キャラと自キャラHP,所持サイコロ数を表示。選択肢は「サイコロを振る」と「アイテムを使う」
-
サイコロを振る
...サイコロモジュールを呼び出し、出目に応じて自キャラを移動させる
移動後は止まったマスの情報をイベント判定モジュールに渡す - アイテムを使う
...アイテムモジュールを呼び出し、使用するアイテムの選択を行う
-
サイコロを振る
-
マップと自キャラと自キャラHP,所持サイコロ数を表示。選択肢は「サイコロを振る」と「アイテムを使う」
-
サイコロモジュール(藤村)
- MAPモジュールから「所持サイコロ数」を渡される
- 乱数で出た目、「所持サイコロ数-1」を返す
-
アイテムモジュール(藤村)
-
「サイコロ1〜6(仮)」は使うとその数字を使うことができる。使用した数を出た目として返す。一緒にサイコロの総数を-1にして返す。
- 「薬」は使うとHPの回復を行う。その後サイコロモジュールを呼び出し、サイコロを振る。
- 「戦闘用」はマップ時には使えない。
- アイテムを所持していない、戦闘用をマップ画面経由で使用時は「使えません」の表記、アイテム選択画面へ戻る。
-
「サイコロ1〜6(仮)」は使うとその数字を使うことができる。使用した数を出た目として返す。一緒にサイコロの総数を-1にして返す。
-
イベント判定モジュール(佐々木)
-
止まったマスがなんのイベント属性なのかを判別して各イベントモジュールを呼び出す
- 戦闘イベント
- 戦闘以外のイベント(サイコロの増減)、アイテムの入手
-
止まったマスがなんのイベント属性なのかを判別して各イベントモジュールを呼び出す
-
戦闘モジュール(今泉)
-
自キャラ、敵キャラ、所持サイコロ数を表示。各キャラにはHPバーを表示。
選択肢は「アイテムを使う」、「サイコロを振る」 - 敵キャラの種類は2〜3種
-
ラスボス(最後のマス限定)
倒すと、GAME-CLEARモジュール呼び出し - モブ(中)、モブ(強)(HPの量で差をつける)
敵データは戦闘モジュール内にあり、イベント判定モジュールから渡される属性によってそれぞれ出現させる
-
ラスボス(最後のマス限定)
- 戦闘スタイルはターン制、自ターン/敵ターンを繰り返す
- 与ダメージ方法もサイコロの出目
戦闘の流れ
- 自ターン
-
サイコロ個数判定モジュールを呼び出し、戦闘ができる状態かを判別(0以下ならGAME-OVERモジュールを)
- 攻撃する敵キャラをキーボードで選択(矢印を表示させる)
- サイコロ(またはアイテム)を振り(サイコロモジュール呼び出し)、対象に出目分のダメージを与える(HPバーも減少させる)
ここで全敵のHPが0なら勝利判定を入れて、報酬のサイコロを所持サイコロ数にプラス(多めに)、その後MAP・移動モジュールを呼び出す
-
サイコロ個数判定モジュールを呼び出し、戦闘ができる状態かを判別(0以下ならGAME-OVERモジュールを)
- 敵ターン
-
乱数で1〜6の値を出し、それ分自キャラのHPバーを減少させる
ここで自キャラHP0以下ならGAME-OVERモジュール呼び出し
-
乱数で1〜6の値を出し、それ分自キャラのHPバーを減少させる
-
自キャラ、敵キャラ、所持サイコロ数を表示。各キャラにはHPバーを表示。
-
ボーナスモジュール(藤村→佐々木)
- マスに設定しといたサイコロの増減や、アイテムの入手などを行う
- その後、サイコロ個数判定モジュールを呼び出す。
-
サイコロ個数判定モジュール(佐々木)
- 所持サイコロ数をもらい、それが0以下ならば、GAME-OVERモジュールを呼び出す
- 1以上ならMAP・移動モジュールを呼び出す
-
GAME-OVERモジュール(今泉)
- 目の前が真っ暗になった...のようなテキストとBGMを流す、その後STARTモジュールを呼び出し
-
GAME-CLEARモジュール(今泉)
- コングラチュレーション!!...などのテキストとBGM流す、その後STARTモジュール呼び出し
感想
- 中田圭祐
- 佐々木良介 javascriptに関して会得できていない要素が多くて、モジュールのテストの際には、ネットの情報を駆使してひとつずつ修正していくしかなかった。思ったとおりに動作しないことも多々あった。人数が少なくなったことで、ソースやWikiに必要な要素を書き込むことが、グループ作業でいかに大切か痛感できた。ソフトウェア設計について、“慣れ”の域に達するまでは、まだまだ時間がかかりそうである。
- 伊東秀輔 統合のタイミングで複数人休んだことで、その人が担当していたモジュールとの統合がうまくいかなかったときに、設計に関わっていないモジュールにも触らなくてはならなくなるという、貴重な経験ができた。少ない人数で統合を進めるのかがいかに大変かを実感した。初期の言語に関する学習は疎かにしてはならないこと、各々の意思疎通と、早い段階で完成が見えたモジュール同士を統合する重要性を感じた。
- 今泉有雅 意思疎通の不足や人員が欠けてしまったなど,技術面というよりは人為的な問題が多かった.少人数とはいえ少人数なりの方法もあったと思うので,計画立てて進めるべきだった.技術面については慣れないHTML,JavaScriptでの開発であり,また他の人のモジュールについても概要はともかくプログラム自体を把握できておらず,統合に困難を要した.計画性ももちろんだが,何をどう実現させるかまで明確にしておかなければならないと痛感した.
最終更新日:2018/08/03 13:20:40