Foros del Web » Programando para Internet » PHP »

Condicion segun posibilidades

Estas en el tema de Condicion segun posibilidades en el foro de PHP en Foros del Web. Buenas, estoy haciendo un simulador de futbol pero me falta un pequeño detalle. Supongamos que tenemos 2 jugadores, y solo uno tiene la pelota. Uno ...
  #1 (permalink)  
Antiguo 29/12/2009, 06:38
 
Fecha de Ingreso: septiembre-2007
Mensajes: 189
Antigüedad: 16 años, 7 meses
Puntos: 1
Condicion segun posibilidades

Buenas, estoy haciendo un simulador de futbol pero me falta un pequeño detalle.

Supongamos que tenemos 2 jugadores, y solo uno tiene la pelota. Uno tiene la calidad de 70 y el otro de 15. EL que tiene la pelota es de 70. Entonces he calculado que el jugar que tiene la pelota tiene 79% de posibilidades de pasar con el balon.
Código PHP:
<?php
$j1 
"70";
$j2 "15";
echo (
100 intval(($j2 $j1) * 100));  /me muestra 79
?>
Pero me falta una funcion que me devuelva mas veces true si el procentaje es mas grande. Existe algo asi?
Gracias y un saludo!
  #2 (permalink)  
Antiguo 29/12/2009, 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: Condicion segun posibilidades

return (100 - intval(($j2 / $j1) * 100)) >= 50

asi devolvera true si es mayor a 50 y false si no
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 29/12/2009, 06:55
 
Fecha de Ingreso: septiembre-2007
Mensajes: 189
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Condicion segun posibilidades

ya pero yo no quiero hacer algo tan matematico. Porque aunque haya un 80% de posibilidades tambien queda el otro 20% para que no pase.
Un saludo!
  #4 (permalink)  
Antiguo 29/12/2009, 07:01
 
Fecha de Ingreso: diciembre-2009
Mensajes: 438
Antigüedad: 14 años, 4 meses
Puntos: 16
Respuesta: Condicion segun posibilidades

Puedes ir guardando las veces que pasa y las que no. Después cada vez que intenta pasar compruebas el porcentaje de veces que ha pasado sobre el total y si es menor que el 80% pues vuelve a pasar, pero si es mayor que 80% entonces no pasa, para así, a medida que pase el tiempo se irá equilibrando las veces que pasa y las que no con los porcentajes que tienen asignados.

Espero que se entienda la explicación, sino dímelo e intento pasarlo un poco a código.
  #5 (permalink)  
Antiguo 29/12/2009, 07:01
Avatar de TKZeXe  
Fecha de Ingreso: diciembre-2009
Ubicación: Flowers
Mensajes: 166
Antigüedad: 14 años, 3 meses
Puntos: 6
Respuesta: Condicion segun posibilidades

Cita:
Iniciado por magTpeak Ver Mensaje
ya pero yo no quiero hacer algo tan matematico. Porque aunque haya un 80% de posibilidades tambien queda el otro 20% para que no pase.
Un saludo!
entonces no uses operaciones de probabilidades :).

si no es "tan" matematico utiliza rand y nada mas.

que cosas..
saluds
  #6 (permalink)  
Antiguo 29/12/2009, 07:39
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Condicion segun posibilidades

mira.. estuve un rato pegado con lo q dijiste y no se me ocurrió otra forma.. esta función la probé y me pase un buen rato haciéndola así q me merezco mi premio *o* xD!...

Código PHP:
Ver original
  1. $a = 3;
  2. $b = 1;
  3. function prob($a,$b){
  4.     $r=rand(1,$a+$b);
  5.     for($x=1;$x<=$a+$b;$x++){($a>=$x)?$c[]=$x:$d[]=$x;}
  6.     foreach(array($c,$d)as$k=>$v)if(in_array($r,$v))return($k==0)?"Jugador1":"Jugador2";
  7. }
  8. echo prob($a,$b);

saludos ojala te sirva!
__________________
More about me...
~ @rhyudek1
~ Github
  #7 (permalink)  
Antiguo 29/12/2009, 08:42
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Condicion segun posibilidades

mmm la optimice .. habían puros pasos innecesarios al parecer XD!.. me tome un café y se me encendió la ampolleta :B

Código PHP:
Ver original
  1. $a = 70;
  2. $b = 30;
  3. function prob($a,$b){return(rand(1,$a+$b)<=$a)?"Jugador1":"Jugador2";}
  4. echo prob($a,$b);
__________________
More about me...
~ @rhyudek1
~ Github

Última edición por Hidek1; 29/12/2009 a las 09:16
  #8 (permalink)  
Antiguo 29/12/2009, 09:50
 
Fecha de Ingreso: septiembre-2007
Mensajes: 189
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Condicion segun posibilidades

Gracias a todos por vuestro esfuerzo, pero mientras estaba en el autobus se me ha ocurrido de otra forma; por ejemplo si hay un 80 por ciento de posibilidades, hacer un array con 100 elemento y 80 que tengan el valor 1 y otras 20 el valor 0. Despues con la funcion array_rand sacar un valor aleatorio.
Un saludo

Código PHP:
function prob($p) {
for(
$i=1;$i<=100;$i++) $pos[$i] = ($p<$i) ? 1;
return 
$pos[array_rand($pos)];


Última edición por magTpeak; 29/12/2009 a las 10:04
  #9 (permalink)  
Antiguo 29/12/2009, 09:54
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Condicion segun posibilidades

xD... la primera funcion que puse hacia algo muy parecido a eso...
y después me di cuenta que era mas simple con la segunda q puse y te ahorras 2 bucles :B

saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #10 (permalink)  
Antiguo 29/12/2009, 11:40
 
Fecha de Ingreso: septiembre-2007
Mensajes: 189
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Condicion segun posibilidades

Gracias amigos jeje este foro esta lleno de grandes programadores :D
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 21:10.