Powered by AppSignal & Oban Pro

Habitación 8: Condicionales

space_station/09.livemd

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.

Ejemplo de uso de case ```elixir 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. ```elixir 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)