Tablero de Piezas

Construye un tablero de 8×7 ubicando 7 piezas sin que compartan fila ni columna.

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 1 y los espacios vacíos con 0.

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 posiciones son 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.

Volver
Cargando editor...

Resultado de los tests