windows – Como programar Minesweeper em c?

Pretende-se uma implementação em linguagem C para o jogo Minesweeper.
Em cada instante do jogo cada célula do tabuleiro está num de três estados possíveis: descoberto,
coberto ou sinalizado. Uma célula coberta é identificada um “.”, enquanto numa célula descoberta
é exposto o seu “conteúdo” (nº de minas em células adjacentes, ou vazio caso este número seja
zero). As células sinalizadas como contendo uma mina são identificadas com um “f”.
Pretende-se que o programa permita jogar quer com tabuleiros gerados de um modo aleatório (mas
satisfazendo as restrições dadas pelo utilizador), quer com tabuleiros lidos a partir de ficheiros de
texto.
Depois de gerado ou lido o tabuleiro, em cada jogada é escolhida uma célula e uma operação a
realizar (uncover, flag). O tabuleiro é atualizado após a realização da operação; se o jogo não
terminar é iniciada uma nova jogada.
O ficheiro de texto com o tabuleiro deve ter o seguinte formato:
● na primeira linha é indicada a configuração do tabuleiro: a dimensão (linhas e colunas por
esta ordem) e o número de minas;
● nas linhas seguintes é indicada a posição de cada mina, uma por linha.
O tamanho máximo do tabuleiro é de 26×26 células (atenção que o número que identifica a linha deve ter 2 caracteres, sendo o primeiro um espaço no caso de ser menor que 10).