Buscaminas con POO

En este desafío vamos a construir un tablero para un juego de Buscaminas usando POO. Crea dos clases: Game y Cell.

Game debe aceptar 3 argumentos: número de filas, número de columnas y número total de minas; establece los valores predeterminados en 14, 18 y 40, respectivamente. Cada instancia debe tener atributos .rows, .cols y .mines, equivalentes a los valores de los tres argumentos. También debe tener un atributo .board; el tablero debe ser una lista 2D con rows sublistas que contengan cols instancias de Cell.

Una Cell debe tener los atributos .row y .col; establécelos según su posición en el tablero. Los atributos .mine (que puede ser True o False), .flag y .open (establece estos dos últimos en False). Por último, agrega un atributo .neighbors, que indique cuántas de sus celdas vecinas contienen minas.

Pruebas

game = Game()
game.rows ➞ 14
game.cols ➞ 18
game.mines ➞ 40
height of .board ➞ 14
width of .board ➞ 18
Cells in .board ➞ 252
total mined in cells .board ➞ 40
each Cell .row and .col attributes match its position on the board ➞ True
each Cell .flag and .open attributes are set to False ➞ True
each Cell .neighbors attribute matches the actual amount of neighboring mines ➞ True

Notas

  • Intenta aleatorizar la posición de las minas.
  • Siéntete libre de agregar tantos atributos o métodos adicionales como necesites.