Campo Minado

O Campo Minado (Minesweeper) é um jogo, inicialmente, para um jogador. O objetivo é limpar um campo que contém minas escondidas sem detona-las utilizando dicas referentes a quantidade de minas ao redor de um quadrado. O jogo tem sua origem entre as décadas de 60 e 70 e se tornou bastante popular pois fazia parte de sistemas operacionais como Windows e versões de Linux.

É um jogo fácil de desenvolver e, talvez, você se pergunte qual a importância de aprender sobre um jogo tão antigo e simples. Mas, primeiro, conhecimento nunca é demais e, segundo, mecânicas sempre podem ser reaproveitadas e os jogos reimaginados.

Regras

A área do jogo consiste em um grid de quadrados. O jogador pode revelar o quadrado clicando sobre ele. Se o quadrado clicado contiver uma mina, o jogo acaba, caso contrário podem acontecer duas coisas:

  • Mostrar o número de minas nos quadrados adjacentes;
  • Se não houver nenhuma mina na “vizinhança” (use o Tinder), revela os quadrados adjacentes.

O jogo termina quando todos os quadrados que não contém minas são revelados.

Opcionalmente, o jogador também pode marcar qualquer quadrado que acredita que contém uma mina com uma bandeira.

Mãos ao código

Precisamos criar um grid com os quadrados e adicionar aleatoriamente as minas:

Depois tomar uma ação no tile, que será um ‘suposição’ (chute para alguns) ou colocar uma bandeira:

Segue o exemplo do jogo abaixo. Use o botão esquerdo do mouse para abrir o quadrado ou o direito para marcar a bandeira/flag (azul). Tentei ser sucinto ao explicar o código, focando nas principais funcionalidades, mas o código completo você encontra no nosso Github.