Cara, serei sincero: não consegui entender muita coisa do que tu explicou. Eu não entendo nada de sessões (ainda não cheguei nessa parte no meu cronograma de aulas), até tentei aprender um pouco pra tentar utilizar no programa, mas não mudou muita coisa. Retirei o laço
do ... while, como tu recomendou, e tentei fazer novamente com o que eu consegui entender do que tu explicou. Vejamos:
<html>
<head>
<title>Jogo</title>
</head>
<body>
<form action = "" method = "post">
<input type = "number" name = "p" />
<input type = "submit" name = "botao" />
</form>
<?php
if(isset($_POST["botao"]))
{
srand(time(NULL));
$x = rand(0, 100);
$p = $_POST["p"];
$t = $t + 1;
if($p != "")
{
if($p == $x)
{
echo "Parabéns, você acertou! Placar: $t";
}
else
{
if($p > $x)
{
echo "Tente algo menor... Placar: $t";
}
else
{
echo "Tente algo maior... Placar: $t";
}
}
}
else
{
echo "Digite um valor";
}
//echo $x;
}
else
{
}
?>
</body>
</html>
O problema agora é (tu vai conseguir percebê-lo removendo o comando para transformar uma linha de código em uma linha de comentários em '
echo $x;'): o script está gerando um número aleatório sempre que o botão é acionado, enquanto deveria fazê-lo somente uma vez. Tentei resolver o problema semeando o gerador de números aleatórios com
time(NULL) (assim como fiz no programa em C) e gerando o número aleatoriamente antes da validação do botão submit, mas, aparentemente, o buraco é mais fundo. Espero que tenha compreendido
a minha ignorância o meu problema e que possa me ajudar, afinal preciso
passar de ano concluir isso