chinchiroのロジック解説(5)

Enquirerによる行動選択

今回はEnquirerを使った行動選択の部分について解説します。

Enquirer
まず、Enquirerのインストールです。 npm install enquirer 次に、トップレベルでEnquirerのインポートを宣言します。 import Enquirer from 'enquirer' これで準備OK!Enquirerを使ったメソッドを作っていきます。

async decide_action () {
  const actions = ['throw dice', 'ikasama', 'pass', 'surrender']
  const question = {
    type: 'select',
    name: 'action',
    message: 'What are you gonna do?',
    choices: actions
  }
  const answer = await Enquirer.prompt(question)
  return answer.action
}

Enquirer.prompt()でEnquirerのメソッドを作ります。内容はquestionの部分になります。

questionの中の各項目を解説すると、

  • type:selectは選択肢から選ぶ形式です。他には直接文字を入力するinputなどがあります。
  • name: 後で値を取り出す時に使います。
  • message:選択肢を選ぶときに表示される質問のメッセージです。
  • choises:選択肢の部分です。最初にactionsに選択肢を定義していますが、直接choisesに選択肢の配列を書いてもOKです。

最後にreturn answer.actionで選んだ選択肢を文字列として返しています。この.actionは先ほどname:で定義したものです。

chinchiroではこの文字列を参照して、条件分岐でそれぞれのアクションを行うようにしています。