18 de agosto de 2013
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: 22.054