Word Checker es-419 Explainer

Explicación de Corrector ortográfico de Bhaj

Objetivo de este acertijo: Buscar la información clave en un problema verbal y resolver el problema usando un código.

Tutorial de la solución: Bhaj quiere una función que verifique si una palabra podría ajustarse como una respuesta del crucigrama.

Esta función tomará una palabra, por ejemplo, 'cat', y un espacio, por ejemplo, '-a-', y devolverá true si la palabra cabe dentro del espacio, y false si no cabe.

Primero, sabemos que si la palabra y el espacio son de diferentes largos, la palabra no cabrá. Por lo tanto, agrega una if statement que compare los largos y devuelva false si no son iguales. Esto se encargará de las palabras que sean demasiado largas o demasiado cortas.

A continuación, debemos verificar las palabras que tienen el largo correcto. Agrega un classic for loop para iterar por el espacio.

Dentro del for loop, agrega una if statement. Esta if statement debe verificar 2 cosas. Primero, debemos verificar los caracteres en el espacio que no sean '-'.

Segundo, debemos verificar que los caracteres que no son '-' no sean iguales al carácter en la misma posición en la palabra.

Se verá así:

    for (let i = 0; i < space.length; i++) {
        if (space[i] !== '-' && space[i] !== word[i]) {
return false;
        }
    }

Por último, al final de la función, return true. La función solo ejecutará esta línea de código si el for loop termina de iterar sin devolver false anticipadamente.

Solución del código de ejemplo:

import { randomWord } from 'cross.words';

function check(space, word) {
    if (space.length !== word.length) {
        return false;
    }
    for (let i = 0; i < space.length; i++) {
        if (space[i] !== '-' && space[i] !== word[i]) {
return false;
        }
    }
    return true;
}

console.log('-a-t');
console.log(randomWord);
console.log(check('-a-t', randomWord));

Conceptos de JavaScript: funciones, if statements, for loops, strings, notación de corchete, indexación, declaraciones return
Código adicional (código oculto que se ejecuta antes del código del acertijo):

const _words = ['bait','cart','cast','daft','dart','east','fact','fast','gait','gast','halt','last','malt','mast','pact','pant','part','past','raft','rant','salt','tact','tart','vast','waft','wait','want','wart','watt','cats','bats','rats','bate','bath','bats','cats','data','date','eats','fate','fats','gate','hats','late','mate','math','oath','oats','rate','rats','baits','darts','attach','attack','attain','strata','tartan','tartar','tatars','aeronautics','alterations','astronautic','automations','devastation','evacuations','evaluations','salutations','situational','accusation','aeronautic','agitations','alteration','automating','automation','gelatinous','hesitation','infatuated','passionate','poinsettia','quotations','restaurant','valuations','adult','basil','bones','doses','early','heads'];

defineModule(
  'cross.words',
  {
    randomSpace: pickRandom(_words).split('').map(i=>pickRandom([i,'-'])).join(''),
    randomWord: pickRandom(_words)
  }
);
3 Likes

He hecho este ejercicio un montón de veces sin errores, pero no me deja avanzar, dice que debo poner return dentro de la if statement aunque ya lo he hecho así. Alguien me dice como puedo avanzar?

Hola, podrías compartir tu código para ayudarte.

I need help to finish my puzzle wordchecker 403. I have made many.changes looking.for any error and sometimes it looks finished but again it doesn’t pass