RPGクエストのロジック


ストーリー

この演習では、友だちが開発中の新しいRPGゲームの、クエストのロジックを実装します。ゲームの主人公はAnnalynで、勇敢な女の子であり、獰猛で忠実な飼い犬を連れています。ところが不幸にも災難が降りかかります。森で木の実を探していた親友が誘拐されてしまったのです。Annalynは親友を見つけ出して解放しようとします。この冒険に、飼い犬を連れていくこともできます。

親友の足取りを追ってしばらく進むと、親友が囚われている野営地を見つけます。誘拐犯は2人いました。屈強な騎士と、ずる賢い弓兵です。

誘拐犯を見つけたAnnalynは、次のうちどの行動がとれるかを考えます。

  • 速攻
  • スパイ
  • 囚人への合図
  • 囚人の解放

タスク

以下は、Annalynが親友を救出するというストーリーに合うタスクの例です。

  • _速攻_の判定を実装します。騎士が眠っていれば速攻できます。騎士が鎧を身につけるには時間がかかるので、その間は無防備になるからです。
  • _スパイ_の判定を実装します。少なくとも1人が起きていれば、相手を偵察できます。そうでなければ、偵察は時間の無駄です。
  • _囚人への合図_の判定を実装します。囚人が起きていて、弓兵が眠っていれば、鳥のさえずりで囚人に合図を送れます。弓兵は鳥のさえずりによる合図を訓練されているので、メッセージを傍受できてしまうからです。
  • _囚人の解放_の判定を実装します。Annalynは野営地に忍び込んで囚人を解放しようと試せます。 これは危険な行為で、次の2通りの方法のどちらかでしか成功しません。
    • Annalynが飼い犬を連れていれば、弓兵が眠っているときに囚人を救出できます。 騎士は犬を恐れていますし、弓兵が準備を整えるより先に、Annalynと囚人は逃げ出せるからです。
    • Annalynが犬を連れていなければ、Annalynと囚人はとても慎重に行動しなければなりません。 囚人が起きていて、騎士と弓兵がどちらも眠っていれば、Annalynは囚人を解放できます。しかし囚人が眠っていると救出できません。Annalynが突然現れたことに囚人が驚いて、騎士と弓兵を起こしてしまうからです。

用語

以下は、演習の説明文(スタブのコメントを含む)で繰り返し使われる用語についての推奨であり、ルールではありません。

  • 主人公はAnnalynで、代名詞はshe/herです。このキャラクターを指す必要があるときは、名前を使うか、代名詞で呼んでください。
  • boolean(または同等のデータ型)の代わりに、can {action} または can perform {action} を使います。
  • 囚人はAnnalynの親友で、代名詞はthey/theirです。
  • Annalyn、囚人、弓兵、騎士、Annalynの飼い犬を代名詞で指すのは_避けて_ください。意味が曖昧になる可能性が高いので、代わりに上で強調されているとおりの語を使ってください。

実装

関連