Buenas
Parece que más o menos está todo bien, sólo que lo tienes separado por páginas. Prueba a hacer algo así, en una sola página (a no ser que necesites a propósito tenerlo separado).
Está comprobado y funciona correctamente, pero como ya te he dicho, todo en una página:
Código PHP:
<?php
if(isset($_REQUEST["contador"])){
$contador = $_REQUEST["contador"];
$contador++; //Esto es lo mismo que escribir contador = contador + 1
}else{
$contador = 1;
}
if(isset($_REQUEST["dado"])){ // Si hay jugada (dado)
// Verificamos que el contador es menor de 4 intentos
if($contador<4){ // Si aún no ha tirado 3 veces
$dado = $_REQUEST["dado"];
if(isset($_REQUEST["apuestaUser"])&& $_REQUEST["apuestaUser"]==$dado){ // Ha acertado
?><p>¡Felicitaciones, has ganado! Vuelve a intentarlo.</p> <a href ="apuesta.php"> Volver</a><?php
}elseif (!isset($_REQUEST["apuestaUser"])){ // Aún no ha enviado una apuesta
?>
<form action="apuesta.php" method="get">
Escriba un numero en el cuadro y presione apostar.<br />
<input type="hidden" name="dado" value="<?php echo $dado;?>">
<input type="hidden" name="contador" value="<?php echo $contador;?>">
<input type="text" name="apuestaUser">
<input type="submit" value="Apostar">
</form>
<?php
}else{ // No ha acertado la apuesta
?>
<form action="apuesta.php" method="get">
<p>Lo siento no has adivinado, vuelve a intentarlo (Quedan <?php echo (4-$contador);?> intentos)</p>
<input type="hidden" name="dado" value="<?php echo $dado;?>">
<input type="hidden" name="contador" value="<?php echo $contador;?>">
<input type="text" name="apuestaUser">
<input type="submit" value="Apostar">
</form>
<?php
}
}else{ // Si el contador es igual o superior a 4 veces
?><p>Lo siento, no has adivinado en 3 intentos.</p> <a href ="apuesta.php"> Volver</a><?php
}
}else{ // Si no hay jugada (dado) carga la página principal
?>
<h1>Juego de Dados</h1>
<p>¡Atrevete a apostar en el juego!</p>
<form action="apuesta.php" method="get">
<input type="hidden" name="dado" value="<?php echo rand(1,6);?>">
<input type="submit" value="Jugar">
</form>
<?php
}
Así de fallos que haya visto, la variable dado no recogía nada porque te faltaba el
echo en
<?php echo rand(1,6);?>.
Luego tienes que tener en cuenta que sólo pasabas un
hidden del dado en el primer formulario y luego nada. Es decir, la primera vez que pulsas jugar, le mandabas el "dado" como hidden, pero luego al meter la apuesta en el siguiente formulario, ya no ponías el "dado" como hidden y éste se perdía, así que siempre comparaba la apuesta con "nada". Hay que ir pasando los hiddens en cada formulario si quieres mantenerlos.
Creo que eso era todo. Espero que te sirva.
Saludos!