Rutas
/
Elixir
Elixir
/
Ejercicios
/
Hoja de personaje de RPG
Hoja de personaje de RPG

Hoja de personaje de RPG

Ejercicio de aprendizaje

Introducción

IO

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

Salida

Para escribir un string en la salida estándar, usa IO.puts. IO.puts siempre añade una nueva línea al final del 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 de depuración que te permita escribir cualquier valor en la salida estándar, usa IO.inspect en su lugar. IO.inspect devuelve el valor que se le pasó sin cambios, por lo que se puede insertar en cualquier punto de tu código. También acepta muchas opciones, por ejemplo :label, que te permitirán 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: un string que imprimirá como solicitud para la entrada. IO.gets no añade una nueva línea después de la solicitud; inclúyela tú mismo si la necesitas.

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

Instrucciones

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

1. Da 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. Pide 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. Pide 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. Pide 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 dar la bienvenida al nuevo jugador, pedir 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 pestaña nueva
Elixir Exercism

¿Listo para empezar Hoja de personaje de RPG?

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