Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

197
Vistas
¿Cómo detectar al ganador de Tic Tac Toe en Javascript con una matriz de 3 niños?

Soy un principiante y quiero hacer un juego de Tic Tac Toe. Quiero hacer una función para encontrar el ganador del juego y devolver "x" si gana x, "o" si gana o, "empate" si nadie gana y "error" si hay dos ganadores.

 function winner(x){ //x is an array that includes 3 child arrays, every child represents a row of tic tac toe matrix // example x =[["x","o","x"],["o","x","o"],["o","o","x"]] // It should return "x" because "x" player is the winner }

Lo intenté de muchas maneras, pero todavía no puedo hacerlo. ¿Me puedes ayudar?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Supongo que los valores también pueden ser "" aparte de "x" u "o" (en caso de que el juego termine antes de tiempo). Además, en caso de que no haya un ganador y el juego aún tenga algunos valores vacíos, creo que es mejor devolver "incompleto".

 function winner(x) { console.log(`${x[0].join(' ')}\n${x[1].join(' ')}\n${x[2].join(' ')}`); winners = new Set(); // columns check for (let i = 0; i < 3; i++) { if (x[0][i] !== "" && (new Set([x[0][i], x[1][i], x[2][i]])).size === 1) { winners.add(x[0][i]); } } // rows check for (let i = 0; i < 3; i++) { if (x[i][0] !== "" && (new Set(x[i])).size === 1) { winners.add(x[i][0]); } } // diagonals check if (x[1][1] !== "" && ((new Set([x[0][0], x[1][1], x[2][2]])).size === 1 || (new Set([x[0][2], x[1][1], x[2][0]])).size === 1)) { winners.add(x[1][1]); } if (winners.size === 2) { return "error"; } if (winners.size === 0) { // completion check if (x.every(y => y.every(z => z))){ return "draw"; } return "incomplete"; } return winners.values().next().value; }

Explicación

Ve muchos objetos Set creados y manipulados en el código. Establecer en Javascript es una manera fácil de asegurarse de que no haya duplicados. También se utilizan en el código para comprobar si todo lo que se le pasa es igual.

Por último, obtener el valor en el Conjunto se realiza en la última línea.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda