Advertisement
MonsterScripter

CodinGame_2023_08_26__13_24_26__thor.cpp

Aug 26th, 2023
1,404
1
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.46 KB | None | 1 0
  1. /**
  2.  * Objectif
  3.  * Votre programme doit permettre à Thor de rejoindre l'éclair de puissance.
  4.  * Règles
  5.  * Thor évolue sur une carte de 40 cases de large et 18 cases de hauteur. Notez que les coordonnées (X et Y) commencent en partant du haut ! Ainsi la case la plus en haut à gauche a pour coordonnées "X=0,Y=0" et celle située le plus en bas à droite a pour coordonnées "X=39,Y=17".
  6.  * Au début du programme vous recevez :
  7.  * la variable lightX : la position X de l'éclair que Thor doit rejoindre.
  8.  * la variable lightY : la position Y de l'éclair que Thor doit rejoindre.
  9.  * la variable initialTX : la position X initiale de Thor.
  10.  * la variable initialTY : la position Y initiale de Thor.
  11.  * À la fin du tour de jeu, vous devez afficher la direction que Thor doit prendre parmi :
  12.  * N (Nord)
  13.  * NE (Nord-Est)
  14.  * E (Est)
  15.  * SE (Sud-Est)
  16.  * S (Sud)
  17.  * SW (Sud-Ouest)
  18.  * W (Ouest)
  19.  * NW (Nord-Ouest)
  20.  * Chaque déplacement fait bouger Thor de 1 case dans la direction choisie.
  21.  * Conditions de victoire
  22.  * Vous gagnez lorsque Thor arrive sur l'éclair de puissance
  23.  * Conditions de défaite
  24.  * Thor sort de la carte
  25.  * Note
  26.  * N'oubliez pas d'exécuter les tests depuis la fenêtre "Jeu de tests".
  27.  * Attention : les tests fournis et les validateurs utilisés pour le calcul du score sont légèrement différents pour éviter les solutions codées en dur
  28.  * Entrées du jeu
  29.  * Le programme doit d'abord lire les données d'initialisation depuis l'entrée standard, puis, dans une boucle infinie fournir sur la sortie standard les instructions de mouvement de Thor.
  30.  * Entrées d'initialisation
  31.  * Ligne 1 : 4 entiers lightX lightY initialTX initialTY. (lightX, lightY) indique la position de l'éclair. (initialTX, initialTY) indique la position initiale de Thor.
  32.  * Entrée pour un tour de jeu
  33.  * Ligne 1 : le nombre de déplacements restant pour permettre à Thor de rejoindre l'éclair de puissance remainingTurns. Vous pouvez ignorer cette valeur mais vous devez la lire.
  34.  * Sortie pour un tour de jeu
  35.  * Une ligne unique indiquant le mouvement à effectuer : N NE E SE S SW W ou NW
  36.  * Contraintes
  37.  * 0 ≤ lightX < 40
  38.  * 0 ≤ lightY < 18
  39.  * 0 ≤ initialTX < 40
  40.  * 0 ≤ initialTY < 18
  41.  * Temps de réponse pour un tour ≤ 100ms
  42.  */
  43.  
  44. #include <iostream>
  45.  
  46. int main()
  47. {
  48.     const auto width = 40;
  49.     const auto height = 18;
  50.     int light_x; // la position X de l'éclair de puissance
  51.     int light_y; // la position Y de l'éclair de puissance
  52.     int initial_tx; // la position X initiale de Thor
  53.     int initial_ty; // la position Y initiale de Thor
  54.     cin >> light_x >> light_y >> initial_tx >> initial_ty; cin.ignore();
  55.  
  56.     // Boucle de jeu
  57.     while (1) {
  58.         int remaining_turns; // Le nombre de déplacements restants pour permettre à Thor de rejoindre l'éclair de puissance. Ne pas supprimer cette ligne.
  59.         cin >> remaining_turns; cin.ignore();
  60.        
  61.         // Calculer la direction vers l'éclair de puissance
  62.         if (light_y < initial_ty && initial_ty > 0) {
  63.             cout << "N";
  64.             initial_ty--;
  65.         }
  66.         if (light_y > initial_ty && initial_ty < height) {
  67.             cout << "S";
  68.             initial_ty++;
  69.         }
  70.         if (light_x > initial_tx && initial_tx < width) {
  71.             cout << "E";
  72.             initial_tx++;
  73.         }
  74.         if (light_x < initial_tx && initial_tx > 0) {
  75.             cout << "W";
  76.             initial_tx--;  
  77.         }
  78.         cout << endl;
  79.     }
  80. }
  81.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement