Jogo Caça Minas

 

O jogo Caça Minas consiste em descobrir e marcar todas as minas existentes em um campo minado.

Inicialmente todas as posições do campo minado estão escondidas, cabendo ao jogador mostrar cada uma das posições ou marcar a existência de uma mina. Se a posição for mostrada e nela houver uma mina, esta explode e o jogo termina.

Para auxiliar na identificação das minas, cada posição ao redor de uma mina na horizontal, vertical ou diagonal contém uma marcação com um número, que identifica quantas minas existem ao seu redor. As posições que não são vizinhas a nenhuma mina não são marcadas com número, e quando são mostradas também liberam a exibição das posições adjacentes sem marcação até que uma posição com marcação seja encontrada.

O jogador vence o jogo quando marca corretamente todas as minas existentes no campo minado. O número de marcações de minas deve ser exatamente igual ao número de minas, se houver marcações extras estas devem ser eliminadas para que o jogo seja concluído.

Questão: escrever um programa em C que implemente o jogo Caça Minhas com console em modo texto. O programa tem as seguintes características:

O programa deve ser implementado utilizando-se as seguintes regras de estilo (para maiores informações, consultar o documento Regras de estilo para código fonte em linguagem C):