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

136
Views
¿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
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!