Tracks
/
Elixir
Elixir
/
Übungen
/
RPG-Charakterbogen
RPG-Charakterbogen

RPG-Charakterbogen

Lernübung

Einführung

IO

Das Modul IO stellt Funktionen für die Ein- und Ausgabe bereit.

Ausgabe

Um einen String auf die Standardausgabe zu schreiben, verwende IO.puts. IO.puts fügt immer eine neue Zeile am Ende des Strings hinzu. Wenn du dieses Verhalten nicht möchtest, verwende stattdessen IO.write. Beide Funktionen geben bei Erfolg das Atom :ok zurück.

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

IO.puts ist nützlich, um Strings zu schreiben, aber nicht viel mehr. Wenn du ein Werkzeug zum Debuggen brauchst, mit dem du jeden Wert auf die Standardausgabe schreiben kannst, verwende stattdessen IO.inspect. IO.inspect gibt den Wert, der ihm übergeben wurde, unverändert zurück, sodass du es an jeder Stelle in deinem Code einfügen kannst. Es akzeptiert außerdem viele Optionen, zum Beispiel :label, mit denen du es von anderen Aufrufen von IO.inspect unterscheiden kannst.

Eingabe

Um eine Zeile aus der Standardeingabe zu lesen, verwende IO.gets. IO.gets akzeptiert ein Argument: einen String, den es als Eingabeaufforderung ausgibt. IO.gets fügt nach der Eingabeaufforderung keine neue Zeile hinzu; füge sie selbst hinzu, wenn du sie brauchst.

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

Anleitung

Du und deine Freunde spielt gerne Pen-and-Paper-Rollenspiele, aber dir ist aufgefallen, dass es schwierig ist, neue Leute für eure Gruppe zu gewinnen. Sie haben oft Mühe mit der Charaktererstellung. Sie wissen nicht, wo sie anfangen sollen. Um neuen Spielerinnen und Spielern zu helfen, hast du beschlossen, ein kleines Programm zu schreiben, das sie durch den Prozess führt.

1. Heiße den neuen Spieler willkommen

Implementiere die Funktion RPG.CharacterSheet.welcome/0. Sie sollte eine Willkommensnachricht ausgeben und :ok zurückgeben.

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

2. Frage nach dem Namen des Charakters

Implementiere die Funktion RPG.CharacterSheet.ask_name/0. Sie sollte eine Frage ausgeben, auf eine Antwort warten und die Antwort ohne führende und nachfolgende Leerzeichen zurückgeben.

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

3. Frage nach der Klasse des Charakters

Implementiere die Funktion RPG.CharacterSheet.ask_class/0. Sie sollte eine Frage ausgeben, auf eine Antwort warten und die Antwort ohne führende und nachfolgende Leerzeichen zurückgeben.

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

4. Frage nach dem Level des Charakters

Implementiere die Funktion RPG.CharacterSheet.ask_level/0. Sie sollte eine Frage ausgeben, auf eine Antwort warten und die Antwort als Ganzzahl zurückgeben.

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

5. Fasse die vorherigen Schritte zu einem zusammen

Implementiere die Funktion RPG.CharacterSheet.run/0. Sie sollte den neuen Spieler willkommen heißen, nach dem Namen, der Klasse und dem Level des Charakters fragen und den Charakterbogen als Map zurückgeben. Sie sollte außerdem die Map mit der Beschriftung „Your character“ ausgeben.

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"}
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Elixir Exercism

Bereit, mit RPG-Charakterbogen zu starten?

Melde dich bei Exercism an, um Elixir mit 58 Konzepte168 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.