Executando verificação de segurança...
10

Campo minado HTML/JS - Parte 1

expert

Apenas por diversão resolvi recriar o jogo Campo Minado em HTML/JS, e decidi compartilhar aqui no TabNews o progresso detalhando ao maximo as etapas.

Neste primeiro post, irei escrever os requisitos de interface e comportamento, para que posteriormente possamos iniciar a programação em si.

Agradeço contribuições caso eu tenha listado requisitos erroneamente ou esquecido algum requisito importante.

Penso em após a conclusão, acrescentar mais funcionalidades colocando o jogo em um site e criando um ranking por exemplo.

O que acham? Topam acompanhar e participar deste projeto?

Definição de requisitos

Interface

  • A interface deve ser identica ao jogo original, contendo os seguintes elementos:
    a. Cabeçalho com dois mostradores digitais de três digitos (a esquerda e a direita) e um botão com um emoji no centro
    b. Um tabuleiro de tamanho configurável (9x9 com 10 minas, 16x16 com 40 minas ou 30x16 com 99 minas)
    c. Cada célula do tabuleiro pode pode ocultar uma mina, um número ou pode estar vazia

Comportamento

  • Ao pressionar (mouse down) uma celula, ela irá "abaixar" indicando a celula que está em foco durante aquela ação
  • Ao soltar o botão esquerdo do mouse (click) a celula será revelada.
  • Se a celula revelada contiver uma mina, ela explode e o jogo acaba
  • Se a celula revelada não contiver uma mina, será exibido um número indicando a quantidade de bombas ao redor daquela celula (de 1 a 8)
  • Se a celula revelada não tiver minas ao redor, o jogo irá automaticamente revelar as celulas vizinhas recursivamente
  • Ao pressionar uma celula com o botão direito, o status da celula será alternado entre "bandeira", "?" ou "não marcado"
  • Ao pressionar uma celula com os dois botões do mouse, todas as celulas adjacentes serão "abaixadas" para ajudar o jogador a visualizar as celulas adjacentes de uma celula
  • Celulas marcadas como bandeira não podem ser reveladas ao clicar com o botão esquerdo
  • O mostrador digital da esquerda indica quantas bombas ainda não foram marcadas com a bandeira.
  • O mostrador da direita mostra o tempo corrido desde que a primeira celula do tabuleiro foi revelada
  • O emoji do botão central pode ser:
    a. Uma carinha feliz por padrão
    b. Uma carinha de surpresa enquanto a celula é pressionada (mouse down)
    c. Uma carinha morta se uma mina for explodida
    d. Uma carinha de oculos escuro se o jogador ganhar a partida
  • Clicar no botão central reinicia o jogo
  • O primeiro clique no tabuleiro nunca deve conter uma bomba
Carregando publicação patrocinada...
6

É um projetinho bem bom pra pegar lógica de programação e lidar com arrays e matrizes. Lembro de quando fiz tem vários detalhezinhos e edge cases pra lidar. Uma coisa interessante de fazer é ter a funcionalidade (que o campo minado da microsoft tem) de nunca ter bomba no primeiro click do usuário.

1
6

kkkkkkkkkkkkkkkk eu literalmente estava fazendo um desses a 2 dias atrás. Vou procurar outro jogo então, achei que estava sendo original hahaha parabens amigo!

1

Quando fiz faculdade, na cadeira de algoritmos, o professor pediu para fazermos um projeto interessante, e quem tivesse o melhor projeto estaria dispensado da aula e "passado" automaticamente.

Eu fiz um campo minado em Pascal, com cursor e tudo em linha de comando.

O professor ficou achando que eu tinha baixado na internet, e me colocou na frente da turma toda para explicar o funcionamento.

Eu expliquei todo, e logo em seguida ele abaixou a cabeça e escreveu meu nome e disse: "vá embora!"

hahaha

Vale muito a pena recriar um você também, o aprendizado é fantástico.

3