Tengo una función que estoy usando para construir una cuadrícula basada en matrices para un juego. Toma una matriz de 8x8 "en blanco" de la siguiente manera:
const initialBoardState = [ [['x'],['x'],['x'],['x'],['x'],['x'],['x'],['x']], [['x'],['x'],['x'],['x'],['x'],['x'],['x'],['x']], [['x'],['x'],['x'],['x'],['x'],['x'],['x'],['x']], [['x'],['x'],['x'],['x'],['x'],['x'],['x'],['x']], [['x'],['x'],['x'],['x'],['x'],['x'],['x'],['x']], [['x'],['x'],['x'],['x'],['x'],['x'],['x'],['x']], [['x'],['x'],['x'],['x'],['x'],['x'],['x'],['x']], [['x'],['x'],['x'],['x'],['x'],['x'],['x'],['x']] ] Escribí una función para generateBoard Tablero para asignar ['O'] en dos coordenadas aleatorias en la matriz.
En pocas palabras, la función agrega un solo ['O'] , luego se vuelve a llamar a sí mismo con la intención de agregar un segundo ['O'] .
Hay una variable de count que cuenta cuántas veces se ejecuta la función. Como solo quiero dos ['O'] , la función termina cuando count>1
Sin embargo, la función devuelve una cuadrícula con solo una ['O'] . Pensamientos en cuanto a lo que he hecho mal?
Función:
let xRandomValue; let yRandomValue; let coordinates = []; const generateBoard = (board) => { let count = 0 xRandomValue = Math.floor(Math.random() * 8); yRandomValue = Math.floor(Math.random() * 8); for (let i = 0; i < board.length; i++) { if (i === yRandomValue) { for (let j = 0; j < board[yRandomValue].length; j++) { if (j === xRandomValue) { board[yRandomValue][xRandomValue] = ["O"]; } } } } coordinates.push(xRandomValue) coordinates.push(yRandomValue) count++ if(count>1){ generateBoard(board) } return board; }; console.log(generateBoard(initialBoardState))