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 !
Wall-E est tout seul sur Terre pour nettoyer toute la pagaille qu’on a laissé…
Il faut que tu l’aide à gérer tous les déchets !
Voici les règles pour controler ce petit robot !
Wall-E démarre avec les caractéristiques suivantes :
Une force qui permet de déterminer comment il porte les déchets (un entier entre 10 et 20).
Une vitesse qui permet de savoir s’il déplace rapidement (un entier entre 5 et 15).
Un niveau de batterie, qui va évoluer dans le temps (au départ un entier entre 70 et 100).
Wall-E doit traiter chaque déchet présents dans la liste. Chaque valeur de la liste représente le poids du déchet à traiter.
Règles
Et voici les règles pour traiter les déchets.
Chaque traitement de déchet va coûter de la batterie.
Si la force de Wall-E est supérieure ou égale au poids du déchet, Wall-E le traite sans soucis. Cela ne lui coute que 1% de batterie.
Si Wall-E n’a pas assez de force, il peut puiser dans sa batterie pour augmenter sa force initiale (seulement pour le déchet en cours de traitement) :
1 pt de force supplémentaire coute 2% de batterie.
Wall-E ne peut pas dépenser + de la moitié de sa batterie courante pour augmenter sa force.
S’il manque 4pt de force à Wall-E, il dépensera donc 8% de batterie pour traiter le déchet (s’il a assez de batterie)
Si malgré la batterie, il n’a pas assez de force pour traiter le déchet, Wall-E perd 2% de batterie et ne traite pas le déchet. Il ne sera plus jamais traité.
Si la batterie de Wall-E passe sous les 20%, il doit aller se recharger. Cela lui coute autant de batterie qu’il a de vitesse. Si sa vitesse est de 8, il utilise 8% de batterie pour aller se recharger. Il se recharge à 100% et utilise à nouveau de la batterie pour revenir, le même montant. Dans l’exemple, il revient avec 92% de batterie (100 – 8). Mais si la vitesse de Wall-E est supérieure à la batterie restante, alors il tombe en panne et le petit robot s’arrête.
Tu dois renvoyer le niveau de batterie final de Wall-E. Ou alors « KO » si Wall-E a puisé la totalité de sa batterie.
Le niveau de batterie final ne peut pas être inférieur à 20, il sera forcément allé se recharger avant.
Par défaut on le cache parce que ça peut prendre de la place. Tu n'es pas obligé de regarder le déroulé, qui peut te donner trop d'indices sur la résolution du challenge...
Quelques indications et indices sur la résolution du challenge.
Le Robot traite le déchet 0 qui pèse 31 pour 28% de batterie, il lui reste 65% de batterie. Le Robot traite le déchet 1 qui pèse 6 pour 1% de batterie, il lui reste 64% de batterie. Le Robot traite le déchet 2 qui pèse 15 pour 1% de batterie, il lui reste 63% de batterie. Le Robot traite le déchet 3 qui pèse 14 pour 1% de batterie, il lui reste 62% de batterie. Le Robot traite le déchet 4 qui pèse 15 pour 1% de batterie, il lui reste 61% de batterie. Il lui reste 61% de batterie
Bon à savoir
Les données changent à chaque affichage de la page.
Cet échantillon de données te permet de tester le challenge.
Une fois connecté, tu auras à disposition des jeux de données + complets.
Corrigé(s) du challenge
Ne va pas trop vite
Les corrigés te permettent de découvrir certains concepts techniques mais vont aussi te donner une solution au challenge. Code le challenge par toi même avant de consulter les corrigés ;)
PHP
Tests unitaires en PHP #3 : TDD avec PHPUnit et des dataprovider
On résout un challenge en TDD, pas à pas, avec PHPUnit et des dataprovider.
PHP
Refactoring de code PHP en appliquant un principe de SOLID
Le S de SOLID implique que chaque classe ait un seul rôle. On se base sur ce principe pour refacto du code.