Example #1
0
 /**
  * Distributes the beans among the players.
  *
  * @param Partida $partida
  * @param array $jugadores
  * @param ObjectManager $em
  */
 public function distributeBeans($partida, $jugadores, $em)
 {
     $partidaLogic = new PartidaLogic();
     $data = $partidaLogic->calculateBeans($partida, count($jugadores));
     //array con alubias rojas y blancas
     $alubiasArray = array();
     for ($i = 1; $i <= $data['total']; $i++) {
         $letra = null;
         if ($i <= $data['aluBlanca']) {
             $letra = 'B';
         } else {
             $letra = 'R';
         }
         array_push($alubiasArray, $letra);
     }
     shuffle($alubiasArray);
     //dividimos el array en montones de "alubias por usuario" alubias
     $alubiasArray = array_chunk($alubiasArray, $partida->getAluPorUsuario());
     for ($i = 0; $i < count($jugadores); $i++) {
         $rojas = count(array_keys($alubiasArray[$i], 'R'));
         $blancas = count(array_keys($alubiasArray[$i], 'B'));
         $fUtilidad = $partidaLogic->calculateFUtilidad($rojas, $blancas, $partida);
         // Asignar a cada jugador sus alubias y funciĆ³n de utilidad
         $em->getRepository('BaseBundle:UserPartida')->distributeBeans($jugadores[$i]->getIdUser(), $partida->getId(), $rojas, $blancas, $fUtilidad);
     }
 }