[SOLUCIONADO] Consulta con php y comando shuffle

Iniciado por jasbsam, Noviembre 16, 2011, 09:36:31 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Noviembre 16, 2011, 09:36:31 PM Ultima modificación: Marzo 27, 2014, 05:51:25 PM por Expermicid
Buenas tardes tengo una consulta con php, ahorita estoy recibiendo unas tutorias, pero uno de los proyectos que me dejaron es utilizar el comando shuffle y asi hacer un juego tipo tragamonedas donde aparecen cuatro imagenes, si salen cuatro iguales premio mayor, tres iguales segundo premio, etc. etc. la consulta es como puedo tomar ese valor y compararlo para que al salir las cuatro iguales me de el mensaje de premio mayor, lo que tengo son cuatro arreglos pero no puedo hacer la condicion para verificar el estardo, dejo el codigo aqui para ver si me podes ayudar.

Código: php
<?php
$img = array ();
$img [1] = "A";
$img [2] = "B";
$img [3] = "C";
$img [4] = "D";
$img1 = array ();
$img1 [1] = "A";
$img1 [2] = "B";
$img1 [3] = "C";
$img1 [4] = "D";
$img2 = array ();
$img2 [1] = "A";
$img2 [2] = "B";
$img2 [3] = "C";
$img2 [4] = "D";
$img3 = array ();
$img3 [1] = "A";
$img3 [2] = "B";
$img3 [3] = "C";
$img3 [4] = "D";

shuffle ($img);
shuffle ($img1);
shuffle ($img2);
shuffle ($img3);
for ($i = 0; $i < 2; $i++){
   echo $shuff = ($img[$i]."&nbsp;");
}
for ($i1 = 0; $i1 < 2; $i1++){
   echo $shuff1 = ($img1[$i1]."&nbsp;");
}
/*for ($i2 = 0; $i2 < 1; $i2++){
   echo $shuff2 = ($img2[$i2]."&nbsp;");
}
for ($i3 = 0; $i3 < 1; $i3++){
   echo $shuff3 = ($img3[$i3]."&nbsp;");
}*/
   
$premio = 'Hola este es solo de prueba';
switch ($img[$i]) {
   case ($shuff==$shuff1):
   echo '<br>Premio de Consuelo '.$premio;
   break;
   case ($shuff==$shuff1 && $shuff==$shuff1):
      echo '<br>Tercer Lugar '.$premio;
   break;
   case ($shuff==$shuff1 && $shuff==$shuff1 && $shuff==$shuff1 && $shuff==$shuff1):
      echo '<br>Segundo Lugar '.$premio;
   break;
   case ($shuff==$shuff1 && $shuff==$shuff1 && $shuff==$shuff1 && $shuff==$shuff1):
      echo '<br>Felicidades Gano el Premio Mayor '.$premio;
   break;
   default:
      echo '<br>Intenta de Nuevo ';
}
?>


Spectrus: Cuando vayas a postear un código utiliza la étiqueta
Código: text
, queda mucho más estético y entendible.[/b]

Solo porque tenía tiempo:

Vista previa:


Código: php

<?php
/*
* Nombre: Tragamonedas v1
* Programado por: Xt3mP
* Contacto: [email protected] && [email protected]
*/
//Declaramos los valores del tragamonedas
$img = array ("A", "B", "C", "D");

//Declaramos en 0 las repeticiones
$a = 0;
$b = 0;
$c = 0;
$d = 0;

//Copiamos los valores para cada slot
$img1 = $img;
$img2 = $img;
$img3 = $img;
$img4 = $img;

//Ordenamos aleatoriamente
shuffle($img1);
shuffle($img2);
shuffle($img3);
shuffle($img4);

//Obtenemos los valores del tragamonedas aleatorios y los guardamos en el nuevo array
$img_final = array($img1[0], $img2[0], $img3[0], $img4[0]);

