Saltar al contenido
Chatbots de WhatsApp desde cero
Temario

Ejercicio: Tu primer bot en la consola

  • ⏱ 60 minutos
  • 📶 Nivel: básico

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.

▶ Prueba tu código aquí (opcional)
Consola

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.

    cerebro.js
    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.";
    }