Word Checker pt-br Explainer

Explicado de Verificador de palavras

Objetivo deste desafio: Encontre as informações-chave em um problema de palavras e resolva o problema usando um código.

Tutorial de solução: Bhaj quer uma função que verifique se uma palavra pode caber como uma resposta de palavras cruzadas.

Esta função pegará uma palavra, por exemplo 'cat', e um espaço, por exemplo '-a-', e retornará true se a palavra couber dentro do espaço, e false se não couber . .

Primeiro, sabemos que se a palavra e o espaço tiverem comprimentos diferentes, a palavra não caberá. Portanto, adicione uma if statement que compare os comprimentos e retorne false se eles não forem iguais. Isso cuidará de palavras que são muito longas ou muito curtas.

Em seguida, precisamos verificar as palavras para o comprimento correto. Adicione um laço for clássico para iterar pelo espaço.

Dentro do loop for, adicione uma if statement. Esta if statement deve verificar 2 coisas. Primeiro, precisamos verificar se há caracteres no espaço diferentes de '-'.

Segundo, devemos verificar se os caracteres que não são '-' não são iguais ao caractere na mesma posição na palavra.

Isso parecerá assim:

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

Finalmente, no final da função, return true. A função só executará esta linha de código se o laço for terminar de iterar sem retornar false antes.

Solução de código de amostra:

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));

Conceitos JavaScript: funções, if statements, laço for, strings, notação de colchetes, indexação, comando de retorno

Código adicional (código oculto que é executado antes do código do desafio):

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)
  }
);
2 Likes

Ajude-me.

quando eu coloco na string(depois do primeiro space[i] !==) o ‘-’ , pede se algumas informações pessoais.
Quando clico no x e de-selecto o ‘-’, fica assim: '-'

Isso é um erro no pc. provavelmente não aparece no celular.

Obrigado.

1 Like

Olá, boa noite estou com dificuldade nesta etapa.

Tenho escrito o código como está na figura, porém não está funcionando

Consegui resolver! :hear_no_evil::see_no_evil::speak_no_evil::sweat_smile:

Travei nessa exatemente da mesma maneira, nao sei qual a razão @Luhezo

Atualizado🔄

Consegui, o problema era que o laço estava dentro do primeiro if, esses detalhes de colchetes e chaves passa batido às vezes.

galeraaa socoroooo:

import { randomWord } from 'cross.words';
function check(space, word, ___) {
  for (let i = 0; i < space.length; i++) {
    if (word.length !== space.length) {
      return false;
    }
  }
};
console.log('-a-t');
console.log(randomWord);
console.log(check('-a-t', randomWord));

atualizado

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));

aee tive que rever um curso mas consegui

1 Like

Olá boa noite, estou com problema ao retornar a função, antes o problema estava no laço For. Fiz tal qual alguns exemplos e não estou conseguindo, vou esperar a solução pq tá difícil :sweat:

I appreciate it :slightly_smiling_face: :slightly_smiling_face: :slightly_smiling_face: :slightly_smiling_face: