• Empleos
  • Sobre nosotros
  • Empleos
    • Inicio
    • Empleos
    • Cursos y retos
  • Empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

130
Vistas
Buscar en una matriz de posiciones precisas

Actualmente tengo un cuadro con 64 mosaicos, cada color está definido. El gris es una posición válida, el negro es una posición no válida (una pared), el verde es el peón 1 del jugador y el rojo es el peón 2 del jugador. Cuando el jugador 1 hace clic en su peón verde, puede elegir duplicarse en una ficha válida cerca de él ( Gray) o salta sobre el segundo mosaico cerca de él. Si alguna vez el peón verde es una ficha cercana al peón rojo, se vuelve verde. Ahora lo que estoy buscando es.

Cómo buscar todas las posiciones válidas, ya sea un mosaico listo o saltar al segundo y verificar correctamente lo que hay después.

ingrese la descripción de la imagen aquí

 class Game{ constructor(){ super(); this.default_grid = null; this.curr_grid_playing = null; this.player = 1; this.curr_player_turn = 1; this.game_is_ready = false; this.rows = []; this.do_new_game(); } get_random_grid(){ const array_grid = [ "3100000010000000000000000003300000033000000000000000000200000023", "1000000200300300033003300000000000000000033003300030030010000002", "0000000000000000033300300313203003013230030033300000000000000000", "0000000000000000003033000313003003230030003033000000000000000000" ]; return array_grid[Math.floor(Math.random()*array_grid.length)]; } do_new_game(){ this.default_grid = this.get_random_grid(); this.curr_grid_playing = this.default_grid; for(let i = 0; i < this.default_grid.length; i++){ if(i % 8 == 0) this.rows.push([]); this.rows[this.rows.length - 1].push([i, this.default_grid.charAt(i)]); let new_game_node = this.create_game_button(this.default_grid.charAt(i), i); this.append_child_node(new_game_node); } } get_grid_possibilities(from_index){ if(this.curr_player_turn == 1 && (this.curr_player_turn == this.player)){ console.log(this.rows); } else if(this.curr_player_turn == 2 && (this.curr_player_turn == this.player)){ } } }

Estaba pensando en hacer un gráfico en una matriz para representar exactamente la cuadrícula < this.rows > es lo que muestra nuestra consola, funciona, pero no estoy seguro exactamente si no es demasiado complejo.

over 3 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Ya tienes la matriz que representa tu juego de mesa, así que solo tienes que verificar los cuadrados -1 y +1.

 let characterPosition = {x:5, y:5}; for (let row-1; row<=1; row++) { for (let col-1; col<=1; col++) { let testPosX = characterPosition.x + col; let testPosY = characterPosition.y + row; if (row===0 && col===0) { // player pos -> skip break; } if (testPosX<0 || testPosY<0 || testPosY>matrix.length-1 || testPosX>matrix[0].length-1) { // outside board -> skip break; } if (matrix[testPosY][testPosX]===0) { // this is a empty square } else { // this is not an empty square } } }
over 3 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda