Pausar un bucle hasta que el usuario introduzca un dato
Tengo un problema que parece una tonteria pero lleva bloqueándome un buen rato. Estoy haciendo un programa en PHP que simula el juego de cartas Siete y media (una especie de blackjack) y necesito preguntarle al jugador en cada turno si desea sacar una carta o plantarse.
<?php
$cartasExtraidas = new SplObjectStorage(); //Lista de objetos
$puntosHumano = 0;
$puntosHumanos = jugarHumano($cartasExtraidas);
function jugarHumano($cartasExtraidas){
$decision = "c";
$puntos = 0;
do{
echo "Jugador Humano pide carta. <br>";
//Pide carta y comprueba si ya ha salido antes, si es así, se pide otra y comprueba de nuevo.
do{
$carta = new Carta();
//No he puesto la definición del objeto Carta por no alargar el código
}while($cartasExtraidas->contains($carta) != null);
$puntos = $puntos + $carta->getPuntos();
echo "Has sacado el " . $carta . ".";
echo " Llevas " . $puntos . " punto(s). Plantarse(p) o Continuar(c)";
?>
<form name="formu" method="POST">
<br><input type="text" name="decision">
<input type="submit" name="Responder">
</form>
<?php
$decision=$_POST['decision'];
echo $decision;
}while(trim(strtolower($decision)) != "p");
return $puntos;
}
He puesto un bucle do while que pide un dato al jugador y sale cuando introduce la letra "p" (plantarse). El problema es que el bucle no se para hasta que el jugador introduzca el dato, sino que sigue sacando cartas y mostrando la ventana post y el submit una y otra vez. ¿Hay alguna forma de pausar la ejecución del bucle hasta que el usuario introduzca un dato por teclado?