campo minado
O trabalho consiste em fazer uma adaptação do jogo campo minado. Inicialmente o programa deve mostrar para o usuário a seguinte tela:
O usuário poderá escolher se quer jogar o tabuleiro 9x9 ou 16x16.
O tabuleiro 9x9 deverá ter 10 bombas, enquanto que o tabuleiro 16x16 terá 40 bombas.
As bombas são posicionadas aleatoriamente no tabuleiro. Para fazer essa parte, considere usar a função sample do módulo random. A função sample tem dois parâmetros: o primeiro é uma lista, de onde ela escolherá aleatoriamente o elemento. O segundo é o número de elementos que você quer obter daquela lista.
Exemplo:
random.sample([1,2,3,4,5],2) → Vai retornar dois números aleatórios da lista passada.
Obs.: Não esqueça de importar o módulo random.
Para representar o tabuleiro, vocês deverão usar uma matriz, onde cada elemento da matriz será uma bomba, representada por um *, ou um número de 0 a 8. Cada número indica o número de bombas que existem nas casas adjacentes a esse número. Observe um exemplo de tabuleiro abaixo:
O número 0 representa que não tem nenhuma bomba nas casas adjacentes. O número 2 representa que tem duas bombas adjacentes a ele, e assim por diante.
O programa deverá gerar o tabuleiro de acordo com a posição aonde as bombas foram posicionadas, preenchendo a matriz com os números correspondentes.
O programa então apresentará ao usuário a seguinte tela:
Observe que foram colocados os números de 0 a 8 apenas para que o usuário saiba com mais facilidade a posição a escolher.
O usuário deverá escolher a posição que quer abrir, digitando o par linha-coluna entre colchetes. Por exemplo, se quiser abrir a linha 0 coluna 8, deverá digitar: [0,8].
O seu programa então deverá ter as seguintes ações:
1) Verificar se a posição digitada é válida, imprimindo uma mensagem caso não seja.
2) Verificar se a posição escolhida é bomba. Se for, o jogo termina, mostrando ao usuário o tabuleiro todo aberto, conforme abaixo:
O