Tracks
/
Elixir
Elixir
/
Ejercicios
/
Hoja de personaje de rol
Hoja de personaje de rol

Hoja de personaje de rol

Ejercicio de aprendizaje

Introducción

IO

El módulo IO proporciona las funciones para manejar la entrada y la salida.

Salida

Para escribir una string en la salida estándar, usa IO.puts. IO.puts siempre agrega una nueva línea al final de la string. Si no quieres ese comportamiento, usa IO.write en su lugar. Ambas funciones devuelven el átomo :ok si tienen éxito.

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

IO.puts es útil para escribir strings, pero no mucho más. Si necesitas una herramienta para depurar que te permita escribir cualquier valor en la salida estándar, usa IO.inspect en su lugar. IO.inspect devuelve el valor que recibió, sin cambios, así que puedes insertarlo en cualquier punto de tu código. También acepta muchas opciones, por ejemplo :label, que te permiten distinguirlo de otras llamadas a IO.inspect.

Entrada

Para leer una línea de la entrada estándar, usa IO.gets. IO.gets acepta un argumento: una string que imprimirá como indicador para la entrada. IO.gets no agrega una nueva línea después del indicador, inclúyela si la necesitas.

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

Instrucciones

A ti y a tus amigos les encanta jugar juegos de rol de lápiz y papel, pero te diste cuenta de que es difícil lograr que gente nueva se una a tu grupo. A menudo les cuesta crear su personaje. No saben por dónde empezar. Para ayudar a los nuevos jugadores, decidiste escribir un pequeño programa que los guíe en el proceso.

1. Dale la bienvenida al nuevo jugador

Implementa la función RPG.CharacterSheet.welcome/0. Debe imprimir un mensaje de bienvenida y devolver :ok.

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

2. Pregunta el nombre del personaje

Implementa la función RPG.CharacterSheet.ask_name/0. Debe imprimir una pregunta, esperar una respuesta y devolver la respuesta sin espacios en blanco al principio ni al final.

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

3. Pregunta la clase del personaje

Implementa la función RPG.CharacterSheet.ask_class/0. Debe imprimir una pregunta, esperar una respuesta y devolver la respuesta sin espacios en blanco al principio ni al final.

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

4. Pregunta el nivel del personaje

Implementa la función RPG.CharacterSheet.ask_level/0. Debe imprimir una pregunta, esperar una respuesta y devolver la respuesta como un número entero.

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

5. Combina los pasos anteriores en uno

Implementa la función RPG.CharacterSheet.run/0. Debe darle la bienvenida al nuevo jugador, preguntar el nombre, la clase y el nivel del personaje, y devolver la hoja de personaje como un mapa. También debe imprimir el mapa con la etiqueta «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"}
Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
Elixir Exercism

¿Todo listo para empezar Hoja de personaje de rol?

Regístrate en Exercism para aprender y dominar Elixir con 58 conceptos168 ejercicios y mentoría humana real, todo gratis.