Visual illustration of the code challenge: Attaque des Titans

Attaque des Titans

Le caporal Levi doit affronter des Titans dans le district de Trost. Aide-le à venir à bout de tous les Titans !

Coding in the sandbox You must be logged in to access the sandbox.

Avant-propos : Si tu n’as jamais vu l’Attaque des Titans, voici une vidéo très courte qui te permettra de comprendre de quoi il est mention dans l’énoncé ci-dessous : https://www.youtube.com/watch?v=fHvqaBQhZhw&t=70 


Mission

Le caporal Levi doit affronter plusieurs Titans. Heureusement, il est entouré d’habitations et il va pouvoir utiliser son équipement tridimensionnel pour se déplacer et attaquer les titans avec ses épées.

Pour se déplacer, Levi consomme le gaz de son équipement tridimensionnel. Il y fait attention pour être sûr de ne pas se retrouver sans gaz lorsqu’il approche un Titan.

Levi va essayer de venir à bout de tous les Titans présents, mais selon son gaz, il ne pourra peut-être pas tous les éliminer…

Règles

Les Titans ont 3 caractéristiques :

  • Taille
  • Vitesse
  • PV (Points de Vie)

Les habitations ont 2 caractéristiques :

  • Hauteur
  • Distance

On considère que les Titans se trouvent sur la position « 0 » en permanence, et donc toujours à une distance fixe d’une habitation.


Levi respecte ces règles pour attaquer les Titans :

  • Il attaque les Titans dans l’ordre décroissant de leur taille, le + grand en premier donc.
  • Pour affronter un Titan, il va chercher à se positionner sur une habitation qui se trouve au-dessus du Titan, tout en étant le + proche possible. Par exemple, si un Titan a un une taille de 20 m, et qu’il y a 2 habitations de 21 m et 23 m. Levi ira sur celle de 21 m. Peu importe la distance.
  • S’il n’y a pas d’habitation + haute que la taille du Titan, il va sur l’habitation la + haute possible.
  • Quand il affronte un Titan, il fait des allers-retours entre l’habitation et le Titan, mais ne change pas d’habitation.
  • Quand un Titan meurt, il choisit alors le nouveau Titan à affronter et peut donc changer d’habitation à ce moment-là.

Pour réussir le challenge, Il faut compter les coups portés par Levi : (et retourner le total)

  • 1 coup d’épée = 1 pt (même si c’est le coup fatal).
  • 1 titan abattu = 100 pts

S’il faut 3 coups pour tuer un Titan, Levi engrange 103pts.

Voici les formules qui permettent de calculer la puissance des coups de Levi, et le gaz consommé à chaque fois :

Si Levi se trouve au-dessus du Titan :

  • Puissance = (hauteur de l’Habitation – taille du Titan) * 10 + distance de l’Habitation * 2 – vitesse du Titan.
  • Gaz consommé = (hauteur de l’Habitation – taille du Titan + distance de l’Habitation)

Si Levi se trouve en dessous du Titan :

  • Puissance = Abs(hauteur de l’Habitation – taille du Titan) * 5 + distance de l’Habitation * 2 – vitesse du Titan.
  • Gaz consommé = Abs(hauteur de l’Habitation – taille du Titan + distance de l’Habitation)

Abs représente la fonction « Valeur Absolue ».


Derniers éléments :

  • La puissance correspond au nombre de PV que perdra le Titan à chaque coup. Le Titan meurt lorsque ses PV tombent à zéro (ou moins).
  • 2 Titans n’ont jamais la même taille.
  • 2 Habitations n’ont jamais la même hauteur.
  • Pour monter sur une Habitation, Levi consomme en Gaz l’équivalent de la hauteur de l’Habitation
  • Si Levi change d’Habitation, il consomme en Gaz l’équivalent de la différence de hauteur entre les 2 Habitations. Pour passer d’une Habitation de 27 m à une Habitation de 20 m, Levi consomme 7 de Gaz.
  • Jetez un œil aux jeux de données pour être sûr de bien tout comprendre

Solve the challenge

To code this challenge, several possibilities:
- Want to start coding right away? Use the online Sandbox.
- Want to work in your favorite editor? Organize your code well, test, check out our API documentation.
- You can also copy/paste a dataset below.

challenge code for resolution via API: ATTACK_OF_TITANS

Some resources to help you:
Data and algorithmic logic Methodologies Corrections

Support for resolution

Progress through challenges using our resolution aids: tools, techniques and advice to help you overcome the most complex programming challenges with methodology, confidence and creativity.

Dataset and algorithmic logic

Based on the data and the expected response, use the process to determine the logic to implement.

Show data and progress

Methodologies

Develop a structured approach with our solving guides. Work on specific concepts such as object-oriented programming or unit testing to improve your coding style and progress.

No methodology yet for this challenge, but we are working on it! Follow us to be informed of the release!


Corrections

The corrections allow you to discover certain technical concepts but will also give you a solution to the challenge. Code the challenge yourself before consulting the corrections ;)

Programming concept(s) that can be used to solve this challenge: Conditions, Programmation Orientée Objet, Tableaux, Fonctions

Keep coding

Other challenges to complete

Intermediate
One Piece #1

One Piece #1

Guide Luffy à Marineford, choisis tes alliés intelligemment, triomphe des Marines pour sauver Ace. Un défi épique One Piece !

Behavioral Proposed methodology
Beginner
Le Grinch

Le Grinch

La nuit du réveillon est une période joyeuse, mais le Grinch a d’autres plans en tête !

Behavioral
Advance
L’araignée sur sa toile

L’araignée sur sa toile

Une araignée sur une toile, des mouches attrapées, guide cette gentille petite créature dans la préparation de son repas.

Behavioral