Descripción del desafío
Implementa una función que construya un tablero de 8 filas × 7 columnas y ubique exactamente 7 piezas, respetando las siguientes reglas:
- Cada columna tiene exactamente una pieza.
- Ninguna fila puede contener más de una pieza (una fila quedará siempre vacía).
- Las piezas se representan con
1y los espacios vacíos con0.
Parámetro
La función recibe posiciones: un array de 7 enteros en el rango 0–7, donde posiciones[col] indica la fila en que se coloca la pieza de la columna col.
Se garantiza que todos los valores de
posicionesson distintos entre sí (no se repite ninguna fila).
Retorno
Un array bidimensional number[][] de 8 filas × 7 columnas, donde tablero[fila][col] es 1 si hay pieza y 0 si el espacio está vacío.
Ejemplo
generarTablero([0, 1, 2, 3, 4, 5, 6])
Resultado (diagonal principal):
// col: 0 1 2 3 4 5 6
[ [1, 0, 0, 0, 0, 0, 0], // fila 0
[0, 1, 0, 0, 0, 0, 0], // fila 1
[0, 0, 1, 0, 0, 0, 0], // fila 2
[0, 0, 0, 1, 0, 0, 0], // fila 3
[0, 0, 0, 0, 1, 0, 0], // fila 4
[0, 0, 0, 0, 0, 1, 0], // fila 5
[0, 0, 0, 0, 0, 0, 1], // fila 6
[0, 0, 0, 0, 0, 0, 0] ] // fila 7 (vacía)
Restricciones
- El tablero siempre tiene exactamente 8 filas y 7 columnas.
- Se ubican exactamente 7 piezas, una por columna.
- Como hay 7 piezas y 8 filas, exactamente una fila quedará siempre vacía.
- Cada fila puede contener a lo sumo una pieza.
Reto adicional
Una vez que tu función base funciona, implementa generarTableroAleatorio(): number[][] que genere posiciones válidas de forma aleatoria sin repetir filas, usando generarTablero internamente.
Pista: Mezcla el array [0,1,2,3,4,5,6,7] con Fisher-Yates, elimina un elemento al azar (la fila que quedará vacía) y usa los 7 restantes como posiciones.