Foros del Web » Programando para Internet » PHP »

while defectuoso? no entiendo nada...

Estas en el tema de while defectuoso? no entiendo nada... en el foro de PHP en Foros del Web. Hola a todos, Llevo mas de 4 horas pensando en donde esta el problema de mi script y he llegado a la conclusion de que ...
  #1 (permalink)  
Antiguo 06/08/2008, 18:32
 
Fecha de Ingreso: diciembre-2005
Ubicación: BCN
Mensajes: 165
Antigüedad: 18 años, 4 meses
Puntos: 2
while defectuoso? no entiendo nada...

Hola a todos,

Llevo mas de 4 horas pensando en donde esta el problema de mi script y he llegado a la conclusion de que no hay, pero no funciona...

El script es este:

Código PHP:
$h[1] = 0;
$h[2] = 119;
$h[3] = 119;
$h[4] = 119;
$h[5] = 119;
$h[6] = 119;
$h[7] = 119;


    
$ale_cad=0;
     for(
$i=1$i<=5$i++) 
     {
      
$ale mt_rand(1,7);
      while ( 
$h[$ale] == )
      { 
          
$ale_cad $ale_cad.$ale;
      
$ale mt_rand(1,7);
      }
      
$bus substr_count($ale_cad$ale);
     while ( 
$bus != 
      {
       
$ale mt_rand(1,7);
       
$bus substr_count($ale_cad$ale);
      } 
      
$ale_cad $ale_cad.$ale;
      
$h[$ale] = $h[$ale] - 1;
     
     } ; 
El caso es que yo quiero que cuando $ale sea "1" , al pasar por el bucle, de tantas vueltas hasta que cambie de numero y $ale no sea ningun 1.

Creo que esta todo bien, pero hay casos en los que no se de donde, del bucle sale un 1 final en la variable $ale.

Espero que me podais decir como hacer para que el 1 no salga por ninguna parte.

Gracias!
  #2 (permalink)  
Antiguo 06/08/2008, 20:47
 
Fecha de Ingreso: julio-2008
Ubicación: Santa Fe
Mensajes: 66
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: while defectuoso? no entiendo nada...

mira la verdad que no entiendo tu codigo por el nombre de variables que usaste, pero con mi experiencia en programacion cuando he tenido problemas conn while o for o alguna estructura de control pongo echos por todos lados para seguir la secuencia, es decir, a ver q sale:

Código PHP:
$h[1] = 0;
$h[2] = 119;
$h[3] = 119;
$h[4] = 119;
$h[5] = 119;
$h[6] = 119;
$h[7] = 119;


$ale_cad=0;

for(
$i=1$i<=5$i++) 
     {
      
$ale mt_rand(1,7);
      echo 
$ale;//--------------------------------------------
                
while ( $h[$ale] == )
                { 
                
$ale_cad $ale_cad.$ale;
                
$ale mt_rand(1,7);
                echo 
$ale;//--------------------------------------
                
echo $ale_cad;//---------------------------------
                
}
      
$bus substr_count($ale_cad$ale);
                while ( 
$bus != 
                {
                
$ale mt_rand(1,7);
                
$bus substr_count($ale_cad$ale);
                echo 
$ale;//--------------------------------------
                
echo $bus;//-------------------------------------
                

      
$ale_cad $ale_cad.$ale;
      echo 
$ale_cad;//-----------------------------------------
      
$h[$ale] = $h[$ale] - 1;
      echo 
$h[$ale];//-----------------------------------------
      
} ; 
Intenta ser mas ordenado con los codigos sino te confundes, sin darte cuenta, la idea de este codigo y aprovechando que perdiste 4horas de tu vida intentando ver q le pasa... revisa los valores que te arroje el codigo para ver donde estas errando, esta es una forma rapida y efectiva de encontrar el error. suerte!
  #3 (permalink)  
Antiguo 07/08/2008, 03:26
 
Fecha de Ingreso: agosto-2008
Mensajes: 4
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: while defectuoso? no entiendo nada...

No sé si he entendido bien el código, pero creo que el problema es el último
$ale_cad = $ale_cad.$ale;
En el segundo bucle vuelves a generar un aleatorio entre 1 y 7, lo almacenas en $ale, y cuando sales de ese bucle lo concatenas a $ale_cad, pero en $ale puedes tener un 1. Espero haberme explicado más o menos... :)
Un saludo
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 23:06.