Ejemplo n.º 1
0
 public static function movePlayer($tigerId, $goatId, $player, $move)
 {
     $game = GamePlay::where('tiger_user_id', $tigerId)->where('goat_user_id', $goatId)->first();
     $tigerPosition = json_decode($game['tiger_position'], true);
     $goatPosition = json_decode($game['game_position'], true);
     switch ($player) {
         case 'Goat':
             $goatPosition[] = $move->x . ',' . $move->y;
             $goat = false;
             $tiger = true;
             $nextMove = "tiger";
             break;
         case 'Tiger':
             $tigerPosition[] = $move->x . ',' . $move->y;
             $goat = true;
             $tiger = false;
             $nextMove = "goat";
             break;
     }
     $allActivePosition = (new Initiate())->insertAnimal($tigerPosition, new Tiger())->insertAnimal($goatPosition, new Goat())->setNextMove($tiger, $goat);
     $moves = (new Moves($allActivePosition))->generateAllowedMoves();
     $data = GamePlay::firstOrNew(['tiger_user_id' => $tigerId, 'goat_user_id' => $goatId]);
     $data->tiger_user_id = $tigerId;
     $data->goat_user_id = $goatId;
     $data->tiger_position = json_encode($tigerPosition);
     $data->goat_position = json_encode($goatPosition);
     $data->next_move = $nextMove;
     $data->save();
     return array_merge($allActivePosition->getLayout(), $moves);
 }
Ejemplo n.º 2
0
 public function start(Request $request)
 {
     $tigerUserId = $request->input('tiger');
     $goatUserId = $request->input('goat');
     $initialTigerPosition = ['0,4', '0,0', '4,0', '4,4'];
     $initialGoatPosition = [];
     $allActivePosition = (new Initiate())->insertAnimal($initialTigerPosition, new Tiger())->insertAnimal($initialGoatPosition, new Goat())->setNextMove(false, true);
     $moves = (new Moves($allActivePosition))->generateAllowedMoves();
     $data = GamePlay::firstOrNew(['tiger_user_id' => $tigerUserId, 'goat_user_id' => $goatUserId]);
     $data->tiger_user_id = $tigerUserId;
     $data->goat_user_id = $goatUserId;
     $data->tiger_position = json_encode($initialTigerPosition);
     $data->goat_position = json_encode($initialGoatPosition);
     $data->next_move = 'goat';
     $data->save();
     Event::fire(new GameStarted($tigerUserId, $goatUserId, array_merge($allActivePosition->getLayout(), $moves)));
     //        return Response::json(array_merge($allActivePosition->getLayout(), $moves));
 }