Foros del Web » Programando para Internet » PHP »

No repetir número

Estas en el tema de No repetir número en el foro de PHP en Foros del Web. Hola, Tengo que imprimir 40 cartas (imágenes) aleatoriamente y no repetir ninguna. Me sale todo, excepto lo de NO repetir. Creo que el problema lo ...
  #1 (permalink)  
Antiguo 12/12/2011, 06:37
 
Fecha de Ingreso: octubre-2011
Mensajes: 36
Antigüedad: 12 años, 7 meses
Puntos: 2
Exclamación No repetir número

Hola,

Tengo que imprimir 40 cartas (imágenes) aleatoriamente y no repetir ninguna. Me sale todo, excepto lo de NO repetir. Creo que el problema lo tengo con el init_array ¿Qué estoy haciendo mal?

Gracias por adelantado.


Este es mi código:

Código PHP:

$NUMCARDS 
40;

// FUNCIONES

    
function init_array($vector,$valor) {
        
$not_used[$vector] = $valor;
    }
    
    function 
card_draw() {
        return(
rand(0,39));
    }
    
    function 
put_row($s) {
        echo 
'<img src="'$s .'.jpg">' ;
    }
    

    
$i=0;
    
$u=1;
    while (
$i<$NUMCARDS) {
                
        
init_array($i,true);
        
    if (
$not_used[$i]=true) {
    
$carta_ale card_draw($not_used[$i]);
    
init_array($i,false);
    echo 
$carta_ale;
    }
    
    
$cards[$i]=$carta_ale;
        if (
$u%!= 0) {
            echo 
put_row($cards[$i]);
        } else {
             echo 
'<br>' put_row($cards[$i]);
        }        

    
$i++;
    
$u++;

    } 
  #2 (permalink)  
Antiguo 12/12/2011, 06:42
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: No repetir número

bueno se ven bastantes errores..
de ámbito de variables.. usas fuera una variable local de la función init_array
también la comparación te recuerdo que es con doble == ... cuando usas uno estas "Asignando"

saludos.
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 12/12/2011, 06:54
 
Fecha de Ingreso: octubre-2011
Mensajes: 36
Antigüedad: 12 años, 7 meses
Puntos: 2
Respuesta: No repetir número

Hola Hidek1,

Si pongo doble == me dá error.

¿Dónde está exactamente el error en función init_array?

Gracias!
  #4 (permalink)  
Antiguo 12/12/2011, 09:01
 
Fecha de Ingreso: diciembre-2011
Mensajes: 4
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: No repetir número

$numbers = range(1, 40);
shuffle($numbers);
foreach ($numbers as $number) {
echo "$number ";
}
  #5 (permalink)  
Antiguo 13/12/2011, 08:09
 
Fecha de Ingreso: octubre-2011
Mensajes: 36
Antigüedad: 12 años, 7 meses
Puntos: 2
Respuesta: No repetir número

Gracias, pero no puedo implementarlo en mi código, pues eso dá toda una cadena de números no repetidos, y en mi código eso lo tiene que verificar uno a uno.

¿Alguna otra idea por favor?

Etiquetas: repetir
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 03:54.