//Recorremos el array de los valores del tragamonedas
foreach($img as $id => $val)
{
if($img_final[$id] == $img[0]){ echo $img[0]; $a++; //Aumentamos si es A en este caso
}elseif($img_final[$id] == $img[1]){ echo $img[1]; $b++; //Aumentamos si es B en este caso
}elseif($img_final[$id] == $img[2]){ echo $img[2]; $c++; //Aumentamos si es C en este caso
}elseif($img_final[$id] == $img[3]){ echo $img[3]; $d++; //Aumentamos si es D en este caso
}
}

//Creamos un nuevo array con la cantidad de repeticiones para cada letra
$final = array($a, $b, $c, $d);

//Obtenemos premio
if(in_array(4, $final)) $premio = 'Cuarto mayor';
elseif(in_array(3, $final)) $premio = 'Tercer premio';
elseif(in_array(2, $final)) $premio = 'Segundo premio';
elseif(in_array(1, $final)) $premio = 'Primer premio';

//Mostramos resultado
echo '<br />Tu resultado es el siguiente:<hr />';
for($i = 0; $i<count($img); $i++)
{
echo $img[$i].' = '.$final[$i].'<br />';
}
echo '<hr />Tu premio es: '.$premio;
?>


El único defecto es que en las comparaciones primeras debes poner manualmente 0, 1, 2 y 3 ya que me dio pereza seguir intentando que dependiendo de las "imagenes" en el array $img automáticamente se agregen, así que si quieres agregar otro slot mas que de 4 deberás hacerlo manualmente :).

Saludos.
Cada vez que me das Karma me motivas

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Solo porque tenía tiempo:

Vista previa:


Código: php

<?php
/*
* Nombre: Tragamonedas v1
* Programado por: Xt3mP
* Contacto: [email protected] && [email protected]
*/
//Declaramos los valores del tragamonedas
$img = array ("A", "B", "C", "D");

//Declaramos en 0 las repeticiones
$a = 0;
$b = 0;
$c = 0;
$d = 0;

//Copiamos los valores para cada slot
$img1 = $img;
$img2 = $img;
$img3 = $img;
$img4 = $img;

//Ordenamos aleatoriamente
shuffle($img1);
shuffle($img2);
shuffle($img3);
shuffle($img4);

//Obtenemos los valores del tragamonedas aleatorios y los guardamos en el nuevo array
$img_final = array($img1[0], $img2[0], $img3[0], $img4[0]);

//Recorremos el array de los valores del tragamonedas
foreach($img as $id => $val)
{
if($img_final[$id] == $img[0]){ echo $img[0]; $a++; //Aumentamos si es A en este caso
}elseif($img_final[$id] == $img[1]){ echo $img[1]; $b++; //Aumentamos si es B en este caso
}elseif($img_final[$id] == $img[2]){ echo $img[2]; $c++; //Aumentamos si es C en este caso
}elseif($img_final[$id] == $img[3]){ echo $img[3]; $d++; //Aumentamos si es D en este caso
}
}

//Creamos un nuevo array con la cantidad de repeticiones para cada letra
$final = array($a, $b, $c, $d);

//Obtenemos premio
if(in_array(4, $final)) $premio = 'Cuarto mayor';
elseif(in_array(3, $final)) $premio = 'Tercer premio';
elseif(in_array(2, $final)) $premio = 'Segundo premio';
elseif(in_array(1, $final)) $premio = 'Primer premio';

//Mostramos resultado
echo '<br />Tu resultado es el siguiente:<hr />';
for($i = 0; $i<count($img); $i++)
{
echo $img[$i].' = '.$final[$i].'<br />';
}
echo '<hr />Tu premio es: '.$premio;
?>


El único defecto es que en las comparaciones primeras debes poner manualmente 0, 1, 2 y 3 ya que me dio pereza seguir intentando que dependiendo de las "imagenes" en el array $img automáticamente se agregen, así que si quieres agregar otro slot mas que de 4 deberás hacerlo manualmente :).

Saludos.

muchas gracias por la ayuda...
bien dicen por alli que el que no pregunta nunca sale de la ignorancia...

tambien no habia podido entrar desde el viernes me daba un erro 500 internal server....

No te preocupes, espero te haya servido el PoC (Proof of concept) que te dí :).
Cada vez que me das Karma me motivas