Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

124
Visualizações
parrilla fleissner javascript

¿Puedo usar una función que me permita obtener el mensaje oculto? Si es así, ¿podría aclararme, cómo puedo hacerlo?
Utilizando rejilla fleissner 6 x 6, descifrar el mensaje oculto: "lróaon. sg sdersoildsu.:.cc kiomamii". Para ello, debe girarse 90° en el sentido de las agujas del reloj. Las rejillas abiertas están en las posiciones [1,1],[4,1],[2,2],[6,2],[5,3],[1,4],[4,4],[ 3,5],[6,5] para la rejilla en posición inicial (0 grados).

  • Tenga en cuenta que cada vez que giramos la cuadrícula 90º en el sentido de las agujas del reloj, la primera fila (eje x) se convierte en la sexta columna (eje y), la segunda fila se convierte en la quinta columna... y la sexta fila se convierte en la primera columna.
  • Una vez tengas todos los pares de coordenadas de todas las posiciones (0º, 90º, 180º y 270º) y ordenados, descifrar el mensaje consiste en relacionar la posición de cada letra del mensaje con el par de coordenadas: la primera letra del mensaje el mensaje descifrado estará en la posición [1,1] la segunda letra del mensaje descifrado estará en la posición [4,1] la tercera letra del mensaje descifrado estará en la posición [2,2]. Esto es lo que tengo hasta ahora, ¿alguna idea de cómo obtener el mensaje oculto?
 const sideSize = 6; // Grid 6 const gridPosBase = [[1,1],[4,1],[2,2],[6,2],[5,3],[1,4],[4,4],[3,5],[6,5]]; const encriptedMessage = 'lróaon. sg sdersoildsu.:.cc kiomamii'; const x = 0; const y = 1; function rotateArray90(gridToTurn) { const gridRotated = []; gridToTurn.forEach((par, index) => { gridRotated[index] = []; gridRotated[index][x] = (sideSize + 1) - par[y]; gridRotated[index][y] = par[x]; }); return gridRotatedOrdered; // ¡Warning! rotated but no ordered } // Rotate the array 90º 3 times and order the coordinates, to obtain all the open cells function decrypt(text, grid) { text = ''; grid = []; } const decryptedMessage = decrypt(encriptedMessage, gridPosBase); console.log(decryptedMessage);
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

No tenía idea de lo que era una Fleissner Grille, pero este sitio instructables.com lo explicaba bastante bien.

Esto es un poco complicado en algunos lugares, espero que mi explicación ayude.

getChar Calcula qué carácter leer del "encMsg" en función de una posición en la cuadrícula. Esta es la (fila - 1) * 6 + (columna - 1). Necesita restar 1 de la fila y la columna porque las matrices y las cadenas comienzan en 0, no en 1.

rotarGrid Esto te engaña un poco. Es más fácil si haces un dibujo. Queda claro cómo obtener la nueva columna y fila de la columna y fila anterior, pero ENTONCES debe ordenar la matriz. Después de girar la cuadrícula, debe comenzar a leer desde la parte superior izquierda, por lo que debemos ordenar la cuadrícula.

readGrid Esto recorre las posiciones de la cuadrícula y lee un carácter del encMsg cada vez, luego devuelve ese fragmento de mensaje.

Poniendo todo junto, leemos el primer fragmento, luego "rotamos y leemos" tres veces más para obtener el mensaje final.

 const encMsg = "lróaon. sg sdersoildsu.:.cc kiomamii"; let grid = [ [1, 1], [4, 1], [2, 2], [6, 2], [5, 3], [1, 4], [4, 4], [3, 5], [6, 5] ]; const getChar = (x, y, str) => str[x - 1 + (y - 1) * 6]; const rotateGrid = grid => grid .map(([x, y]) => [7 - y, x]) .sort((a, b) => { if (a[1] < b[1]) return -1; if (a[1] === b[1] && a[0] < b[0]) return -1; return 1; }); const readGrid = (grid, encMsg) => grid.map(([x, y]) => getChar(x, y, encMsg)).join(""); let unEncMsg = readGrid(grid, encMsg); for (let ix = 0; ix < 3; ix++) { grid = rotateGrid(grid); unEncMsg += readGrid(grid, encMsg); } console.log(unEncMsg);

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda