Foros del Web » Programando para Internet » PHP »

ADivinar el numero aleatorio

Estas en el tema de ADivinar el numero aleatorio en el foro de PHP en Foros del Web. que onda chavos tengo el siguiente codigo el cual imprime cada vez que se actuliza la pagina imprime un numero aleatorio.. La idea es hacer ...
  #1 (permalink)  
Antiguo 07/01/2004, 17:05
 
Fecha de Ingreso: noviembre-2003
Mensajes: 343
Antigüedad: 20 años, 4 meses
Puntos: 0
ADivinar el numero aleatorio

que onda chavos tengo el siguiente codigo el cual imprime cada vez que se actuliza la pagina imprime un numero aleatorio..

La idea es hacer comoun jueguito lo mas sencillo posible para que el usario lo adivine, de que manera puedo hacer uno la verdad no se nada de PHP.. si me pueden ayudar Selos agradecere muchisisisisisisismo Ok.. Gracias..

***Nota, no se si con algun formulario en el cual ingrese un valor y liçuego lo iuguale con el de la variable aleatoria.. no se Ni idea...
porfis,........... Gracias., y si algun dia necesitan algo de diseño grafico pos aqui tamos Ok.. gRaccias bye

<?

srand(time());
#devuelve un numero entre el 1 y el 100

$aleatorio = rand(1, 100);
echo "<b>".$aleatorio."</b>";
?>
<a href="aleatorio.php">Click aqui para actualizar esta página y ver el siguiente número al azar</a>

Buen dia
  #2 (permalink)  
Antiguo 08/01/2004, 06:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Bueno .. si, como bien dices necesitas capturar ese dato desde un formulario HTML y en tu parte "PHP" (código PHP) debes de compararlo con un condicional común IF().

Sería algo así.

aleatorio.php

Código PHP:
<?

srand
(time());
#devuelve un numero entre el 1 y el 100

$aleatorio rand(1100);
if (
$_POST['numero'] == $aleatorio){
 echo 
"Acertastes (y a la primera .. esto es suerte ves a comprar un billete de loteria xDD";
} else {
  echo 
"Intentalo otra vez";
}
?>
<form action="aleatorio.php" method="PHP">
<input type="text" name="numero">
<input type="submit" name="submit" value=" Probar ">
</form>
Ahora, el problema de esto es que siempre se va a generar un nuevo número aleatorio .. y no se va a generar un numero como para que pueda intentar N veces en adivinarlo. Para eso, ese número tendrías que generalo y guardarlo en una cookie, session o archivo de texto plano o Base de datos como para leerlo de ahí en sucesivas comparaciones (intentos -> recargas de página <-envios del formulario).

Esto mismo .. usando sesiones sería algo así:

Código PHP:
<?
// Inicio de sesiones.
session_start();

// Se verifica que exista la variable de sesión que contine nuestro numero aleatorio generado.
if (isset($_SESSION['aleatorio'])){
   
// Si existe nuestro numero .. empezamos a compararlo con lo que ingresaron por el formulario.
   
if ($_SESSION['aleatorio'] == $_POST['numero']){
      echo 
"Acertastes ";
      
// Si acertó .. borramos el número de la sesión y queda listo para que juegue a otro número .. o lo mandes a otro sitio .. o lo que corresponda.
      
unset ($_SESSION['aleatorio'];
   } else {
      echo 
"Intentalo otra vez";
} else {
     
// Si no existe variable de sesión con nuestro número .. se entiende que inicia un nuevo juego .. así que se genera y se almacena en la sesión.
    // depende de la versión de PHP que uses .. sdran() es necesario o lo puedes omitir ...
   
srand(time()); 
   
#devuelve un numero entre el 1 y el 100
   
$_SESSION['aleatorio'] = rand(1100);
}

<
form action="aleatorio.php" method="PHP">
<
input type="text" name="numero">
<
input type="submit" name="submit" value=" Probar ">
</
form>
(supongo que irá, Pero al usar sesiones es problable que no tengas configurado el tema sesiones (sobre todo si trabajas en tu PHP "local" en tu casa) .. Guardalo como aleatorio.php ..)

De todas formas te recomiendo un manual de PHP (en las FAQ's de este foro tienes) ya que este ejemplo es uno de los "básicos" para que empieces a ver como se trabaja con PHP a la hora de recoger datos de un formulario y procesarlos.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 08/01/2004 a las 06:34
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:10.