真偽値は、trueかfalseという2つの値のうちのどちらかを表します。
論理演算子(!、&&、||)は通常、真偽値と一緒に使われ、真偽値を返します。
この演習では、友人が開発中の新しいRPGゲームのクエストロジックを実装します。 ゲームの主人公はAnnalynで、獰猛で忠実な飼い犬を連れた勇敢な女の子です。 ところが不幸なことに、森で木の実を探していた親友が誘拐されてしまいます。 Annalynは親友を見つけて助け出そうとします。この冒険には、飼い犬を連れて行くこともできます。
親友の足跡をしばらく追ったあと、Annalynは親友が囚われている野営地を見つけます。 そこには2人の誘拐犯がいることがわかります。屈強な騎士と、ずる賢い弓使いです。
誘拐犯を見つけたAnnalynは、次のどの行動が取れるかを考えます:
4つのタスクがあります。森で見つけた3人の状態と、Annalynが飼い犬を連れているかどうかに基づいて、上記の行動が可能かどうかを判断するロジックを実装します。
canExecuteFastAttackという名前の関数を実装します。この関数は、騎士が起きているかどうかを示す真偽値を受け取ります。
この関数は、キャラクターの状態に基づいて「速攻」アクションが可能であればtrueを返します。
そうでなければ、falseを返します:
const knightIsAwake = true;
canExecuteFastAttack(knightIsAwake);
// => false
canSpyという名前の関数を実装します。この関数は3つの真偽値を受け取り、それぞれ騎士、弓使い、囚人が起きているかどうかを示します。
この関数は、キャラクターの状態に基づいて「スパイ」アクションが可能であればtrueを返します。
そうでなければ、falseを返します:
const knightIsAwake = false;
const archerIsAwake = true;
const prisonerIsAwake = false;
canSpy(knightIsAwake, archerIsAwake, prisonerIsAwake);
// => true
canSignalPrisonerという名前の関数を実装します。この関数は2つの真偽値を受け取り、それぞれ弓使いと囚人が起きているかどうかを示します。
この関数は、キャラクターの状態に基づいて「囚人に合図を送る」アクションが可能であればtrueを返します。
そうでなければ、falseを返します:
const archerIsAwake = false;
const prisonerIsAwake = true;
canSignalPrisoner(archerIsAwake, prisonerIsAwake);
// => true
canFreePrisonerという名前の関数を実装します。この関数は4つの真偽値を受け取ります。
最初の3つの入力は、それぞれ騎士、弓使い、囚人が起きているかどうかを示します。
最後の入力は、Annalynが飼い犬を連れているかどうかを示します。
この関数は、キャラクターの状態とAnnalynが飼い犬を連れているかに基づいて「囚人を解放する」アクションが可能であればtrueを返します。
そうでなければ、falseを返します:
const knightIsAwake = false;
const archerIsAwake = true;
const prisonerIsAwake = false;
const petDogIsPresent = false;
canFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent);
// => false
Exercismに登録すれば、37個のコンセプト159個の演習、そして本物の人間によるメンタリングとともに、JavaScriptを学んでマスターできます。すべて無料です。