Advertisement
MasterCheats

Jogo Mine

Jan 29th, 2025 (edited)
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- Configurações iniciais do jogo
  2. local largura = 15
  3. local altura = 12
  4. local minas = {}
  5. local campo = {}
  6. local pontuacao = 10
  7. -- Número total de células sem minas
  8. local totalCelulas = largura * altura - 5  -- 5 minas
  9. local paX, paY = 1, 1  -- Posição inicial da pá
  10. local minaAvisada = {}  -- Tabela para armazenar minas já avisadas
  11. local mensagens = ""  -- Mensagens que serão exibidas abaixo do tabuleiro
  12. local jogoFinalizado = false  -- Para verificar se o jogo foi finalizado
  13.  
  14. -- Função para inicializar o campo de jogo
  15. function inicializarCampo()
  16.     -- Preenche o campo com células vazias
  17.     for y = 1, altura do
  18.         campo[y] = {}
  19.         for x = 1, largura do
  20.             campo[y][x] = "⬛" -- Representa uma célula fechada
  21.         end
  22.     end
  23.    
  24.     -- Coloca as minas no campo sem sobreposição
  25.     local minaPosicoes = {}
  26.     for i = 1, 5 do
  27.         local x, y
  28.         repeat
  29.             x = math.random(1, largura)
  30.             y = math.random(1, altura)
  31.         until not minaPosicoes[y * largura + x]  -- Garante que a mina não se sobreponha
  32.         minaPosicoes[y * largura + x] = true
  33.         minas[y * largura + x] = true
  34.     end
  35. end
  36.  
  37. -- Função para contar as minas ao redor de uma célula
  38. function contarMinas(x, y)
  39.     local contagem = 0
  40.     for dy = -1, 1 do
  41.         for dx = -1, 1 do
  42.             if x + dx >= 1 and x + dx <= largura and y + dy >= 1 and y + dy <= altura then
  43.                 if minas[(y + dy) * largura + (x + dx)] then
  44.                     contagem = contagem + 1
  45.                 end
  46.             end
  47.         end
  48.     end
  49.     return contagem
  50. end
  51.  
  52. -- Função para desenterrar uma célula
  53. function desenterrar(x, y)
  54.     if minas[y * largura + x] then
  55.         mensagens = "💥BOOM! Você acertou uma mina!\n"
  56.         campo[y][x] = "💣"  -- Exibe a mina explodida
  57.         -- Mostra todas as minas restantes no campo
  58.         for y = 1, altura do
  59.             for x = 1, largura do
  60.                 if minas[y * largura + x] then
  61.                     campo[y][x] = "💣"  -- Revela todas as minas
  62.                 end
  63.             end
  64.         end
  65.         jogoFinalizado = true  -- Marca o fim do jogo
  66.     else
  67.         local contagem = contarMinas(x, y)
  68.         campo[y][x] = "💎"  -- Marca a célula como desenterrada
  69.         pontuacao = pontuacao + 1  -- Aumenta a pontuação
  70.         if contagem > 0 then
  71.             mensagens = "📍 Célula (" .. x .. "," .. y .. "): " .. contagem .. " minas ao redor."  -- Atualiza a mensagem
  72.         else
  73.             mensagens = "✅ Área segura. Sem minas por perto."  -- Se não houver minas ao redor
  74.         end
  75.     end
  76.    
  77.     -- Verifica se o jogo acabou
  78.     if pontuacao >= totalCelulas then
  79.         mensagens = "🎉 Parabéns! Você completou o campo sem minas! 🏆"
  80.         jogoFinalizado = true
  81.     end
  82. end
  83.  
  84. -- Função para reiniciar o jogo
  85. function restart()
  86.     minas = {}
  87.     campo = {}
  88.     pontuacao = 0
  89.     paX, paY = 1, 1
  90.     minaAvisada = {}  -- Limpa o histórico de minas avisadas
  91.     mensagens = ""  -- Limpa as mensagens
  92.     jogoFinalizado = false  -- Reseta o status do jogo
  93.     inicializarCampo()
  94. end
  95.  
  96. -- Função para desenhar o tabuleiro
  97. function desenharTabuleiro()
  98.     local tabuleiro = "Pontuação: " .. pontuacao .. "                 Script Made by MasterYT😎\n\n⬜"
  99.     for x = 1, largura do
  100.         tabuleiro = tabuleiro .. "⬜"
  101.     end
  102.     tabuleiro = tabuleiro .. "⬜\n"
  103.    
  104.     for y = 1, altura do
  105.         tabuleiro = tabuleiro .. "⬜"
  106.         for x = 1, largura do
  107.             if x == paX and y == paY then
  108.                 tabuleiro = tabuleiro .. "⛏️" -- Emote de pá
  109.             else
  110.                 tabuleiro = tabuleiro .. campo[y][x]
  111.             end
  112.         end
  113.         tabuleiro = tabuleiro .. "⬜\n"
  114.     end
  115.     tabuleiro = tabuleiro .. "⬜"
  116.     for x = 1, largura do
  117.         tabuleiro = tabuleiro .. "⬜"
  118.     end
  119.     tabuleiro = tabuleiro .. "⬜\n"
  120.    
  121.     -- Exibe a mensagem abaixo do tabuleiro, ou opção de tentar novamente se o jogo acabou
  122.     if jogoFinalizado then
  123.         tabuleiro = tabuleiro .. "\n" .. mensagens
  124.         tabuleiro = tabuleiro .. "\n\nEscolha uma ação:\n"
  125.     else
  126.         tabuleiro = tabuleiro .. mensagens
  127.     end
  128.  
  129.     return tabuleiro
  130. end
  131.  
  132. -- Função para mover a pá
  133. function moverPa()
  134.     if jogoFinalizado then
  135.         -- Não permite mover a pá após o BOOM
  136.         local escolha = gg.choice(
  137.             {"1. Tentar novamente", "2. Desistir"},
  138.             nil,
  139.             desenharTabuleiro()
  140.         )
  141.        
  142.         if escolha == 1 then
  143.             restart()  -- Reinicia o jogo
  144.         elseif escolha == 2 then
  145.             gg.alert("👋Saindo do jogo... Até mais! Volte logo! 🙋‍♂️")
  146.             os.exit()  -- Sai do jogo
  147.         end
  148.         return
  149.     end
  150.  
  151.     local tabuleiro = desenharTabuleiro()
  152.  
  153.     -- Verifica se a célula com a pá contém uma mina e não foi avisada
  154.     if minas[paY * largura + paX] and not minaAvisada[paY * largura + paX] then
  155.         mensagens = "⚠️ Atenção! Mina próxima! Cuidado ao cavar."  -- Atualiza a mensagem
  156.         minaAvisada[paY * largura + paX] = true  -- Marca a mina como avisada
  157.     else
  158.         -- Verifica se há minas ao redor
  159.         local minasAoRedor = contarMinas(paX, paY)
  160.         if minasAoRedor > 0 then
  161.             mensagens = "⚠️ " .. minasAoRedor .. " minas ao redor. Cuidado!"  -- Atualiza com número de minas ao redor
  162.         else
  163.             mensagens = "✅ Área segura. Sem minas por perto."  -- Se não houver minas ao redor
  164.         end
  165.     end
  166.  
  167.     local escolha = gg.choice(
  168.         {"                    ⬆️ Cima", "⬅️ Esquerda", "                                        ➡️ Direita", "                    ⬇️ Baixo", "                                         ⛏️ Cavar", "❌ Sair"},
  169.         nil,
  170.         tabuleiro .. "\nEscolha uma ação:"
  171.     )
  172.  
  173.     -- Verifica se o jogador tentou ir além dos limites do tabuleiro e não permite
  174.     if escolha == 1 and paY > 1 then
  175.         paY = paY - 1
  176.     elseif escolha == 2 and paX > 1 then
  177.         paX = paX - 1
  178.     elseif escolha == 3 and paX < largura then
  179.         paX = paX + 1
  180.     elseif escolha == 4 and paY < altura then
  181.         paY = paY + 1
  182.     elseif escolha == 5 then
  183.         desenterrar(paX, paY) -- Cavando a célula selecionada
  184.     elseif escolha == 6 then
  185.         gg.alert("👋Saindo do jogo... Até mais! volte logo🙋‍♂️")
  186.         os.exit()
  187.     end
  188. end
  189.  
  190. -- Função principal
  191. function jogo()
  192.     math.randomseed(os.time())
  193.     restart() -- Garante que o jogo inicie sempre do zero
  194.     while true do
  195.         moverPa()
  196.     end
  197. end
  198.  
  199. -- Iniciar o jogo
  200. jogo()
  201.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement