Foros del Web » Programando para Internet » PHP »

Resultados no esperados del rand()

Estas en el tema de Resultados no esperados del rand() en el foro de PHP en Foros del Web. Hola bueno estoy usando rand() de la siguiente manera, $blanco= imagecolorallocate ($im, 255, 255, 255); $verde =imagecolorallocate ($im, 55, 212, 90); $color=rand($blanco,$verde); con el fin ...
  #1 (permalink)  
Antiguo 25/12/2009, 11:52
Avatar de chulifo  
Fecha de Ingreso: abril-2009
Ubicación: perdido en codigos del PHP, pero aprendo rapido!
Mensajes: 524
Antigüedad: 15 años
Puntos: 18
Resultados no esperados del rand()

Hola bueno estoy usando rand() de la siguiente manera,

$blanco= imagecolorallocate ($im, 255, 255, 255);
$verde =imagecolorallocate ($im, 55, 212, 90);
$color=rand($blanco,$verde);

con el fin (creo que deveria de ser asi) de devolverme la variable $blanco o $verde pero no, cuando genera la imagen me doy cuenta de que mescla los colores no estoy diatónico, me da unos colores como, morado, gris, rojos un monton de colores y de verdad ni idea de por que hace eso.

aqui les dejo una imagen.


claro que viéndolo bien me gusta pero no es lo que quiero!
  #2 (permalink)  
Antiguo 25/12/2009, 13:47
 
Fecha de Ingreso: diciembre-2009
Mensajes: 438
Antigüedad: 14 años, 4 meses
Puntos: 16
Respuesta: Resultados no esperados del rand()

Buenas.

Creo que con la función rand() te va a devolver un valor entre el que esté en la variable $blanco y $verde, pero no tiene porque devolverte uno u otro. Creo que ahí puede estar el problema.

Te dejo un enlace al manual de PHP para que veas qué es lo que devuelve la función imagecolorallocate ().

[URL="http://php.net/manual/en/function.imagecolorallocate.php"]http://php.net/manual/en/function.imagecolorallocate.php[/URL]

Si solo quieres uno de los dos valores yo usaría la función rand para que solo te devolviera 1 o 2. Entonces si te devuelve uno muestras el blanco y si te devuelve el 2 muestras el verde.

Última edición por Osdiwe; 25/12/2009 a las 13:49 Razón: Me dejé el enlace
  #3 (permalink)  
Antiguo 25/12/2009, 15:22
Avatar de chulifo  
Fecha de Ingreso: abril-2009
Ubicación: perdido en codigos del PHP, pero aprendo rapido!
Mensajes: 524
Antigüedad: 15 años
Puntos: 18
Respuesta: Resultados no esperados del rand()

se como funciona imagecolorallocate(), lo que creo es que el rand() me esta mezclando los numeros que hay en las variables
  #4 (permalink)  
Antiguo 26/12/2009, 03:35
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Respuesta: Resultados no esperados del rand()

Lo que no sabes es cómo funciona la función rand(). Checa su documentación y luego re-lee lo que te sugirieron.
www.php.net/rand

Y añado otra posibilidad, añade los valores que vayas a utilizar en un array y con rand() puedes obtener alguno de esos simplemente recuperando un número entre 0 y el tamaño de dicho arreglo; en tu caso 1, pues solo manejarás dos contenidos.

Ve también los ejemplos y comentarios de la documentación. Sin verlo, apuesto algo así ya está planteado.

Un saludo
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 26/12/2009, 10:35
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Respuesta: Resultados no esperados del rand()

Tal cual te dijo jam1138,

la funcion rand funciona arrojando un numero aleatorio entre un rango determinado

Código PHP:
rand(100,1000); // numero entre ese rango. 
lo que puedes hacer sería:

Código PHP:
$rand rand(0,1);

$val = array("55, 212, 90","255,255,255");
$color imagecolorallocate ($im$val[$rand]); 
no lo he probado pero la idea es esa.
Cualquier cosa nos comentás

Saludos.
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 15:37.