Elyseの魔法


ストーリー

マジシャンのたまごであるElyseは、基本をいくつか練習する必要があります。彼女の手元には、思うように動かしたいカードの山があります。

少し簡単にするために、彼女は1から10までのカードだけを使います。

カードの値を1から10に限定しているのは、数値だけを扱えばよいようにするためです。こうすることで、このストーリーを使う演習は数値だけに頼ればよくなります。

タスク

以下は、Elyseが初心者であるというストーリーに合うタスクの例です:

  • 山札からカードを1枚取り出す
  • 山札のカードを入れ替える
  • 山札の一番上にカードを挿入する
  • 山札からカードを1枚取り除く
  • 山札の一番上のカードを取り除く
  • 山札の一番下にカードを挿入する
  • 山札の一番下のカードを取り除く
  • 山札の枚数を確認する

このストーリーは、配列の分析を教えるために続けることもできます:

  • カードの位置を見つける
  • カードが存在するかどうかを判定する
  • それぞれのカードが偶数かどうかを判定する
  • 山札に奇数のカードが含まれているかどうかを確認する
  • 山札から最初の奇数のカードを取得する
  • 最初の偶数のカードの位置を特定する

このストーリーは、配列の変換を教えるために続けることもできます:

  • 1枚1枚のカードを2倍にする
  • 山札にある3のカードそれぞれの複製を複数作る
  • 山札のちょうど真ん中から2枚のカードを見つける
  • 両端の2枚のカードが山札の真ん中に現れる
  • 2以外のカードがすべて消える
  • シャッフルされた山札を完全に整列した山札に変換する
  • すべてのカードを山札の総枚数に変える

このストーリーは、配列の分割代入を教えるために続けることもできます:

  • 最初のカードを取得する(インデクサーやメソッドなど、通常の方法を使わずに)
  • 2番目のカードを取得する(インデクサーやメソッドなど、通常の方法を使わずに)
  • 最初の2枚のカードを入れ替える(インデクサーやメソッドなど、通常の方法を使わずに)
  • 一番上のカードを捨てる(インデクサーやメソッドなど、通常の方法を使わずに)
  • 絵札を挿入する(インデクサーやメソッドなど、通常の方法を使わずに)

用語

これは、指示文(スタブ内のコメントを含む)で繰り返し使われる用語についての推奨であり、規則ではありません。

  • 主人公はElyseで、代名詞はshe/herです。この登場人物を指す必要があるときは、名前を使うか、代名詞で呼んでください。
  • array(または同等のデータ型)の代わりに、山札またはカードの山という言葉を使います。
  • elementの代わりに、カードという言葉を使います。
  • lengthの代わりに、山札の枚数と書きます。
  • 一番上のカードは_最初の要素_です。
  • 一番下のカードは_最後の要素_です。

実装

別バージョン

ストーリーの別バージョンでは、あなた(学習者)を主人公に据え、山札を並べ替えることだけに焦点を当てています。

ストーリー

マジシャンになったあなたは、1組のカードを扱います。マジックを正しく成功させるには、カードをある位置から別の位置へ動かせる必要があります。つまり、山札を並べ替えられるようになる必要があるのです。当然、カードは両方向に動かせたほうがよいですし、「山札の一番上から」「山札の一番下から」と言える必要もあります。

タスク

以下は、カードを並べ替えたいというストーリーに合うタスクの例です:

  • arrangeという関数を実装します。これは山札のカードを指定された位置から別の位置へ動かし、新しい山札を返します。
  • 同じことを、元の山札を変更しながら行うrearrangeという関数を実装します。

実装

参考