Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

215
Views
Evitar bucles anidados en un algoritmo JavaScript de TicTacToe

Escribí un algoritmo rápido que detecta una victoria en un juego de TicTacToe.

función game() recorre un tablero simulado de tres en ticTacToe , encuentra todos los índices de un valor dado, luego recorre todos los combos ganadores posibles, encuentra cualquier índice donde el valor real es igual al índice del primer ciclo, (lo sé: /) luego reemplaza el valor con el valor pasado a la función (ya sea x o o).

Luego, se ejecuta una función posterior que verifica si todos los valores dentro de cualquiera de las matrices anidadas dentro de los possibleWinCombos son todos iguales entre sí. Si es verdadero, se encuentra un ganador.

 const possibleWinCombos = [ [0, 1, 2], //================ // [3, 4, 5], //== Horizontal == // [6, 7, 8], //=================// [0, 3, 6], //================ // [1, 4, 7], //== Vertical == // [2, 5, 8], //=================// [0, 4, 8], //=================// [2, 4, 6], //== Diagonal == // ] const ticTacToe = [ 'x', 'o', null, null, 'x', null, 'o', null, 'x', ] const game = (value) => { ticTacToe.forEach((cell, idxOfCell) => { if(cell === value){ for (winCombo of possibleWinCombos){ let idxToReplace = winCombo.indexOf(idxOfCell) winCombo.splice(idxToReplace, 1, value) } } }) checkForWinner(value) ? console.log(`${value}'s win`) : console.log('game still going') } const checkForWinner = (value) => { return possibleWinCombos.some((winCombo) => { return winCombo.every((winComboValue) => winComboValue === value); }) } game('x') // x's win game('o') // game still going

Son solo dos funciones, por lo que no es muy pesado en código, pero creo que game() no obtendría una puntuación muy alta en las clasificaciones de rendimiento debido al bucle anidado. Cualquier recomendación sobre algunas mejoras sería genial.

https://replit.com/@uwitdat/DrabNoteworthyLogin#script.js

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!