Campo Minado com POO

Neste desafio, vamos construir um tabuleiro para um jogo de Campo Minado usando POO. Crie duas classes: Game e Cell.

Game deve receber 3 argumentos: número de linhas, número de colunas e número total de minas; defina os valores padrão como 14, 18 e 40, respectivamente. Cada instância deve ter os atributos .rows, .cols e .mines, equivalentes aos valores dos três argumentos. Ela também deve ter um atributo .board; o tabuleiro deve ser uma lista 2D com rows sublistas contendo cols instâncias de Cell.

Uma Cell deve ter os atributos .row e .col; defina-os de acordo com sua posição no tabuleiro. Os atributos .mine (que pode ser True ou False), .flag e .open (defina estes dois últimos como False). Por fim, um atributo .neighbors, indicando quantas de suas células vizinhas contêm minas.

Testes

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

Observações

  • Tente randomizar a posição das minas.
  • Sinta-se à vontade para adicionar quantos outros atributos ou métodos forem necessários.