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

194
Visualizações
¿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 Respostas
Responde à pergunta

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