Como Criar um Jogo de Adivinhação em PHP (Passo a Passo)

Como Criar um Jogo de Adivinhação em PHP

Você sabia que a melhor forma de fixar o que aprendeu em programação é criando jogos? Quando juntamos a lógica condicional (o famoso if/else) com a capacidade de gerar números aleatórios, as possibilidades são infinitas!

Neste tutorial do nosso Curso de PHP, vamos criar um clássico Jogo da Adivinhação. O objetivo é simples e muito divertido:

"O PHP vai gerar e esconder um número aleatório entre 1 e 10. Você, através de um formulário, vai dar o seu palpite tentando adivinhar que número foi esse. Se acertar, comemore! Se errar, o sistema revelará o número sorteado."

A Lógica por trás do Game

Antes de sairmos digitando código, vamos entender o passo a passo do que o nosso script precisa fazer:

  1. Capturar a Jogada: Primeiro, recebemos o número que o jogador digitou no formulário (vamos armazená-lo na variável $palpite).
  2. A Mágica do PHP: No mesmo instante, usamos a função rand(1, 10) para o servidor "pensar" em um número secreto. Vamos guardar isso na variável $resposta.
  3. A Hora da Verdade: Comparamos o $palpite com a $resposta usando um if (Se). Se forem exatamente iguais, mostramos a mensagem de vitória. Caso contrário (else), anunciamos a derrota.

O Código Completo e Bonito

Preparamos um código especial para você. Além de ter a lógica perfeita do PHP, adicionamos um pouco de CSS (estilização) para que o seu jogo não fique parecendo um formulário chato de prefeitura, mas sim um minigame moderno!

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <title>Jogo de Adivinhação - PHP Progressivo</title>
    <style>
        /* Estilos para deixar nosso jogo com cara de jogo! */
        .game-box { max-width: 400px; margin: 30px auto; text-align: center; font-family: sans-serif; border: 3px solid #3b82f6; border-radius: 12px; padding: 25px; background-color: #f8fafc; box-shadow: 0 4px 8px rgba(0,0,0,0.1); }
        .btn-jogar { background-color: #3b82f6; color: white; border: none; padding: 12px 25px; border-radius: 6px; cursor: pointer; font-size: 16px; font-weight: bold; width: 100%; transition: background 0.3s; }
        .btn-jogar:hover { background-color: #2563eb; }
        input[type="number"] { padding: 12px; width: 90%; margin-bottom: 20px; border: 2px solid #cbd5e1; border-radius: 6px; font-size: 18px; text-align: center; }
        .resultado { margin-top: 20px; padding: 15px; border-radius: 6px; font-weight: bold; font-size: 1.1em; }
        .acertou { background-color: #d1fae5; color: #065f46; border: 1px solid #10b981; }
        .errou { background-color: #fee2e2; color: #991b1b; border: 1px solid #ef4444; }
    </style>
</head>
<body>

    <div class="game-box">
        <h2>🎮 Tente a Sorte!</h2>
        <p>O PHP pensou em um número de <strong>1 a 10</strong>. Qual é o seu palpite?</p>
        
        <form action="" method="get">
            <input type="number" name="palpite" min="1" max="10" required placeholder="Digite um número..." />
            <button type="submit" class="btn-jogar">Verificar Palpite</button>
        </form>

        <?php
        /* * A função isset() verifica se o jogador já enviou um palpite.
         * Se não colocarmos isso, o PHP vai dar erro na primeira vez que a página abrir!
         */
        if(isset($_GET['palpite'])) {
            
            // 1. Recebe o palpite do usuário
            $palpite = $_GET['palpite'];
            
            // 2. O servidor escolhe um número aleatório de 1 a 10
            $resposta = rand(1, 10);

            // 3. Compara os resultados e exibe a div colorida correspondente
            if($palpite == $resposta) {
                echo "<div class='resultado acertou'>";
                echo "🎉 Acertou miserávi! O número era exatamente $resposta!";
                echo "</div>";
            } else {
                echo "<div class='resultado errou'>";
                echo "❌ Errou feio! Você jogou $palpite, mas o número sorteado era $resposta.";
                echo "</div>";
            }
        }
        ?>
    </div>

</body>
</html>

💡 Entendendo o isset()

Notou o if(isset($_GET['palpite'])) no código? Isso é uma boa prática essencial. Ele diz ao PHP: "Só execute a lógica do sorteio SE o formulário tiver sido preenchido e enviado". Sem isso, assim que o usuário entra no site, o PHP tentaria ler uma variável vazia e geraria um alerta de erro na tela.

Pronto! Agora é só você colocar esse minigame no ar em uma hospedagem real e mandar o link no grupo do WhatsApp dos seus amigos para ver quem é o mestre da adivinhação e acerta de primeira!

Gostou do Joguinho? Tem muito mais! 🚀

Na nossa Apostila de PHP Oficial, nós ensinamos passo a passo como criar sistemas complexos, jogos avançados, e tudo o que você precisa para se tornar um desenvolvedor Web Profissional.

Baixar Apostila Completa de PHP

Nenhum comentário: