WALL-E #2

Comportemental

  Expert

Wall-E est un petit robot chargé de nettoyer la planète. Il fait face à un tas de déchets divers. Tu dois programmer son fonctionnement pour qu'il traite correctement les déchets. Mais attention à ne pas tomber en manque de batterie !

Mission

Le retour de Wall-E, le petit robot laissé seul sur Terre pour nettoyer toute la pagaille qu'on a laissé...

Il faut que tu l'aide à gérer tous les déchets ! Mais cette fois-ci ça se complique...


Règles

Voici les règles pour contrôler ce petit robot !

  • Wall-E se trouve désormais sur un quadrillage, dont la largeur et la hauteur sont indiqués par la donnée cote.
  • Wall-E démarre avec un niveau de batterie compris aléatoirement entre 80 et 100.
  • Wall-E démarre en bas à gauche, en position {1,1}.
  • Wall-E consomme 1% de batterie quand il se déplace d'1 case, à vide.
  • Wall-E consomme 2% de batterie quand il se déplace d'1 case, chargé d'1 déchet.
  • Wall-E ne porte jamais plus d'1 déchet.
  • Wall-E recherche le déchet le + proche de lui, va le chercher et le ramène à son point de départ.

La complexité se trouve dans la gestion de sa batterie. Si Wall-E est encore là aujourd'hui c'est justement parce qu'il est assez malin pour ne jamais tomber en panne... Du coup, quand il se trouve sur la case d'un déchet, il vérifie combien de batterie cela va lui couter de rentrer et d'aller chercher le déchet suivant. Si cette dépense de batterie le fait tomber sous son niveau de sécurité, alors il va aller se charger au chargeur le + proche de sa position avant de ramener le déchet.

Le niveau de sécurité est égal à 2 x cote (c'est à dire la distance la + longue qu'il peut parcourir en 1 fois.

Les autres données :

  • dechets : tableau de la position des déchets, sous la forme {x,y}.
  • chargeurs : tableau des 2 points de charge disponibles, sous la forme {x,y}.
  • Au point de charge, la batterie de Wall-E remonte à 100.

Tu dois retourner le niveau de batterie final de Wall-E, une fois qu'il a ramené le dernier déchet.


Précisions :

  • Tous les déchets se trouvent à des distances différentes du point de départ.
  • Les 2 chargeurs peuvent se trouver à la même distance d'un déchet, mais ça n'a pas d'importance.
  • Il n'y a donc pas de recherche d'un parcours optimal quelconque à effectuer, il faut "simplement" suivre les indications. Peut-être dans "Wall-E 3, le robot contre attaque"...

1 dev a réussi !

<?php
include('Game.php');

$maKey = ''; // Ta Key
$codeChallenge = 'WALL_E_2'; // Le code challenge

$game = new Game($maKey, $codeChallenge);

$data = $game->getDatasGame(); // Pour comprendre les données proposées par le challenge
echo '<pre>';
print_r($data);
echo '</pre>';	

// ---
// Code dédié au challenge
// ---

// Pour répondre au challenge, à décommenter une fois le challenge complété
// $reponse = ['reponse' => ...];
// $game->push($reponse);