/** * 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); } }