トラック
/
Elixir
Elixir
/
演習
/
RPGキャラクターシート
RPGキャラクターシート

RPGキャラクターシート

学習演習

はじめに

IO

入力と出力を扱う関数は、IOモジュールで提供されています。

出力

標準出力に文字列を書き込むには、IO.putsを使います。IO.putsは、文字列の末尾に必ず改行を追加します。その動作が不要な場合は、代わりにIO.writeを使いましょう。どちらの関数も、成功するとアトム:okを返します。

IO.puts("Hi!")
# > Hi!
# => :ok

IO.putsは文字列の書き込みには便利ですが、それ以外の用途にはあまり向いていません。任意の値を標準出力に書き込めるデバッグ用のツールが必要なら、代わりにIO.inspectを使いましょう。IO.inspectは、渡された値をそのまま返すので、コードの好きな位置に挿入できます。また、:labelをはじめとする多くのオプションを受け付けるので、他のIO.inspectの呼び出しと区別できます。

入力

標準入力から1行読み込むには、IO.getsを使います。IO.getsは引数を1つ受け取ります。これは、入力のプロンプトとして表示される文字列です。IO.getsはプロンプトのあとに改行を追加しません。必要な場合は、自分で含めてください。

IO.gets("What's your name?\n")
# > What's your name?
# < Mary
# => "Mary\n"

説明

友達と一緒に、ペンと紙で遊ぶロールプレイングゲームを楽しんでいます。ただ、新しい人をグループに迎えるのはなかなか難しいことに気づきました。キャラクター作成でつまずいてしまい、どこから始めればよいかわからない人が多いのです。そこで、新しいプレイヤーを手助けするために、その流れを案内してくれる小さなプログラムを書くことにしました。

1. 新しいプレイヤーを歓迎する

RPG.CharacterSheet.welcome/0関数を実装しましょう。歓迎のメッセージを出力し、:okを返します。

RPG.CharacterSheet.welcome()
# > Welcome! Let's fill out your character sheet together.
# => :ok

2. キャラクターの名前を尋ねる

RPG.CharacterSheet.ask_name/0関数を実装しましょう。質問を出力して答えを待ち、前後の空白を除いた答えを返します。

RPG.CharacterSheet.ask_name()
# > What is your character's name?
# < Mathilde
# => "Mathilde"

3. キャラクターのクラスを尋ねる

RPG.CharacterSheet.ask_class/0関数を実装しましょう。質問を出力して答えを待ち、前後の空白を除いた答えを返します。

RPG.CharacterSheet.ask_class()
# > What is your character's class?
# < healer
# => "healer"

4. キャラクターのレベルを尋ねる

RPG.CharacterSheet.ask_level/0関数を実装しましょう。質問を出力して答えを待ち、答えを整数として返します。

RPG.CharacterSheet.ask_level()
# > What is your character's level?
# < 2
# => 2

5. これまでのステップを1つにまとめる

RPG.CharacterSheet.run/0関数を実装しましょう。新しいプレイヤーを歓迎し、キャラクターの名前、クラス、レベルを尋ね、キャラクターシートをマップとして返します。また、"Your character"というラベルを付けてマップを出力します。

RPG.CharacterSheet.run()
# > Welcome! Let's fill out your character sheet together.
# > What is your character's name?
# < Mathilde
# > What is your character's class?
# < healer
# > What is your character's level?
# < 2
# > Your character: %{class: "healer", level: 2, name: "Mathilde"}
# => %{class: "healer", level: 2, name: "Mathilde"}
GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
Elixir Exercism

RPGキャラクターシートを始める準備はできましたか?

Exercismに登録すれば、58個のコンセプト168個の演習、そして本物の人間によるメンタリングとともに、Elixirを学んでマスターできます。すべて無料です。