Habitación 8: Condicionales
Mix.install([
{:explorer, "~> 0.11.1"},
{:kino, "~> 0.19.0"},
{:kino_explorer, "~> 0.1.25"},
{:kino_vega_lite, "~> 0.1.13"},
{:helpers, path: Path.expand("./helpers", __DIR__)}
])
defmodule Room do
require Explorer.DataFrame, as: DF
def verify(answer) do
first_crew_member = answer.(true, "Alta")
second_crew_member = answer.(true, "Baja")
third_crew_member = answer.(false, "Alta")
if first_crew_member == true and second_crew_member == false and third_crew_member == false do
Helpers.Messages.correct(
"10.livemd",
"¡Correcto! Haz click aquí para avanzar al siguiente desafío."
)
else
Helpers.Messages.error(
"No es la respuesta correcta. Inténtalo nuevamente."
)
end
|> Kino.Markdown.new()
end
end
Contexto
🔥 Tripulantes deben reparar la filtración de altas temperaturas debido a una averiación de un panel solar ☀️, tienes que procupar que se cumpla el protocolo de ingreso y para eso debes activar el sistema de seguridad 🛡️🚨.

Desafío
Van a ingresar tres tripulantes:
- 👨🚀 Tripulante uno tiene credencial con acceso permitido (True) ✅ y traje con resistencia Alta 🧤.
- 👨🚀 Tripulante dos tiene credencial con acceso permitido (True) ✅ y traje con resistencia Baja ⚠️.
- 👨🚀 Tripulante tres tiene credencial con acceso denegado (False) ❌ y traje con resistencia Alta 🧤.
Ocupa las sentencias case para ejecutar código cuando se cumplen ciertas condiciones.
case cielo do
"Muy nublado" -> "Lluvia"
"Nublado" -> "Frío"
_ -> "Templado"
end
Ejemplo de uso de case en funciones
Adicionalmente las funciones pueden ser usadas para un case
en los parámetros. Esto permite definir funciones que entregarán
un resultado según los valores de los parámetros, otorgando un código
más sucinto.
fn
"Muy nublado" -> "Lluvia"
"Nublado" -> "Frío"
_ -> "Templado"
end
💡 Pista
Las sentencias ya están aplicadas, pero están igualadas (==) a valores erróneos.
Reemplaza los valores `nil` por `true` o `"Alta"` dependiendo de la variable con la que se iguala.
Establece tu Respuesta
respuesta = fn
nil, nil -> true
_acceso, _resistencia -> false
end
Verifica tu respuesta
Room.verify(respuesta)