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

138
Vistas
¿Cómo termino la parte interna de este ciclo anidado pero hago que continúe el ciclo anidado general más grande?

Estoy trabajando en una parte de una IA minimax para una placa Connect Four.

Tengo un tablero de juego paralelo para probar que se ve así:

 let parallelBoard = [ [1,2,3,4,5,6,7], [8,9,10,11,12,13,14], [15,16,17,18,19,20,21], [22,23,24,25,26,27,28], [29,30,31,32,33,34,35], [36,37,38,39,40,41,42] ];

La findAvailableSpots(board) me da una matriz que consta de los números en la primera fila que todavía están disponibles para jugar. Utilizo la primera fila para determinar esto porque empalmo "Rojo" o "Amarillo" en la matriz cada vez que se toma un lugar, y si la primera fila de esa columna está ocupada, ya no se puede seleccionar.

Luego recorro la longitud de los lugares disponibles y tomo cada uno como el índice de la columna en la que quiero poner un marcador y probar.

A continuación, para cada uno de estos lugares disponibles, hago un bucle hacia arriba desde la fila inferior o sexta para colocar la ficha donde no hay una cadena "roja" o "amarilla" en ese lugar.

Me gustaría que se detuviera una vez que encontrara un lugar y pasara al siguiente número en el arreglo parallelAvailable disponible.

Pero si no pongo un retorno, pone un token en cada fila de esa columna.

Si pongo una devolución, se breaks después de empalmar [parallelAvailable][0] .

Me gustaría ejecutar el bucle i para ver en qué fila puede colocar un token y luego pasar a la siguiente en [parallelAvailable][s] .

¿Qué tengo que hacer? ¿Estoy colocando el return en el lugar equivocado, o hay una mejor manera de hacer esto por completo, tal vez con otra if condicional?

 function pickBestMove() { // let bestScore // let bestColumn let parallelAvailable = findAvailableSpots(parallelBoard) console.log(parallelAvailable) for (s=0; s<parallelAvailable.length; s++) { let i; let j = parseInt(parallelAvailable[s] - 1) console.log(j) for (i = 5; i > -1; i--) {if (Number.isInteger(parallelBoard[i][j])) { parallelBoard[i].splice((j), 1, currentPlayer) } // let positionScore = scorePosition (parallelBoard, currentPlayer) // console.log(gameboard[i][j] + " gets " + positionScore) // parallelBoard[i].splice((indexPick), 1, gameboard[i][j]) // if (positionScore > bestScore) { // bestScore = score // console.log(bestScore) // bestColumn = s // console.log(bestColumn) // } // // return // } // } } // return bestColumn console.log(parallelBoard)} };
about 4 years ago · Juan Pablo Isaza
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