Ejercicio: Tu primer bot en la consola
Objetivo
Construir el bot de consola de tu propio negocio inventado y escribir su «cerebro»: una función responder(texto) que siga reglas dadas, sin leer ni imprimir nada.
Cómo se trabaja
La parte A es práctica real: montas el proyecto en tu computadora con el cerebro separado de la consola. La parte B es la función responder(texto) que se comprueba aquí. Las reglas son fijas para que la prueba sea la misma para todos, pero el texto de las respuestas es tuyo: usa el nombre, horario y dirección de tu negocio inventado (por ejemplo, una ferretería «El Tornillo Feliz» o una academia «Aula Norte»).
Reglas que la función debe cumplir (se ignoran mayúsculas y tildes):
| El mensaje contiene | La respuesta debe |
|---|---|
hola, buenas |
empezar con la palabra «Hola» |
horario, hora, abren |
incluir al menos un número (una hora) |
direccion, donde, ubicacion |
incluir una dirección con número (por ejemplo «Av. Los Pinos 456») |
ayuda |
mencionar horario y direccion |
| cualquier otra cosa, o texto vacío | incluir «no entendí» (con o sin tilde) |
Si el mensaje contiene ayuda y otra palabra de la tabla, gana ayuda.
💡 Reto extra
Añade una regla de «precios» y otra de «gracias» (responde «De nada»). Luego haz que responder reciba un segundo parámetro, un objeto negocio con nombre, horario y direccion, para poder usar el mismo cerebro con cualquier negocio.
Pasos
Marca cada paso a medida que lo completes. Tu avance se guarda en este navegador.
💡 Pista 1: Normalizar primero
String(texto ?? "").toLowerCase().normalize("NFD").replace(/[̀-ͯ]/g, "").trim() quita mayúsculas y tildes. Compara siempre contra el texto normalizado.
💡 Pista 2: Orden de las reglas
Evalúa las reglas en orden con if (t.includes("hola") ...). Pon ayuda primero. Cuidado con palabras dentro de otras: "hora" está dentro de "ahora".
💡 Pista 3: Mensaje de ayuda
La ayuda puede ser un texto fijo como "Puedo darte el horario o la direccion." Basta con que contenga ambas palabras.
🔎 Comprueba tu trabajo
Pega tu código y pulsa Comprobar. La revisión ocurre en tu navegador; nada se envía a ningún sitio. Cada punto en rojo incluye una pista. Pega solo el JavaScript, sin las etiquetas <script>.
✅ Ver una solución posible
Intenta resolverlo antes de mirar. Tu versión puede ser distinta y también correcta.
function normalizar(texto) {
return String(texto ?? "")
.toLowerCase()
.normalize("NFD")
.replace(/[̀-ͯ]/g, "")
.trim();
}
function responder(texto) {
const t = normalizar(texto);
if (t === "") return "No entendí. Escribe ayuda para ver las opciones.";
if (t.includes("ayuda")) return "Puedo darte el horario o la direccion. Escribe una de las dos.";
if (t.includes("hola") || t.includes("buenas")) return "Hola, bienvenido a Aula Norte. Escribe ayuda para ver las opciones.";
if (t.includes("horario") || t.includes("hora") || t.includes("abren")) return "Atendemos de lunes a viernes de 8:00 a 20:00.";
if (t.includes("direccion") || t.includes("donde") || t.includes("ubicacion")) return "Estamos en Av. Los Pinos 456 (ejemplo).";
return "No entendí tu mensaje. Escribe ayuda para ver las opciones.";
}