コード例 #1
0
ファイル: Partido.php プロジェクト: rMarinf/JugadorNum12
 private function generaEstadoDescanso()
 {
     //Generamos estado tras el descanso
     $params = array('difNiv' => (double) $this->dif_niveles, 'aforoMax' => (double) 0, 'aforoLoc' => (double) $this->aforo_local, 'aforoVis' => (double) $this->aforo_visitante, 'moralLoc' => (double) $this->moral_local, 'moralVis' => (double) $this->moral_visitante, 'ofensLoc' => (double) $this->ofensivo_local, 'ofensVis' => (double) $this->ofensivo_visitante, 'defensLoc' => (double) $this->defensivo_local, 'defensVis' => (double) $this->defensivo_visitante, 'estado' => null);
     $this->estado = Formula::siguienteEstado($params);
     //Aumentamos el turno
     $this->turno++;
 }
コード例 #2
0
 /**
  * Simulador de la formula estadistica
  *
  * Crea una vista en la que se muestra el simulador de un partido
  *
  * @param int $dn   diferencia de nivel
  * @param int $am   aforo maximo
  * @param int $al   aforo local
  * @param int $av   aforo visitante
  * @param int $ml   moral local
  * @param int $mv   moral visitinate
  * @param int $ol   ofensiva local
  * @param int $ov   ofensiva visitante
  * @param int $dl   defensa local
  * @param int $dv   defensa visitante
  *
  * @route JugadorNum12/scripts/formula
  * @return void
  */
 public function actionFormula($dn = 0, $am = 0, $al = 0, $av = 0, $ml = 0, $mv = 0, $ol = 0, $ov = 0, $dl = 0, $dv = 0)
 {
     // Creamos el array de parámetros a partir de los datos GET
     $params = array('difNiv' => (double) $dn, 'aforoMax' => (double) $am, 'aforoLoc' => (double) $al, 'aforoVis' => (double) $av, 'moralLoc' => (double) $ml, 'moralVis' => (double) $mv, 'ofensLoc' => (double) $ol, 'ofensVis' => (double) $ov, 'defensLoc' => (double) $dl, 'defensVis' => (double) $dv);
     // Obtenemos los pesos y las probabilidades de todos los estados
     for ($i = -10; $i <= 9; $i++) {
         $params['estado'] = $i == -10 ? null : $i;
         $pesos[$params['estado']] = Formula::pesos($params);
         $probs[$params['estado']] = Formula::probabilidades($params);
     }
     // Calculamos los colores para la tabla
     foreach ($probs as $i => $v) {
         $max = max($v);
         foreach ($v as $ii => $vv) {
             $r = 255;
             $g = 255 - (int) round($vv * 255);
             $b = 255 - (int) round($vv / $max * 255);
             $colors[$i][$ii] = "rgb({$r},{$g},{$b})";
         }
     }
     // Simulamos un partido con todos los estados iniciales
     for ($i = -9; $i <= 9; $i++) {
         $estados[$i] = array($i);
         $params['estado'] = $i;
         for ($t = 0; $t < 12; $t++) {
             $estSig = Formula::siguienteEstado($params);
             $params['estado'] = $estSig;
             $estados[$i][] = $estSig;
         }
     }
     foreach ($estados as $i => $v) {
         foreach ($v as $ii => $vv) {
             if ($vv < 0) {
                 $nc = (int) (255 * (1 + $vv / 10));
                 $c = "rgb(255,{$nc},{$nc})";
             } else {
                 if ($vv > 0) {
                     $nc = (int) (255 * (1 - $vv / 10));
                     $c = "rgb({$nc},{$nc},255)";
                 } else {
                     $c = 'white';
                 }
             }
             $estColors[$i][$ii] = $c;
         }
     }
     // Dibujamos la vista
     unset($params['estado']);
     $this->layout = "main";
     $this->render('formula', array('probs' => $probs, 'pesos' => $pesos, 'colors' => $colors, 'params' => $params, 'estados' => $estados, 'estColors' => $estColors));
 }