Esempio n. 1
0
 public static function nextStep($arrPrevStep)
 {
     // GEGEVENS OPHALEN VAN DE GAME
     $game = GameDAO::getGameFromId($arrPrevStep[0]->gameid);
     $grootte = $game->grootte;
     $arrNextStep = array();
     $arrVerwijderd = array();
     $arrNewBorn = array();
     $arrPrevStep = gameService::sortArray($arrPrevStep);
     // IEDERE ORGANISME UIT DE ARRAY OVERLOPEN
     foreach ($arrPrevStep as $prevOrganisme) {
         if (!in_array($prevOrganisme, $arrVerwijderd)) {
             $prevOrganismeRechts = organismeservice::checkPositionInArray($prevOrganisme->kolom + 1, $prevOrganisme->rij, $arrPrevStep);
             /*
              * *********** ALS ER RECHTS NIETS STAAT **********
              */
             if ($prevOrganismeRechts == false && $prevOrganisme->soort > 1) {
                 // ALS HET ORGANISME TEGEN DE RAND STAAT
                 if ($prevOrganisme->kolom == $grootte) {
                     $nextOrganisme = new Organisme($prevOrganisme->id, $prevOrganisme->soort, $prevOrganisme->kracht, $prevOrganisme->kolom, $prevOrganisme->rij, $prevOrganisme->gameid);
                 }
                 // ALS HET ORGANISME NIET TEGEN DE RAND STAAT
                 if ($prevOrganisme->kolom < $grootte) {
                     // BEWEEG NAAR EEN ANDERE POSITIE
                     $movedOrganisme = gameService::moveRandom($prevOrganisme, $arrPrevStep, $arrNextStep, $grootte);
                     $nextOrganisme = new Organisme($prevOrganisme->id, $prevOrganisme->soort, $prevOrganisme->kracht, $movedOrganisme->kolom, $movedOrganisme->rij, $prevOrganisme->gameid);
                 }
             }
             /*
              * *********** ALS ER RECHTS WEL IETS STAAT **********
              */
             if ($prevOrganismeRechts != false && $prevOrganisme->soort > 1) {
                 // ALS HET ORGANISME 1 LVL STERKER IS DAN RECHTS
                 if ($prevOrganisme->soort == $prevOrganismeRechts->soort + 1) {
                     // OPETEN
                     array_push($arrVerwijderd, $prevOrganismeRechts);
                     $nextOrganisme = new Organisme($prevOrganisme->id, $prevOrganisme->soort, $prevOrganisme->kracht + 1, $prevOrganisme->kolom + 1, $prevOrganisme->rij, $prevOrganisme->gameid);
                 }
                 // ALS HET ORGANISME DEZELFDE STERKTE HEEFT ALS RECHTS
                 if ($prevOrganisme->soort == $prevOrganismeRechts->soort) {
                     // IS SOORT = 2
                     if ($prevOrganisme->soort == 2) {
                         // KIND MAKEN
                         array_push($arrNewBorn, new Organisme(0, 2, 1, 0, 0, $prevOrganisme->gameid));
                         $nextOrganisme = new Organisme($prevOrganisme->id, $prevOrganisme->soort, $prevOrganisme->kracht, $prevOrganisme->kolom, $prevOrganisme->rij, $prevOrganisme->gameid);
                     }
                     // IS SOORT = 3
                     if ($prevOrganisme->soort == 3) {
                         // VECHTEN
                         if ($prevOrganisme->kracht > $prevOrganismeRechts->kracht) {
                             // OPETEN
                             array_push($arrVerwijderd, $prevOrganismeRechts);
                             $nextOrganisme = new Organisme($prevOrganisme->id, $prevOrganisme->soort, $prevOrganisme->kracht + 1, $prevOrganisme->kolom + 1, $prevOrganisme->rij, $prevOrganisme->gameid);
                         }
                         if ($prevOrganisme->kracht = $prevOrganismeRechts->kracht) {
                             // BLIJVEN STAAN
                             $nextOrganisme = new Organisme($prevOrganisme->id, $prevOrganisme->soort, $prevOrganisme->kracht, $prevOrganisme->kolom, $prevOrganisme->rij, $prevOrganisme->gameid);
                         }
                     }
                 }
                 // ALS HET ORGANISME ZWAKKER IS DAN RECHTS OF MEER DAN 1 LVL STERKER IS DAN RECHTS
                 if ($prevOrganisme->soort < $prevOrganismeRechts->soort || $prevOrganisme->soort > $prevOrganismeRechts->soort + 1) {
                     // blijven staan
                     $nextOrganisme = new Organisme($prevOrganisme->id, $prevOrganisme->soort, $prevOrganisme->kracht, $prevOrganisme->kolom, $prevOrganisme->rij, $prevOrganisme->gameid);
                 }
             }
             /*
              * *********** ALS HET ORGANISME EEN PLANT IS ***********
              */
             if ($prevOrganisme->soort == 1) {
                 $nextOrganisme = new Organisme($prevOrganisme->id, $prevOrganisme->soort, $prevOrganisme->kracht, $prevOrganisme->kolom, $prevOrganisme->rij, $prevOrganisme->gameid);
             }
             if (count($arrNextStep) < $grootte * $grootte) {
                 array_push($arrNextStep, $nextOrganisme);
             }
         }
     }
     // ALLE NIEUWE ORGANISMEN TOEVOEGEN AAN ARRAY
     foreach ($arrNewBorn as $new) {
         if (count($arrNextStep) < $grootte * $grootte) {
             $arrNextStep = gameService::addToArray($new->soort, $arrNextStep, 1, $grootte, $new->gameid);
         }
     }
     // NIEUWE PLANTEN TOEVOEGEN AAN ARRAY
     if (count($arrNextStep) < $grootte * $grootte) {
         $arrNextStep = gameService::addToArray(1, $arrNextStep, rand(2, 3), $grootte, $game->id);
     }
     $_SESSION['verwijderd'] = $arrVerwijderd;
     return $arrNextStep;
 }