18 de August de 2013

Jogos PHP

Quem disse que não dá pra criar Jogos PHP?

É possível sim, claro que não serão jogos de aventura onde seu personagem passeia pela tela na caça de inimigos, mas existem muitos Jogos PHP espalhados pela internet como o Travian, The Crims e Gladiatus.

Neste tutorial PHP vou mostrar o desenvolvimento de um jogo simples chamado Adivinhe o Número. Nele usei apenas um único arquivo PHP por questões didáticas.

O jogo funciona assim: O computador escolhe um número entre 1 e 100 e você tem que acertá-lo com o menor número de tentativas, depois de adivinhado, o número é exibido assim como o número de tentativas e é possível reiniciar o jogo.

Pode parecer muito difícil acertar 1 número entre 100, mas pra isso também existe uma técnica de lógica onde é possível acertar com um número aproximado de 7 tentativas e sem contar com a sorte, mas a lógica para isso eu vou deixar por conta de vocês (pesquise por: busca binária) ;)

Segue o código:

<?php
    //inicia a sessão para guardar o número escolhido pelo PC 

    session_start(); 
    //cria o formulário para interação 
    echo "
        <p>Adivinhe o Número que eu estou pensando entre 1 e 100.</p>
        <form action='#' method='post'>
            <input type='text' name='entrada'>
            <input type='submit' value='Tentar'>
        </form><br/>
    "; 

    //se o jogo não foi iniciado ainda, inicia a contagem de tentativas e sorteia o número
    if (!isset($_SESSION['tentativa'])) { 
        $_SESSION['tentativa'] = 1; 
        $_SESSION['numero'] = rand(1,100); 
    }

    //se o usuário digitou algo e não foi a letra s 
    if (isset($_POST['entrada']) && $_POST['entrada'] != "s") { 
        //lê a entrada do usuário 
        $entrada = $_POST['entrada'];
        //se o número digitado for o mesmo que o sorteado exibe mensagem para reinício 
        if ($_SESSION['numero'] == $entrada) { 
            echo "
                Parabéns, você acertou! O número era <strong>".$_SESSION['numero']."</strong>.<br/> 
                Você usou <strong>".$_SESSION['tentativa']."</strong> tentativas.<br/>
                Para jogar novamente digite <strong>s</strong>. 
            "; 
        //se o número digitado for menor... } 
        } elseif ($_SESSION['numero'] > $entrada) { 
            echo "O número é maior que ".$entrada."!"; 
            //se o número digitado for maior... 
        } else { 
            echo "O número é menor que ".$entrada."!"; 
        } 

        //incrementa a tentativa 
        $_SESSION['tentativa']++; 
    //se o usuário digitou a letra s para começar de novo, destroi a variável de sessão com o número sorteado 
    } elseif (isset($_POST['entrada']) && $_POST['entrada'] == "s") { 
        unset($_SESSION['numero']); session_destroy(); 
    } 
?>

 

Visualizações: 19.941



Sérgio Toledo | Full-Stack Web Developer | LinkedIn | GitHub | YouTube

Todos os direitos reservados ©