Advertisement
MonsterScripter

CodinGame_2023_09_02__21_03_41__ascii_art.js

Sep 2nd, 2023
1,261
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const L = parseInt(readline());
  2. const H = parseInt(readline());
  3. const T = readline();
  4. let output = "";
  5. for (let i = 0; i < H; i++) {
  6.     const ROW = readline();
  7.     // Parcours des caractères du texte à afficher
  8.     for (let j = 0; j < T.length; j++) {
  9.         const letter = T.charAt(j);
  10.         // Détermination de la plage de caractères correspondant à la lettre
  11.         const alphaBeginning = letter.toUpperCase() === letter ? 'A' : 'a';
  12.         const alphaEnding = letter.toUpperCase() === letter ? 'Z' : 'z';
  13.         let start = 0;
  14.         if (letter < alphaBeginning || letter > alphaEnding) {
  15.             start = ((alphaEnding.charCodeAt(0) - alphaBeginning.charCodeAt(0)) + 1) * L;
  16.         } else {
  17.             start = (letter.charCodeAt(0) - alphaBeginning.charCodeAt(0)) * L;
  18.         }
  19.         output += ROW.substring(start, start + L);
  20.     }
  21.     output += '\n';
  22. }
  23. console.log(output);
  24.  
  25.  
  26. /**
  27.  * Objectif
  28.  * Dans les gares et aéroports on croise souvent ce type d'écran :
  29.  *
  30.  * Vous êtes-vous demandé comment il serait possible de simuler cet affichage dans un bon vieux terminal ? Nous oui : avec l'art ASCII !
  31.  *
  32.  * Règles
  33.  * L'art ASCII permet de représenter des formes en utilisant des caractères. Dans notre cas, ces formes sont précisément des mots. Par exemple, le mot "MANHATTAN" pourra être affiché ainsi en art ASCII :
  34.  *
  35.  * # #  #  ### # #  #  ### ###  #  ###
  36.  * ### # # # # # # # #  #   #  # # # #
  37.  * ### ### # # ### ###  #   #  ### # #
  38.  * # # # # # # # # # #  #   #  # # # #
  39.  * # # # # # # # # # #  #   #  # # # #
  40.  *
  41.  * Votre mission : Écrire un programme capable d'afficher une ligne de texte en art ASCII dans un style qui vous est fourni en entrée.
  42.  *
  43.  * Entrées du jeu
  44.  * Entrée
  45.  * Ligne 1 : la largeur L d'une lettre représentée en art ASCII. Toutes les lettres font la même largeur.
  46.  *
  47.  * Ligne 2 : la hauteur H d'une lettre représentée en art ASCII. Toutes les lettres font la même hauteur.
  48.  *
  49.  * Ligne 3 : La ligne de texte T, composée de N caractères ASCII
  50.  *
  51.  * Lignes suivantes : La chaîne de caractères ABCDEFGHIJKLMNOPQRSTUVWXYZ? représentée en art ASCII.
  52.  *
  53.  * Sortie
  54.  * Le texte T en art ASCII.
  55.  * Les caractères de a à z seront affichés en art ASCII par leur équivalent en majuscule.
  56.  * Les caractères qui ne sont pas dans les intervales [a-z] ou [A-Z], seront affichés par le point d'interrogation en art ASCII.
  57.  *
  58.  * Contraintes
  59.  * 0 < L < 30
  60.  * 0 < H < 30
  61.  * 0 < N < 200
  62.  *
  63.  * Exemple 1
  64.  * Entrée
  65.  * 4
  66.  * 5
  67.  * E
  68.  *  #  ##   ## ##  ### ###  ## # # ###  ## # # #   # # ###  #  ##   #  ##   ## ### # # # # # # # # # # ### ###
  69.  * # # # # #   # # #   #   #   # #  #    # # # #   ### # # # # # # # # # # #    #  # # # # # # # # # #   #   #
  70.  * ### ##  #   # # ##  ##  # # ###  #    # ##  #   ### # # # # ##  # # ##   #   #  # # # # ###  #   #   #   ##
  71.  * # # # # #   # # #   #   # # # #  #  # # # # #   # # # # # # #    ## # #   #  #  # # # # ### # #  #  #
  72.  * # # ##   ## ##  ### #    ## # # ###  #  # # ### # # # #  #  #     # # # ##   #  ###  #  # # # #  #  ###  #
  73.  *
  74.  * Sortie
  75.  * ###
  76.  *
  77.  * #
  78.  *
  79.  * ##
  80.  *
  81.  * #
  82.  *
  83.  * ###
  84.  *
  85.  * Exemple 2
  86.  * Entrée
  87.  * 4
  88.  * 5
  89.  * MANHATTAN
  90.  *  #  ##   ## ##  ### ###  ## # # ###  ## # # #   # # ###  #  ##   #  ##   ## ### # # # # # # # # # # ### ###
  91.  * # # # # #   # # #   #   #   # #  #    # # # #   ### # # # # # # # # # # #    #  # # # # # # # # # #   #   #
  92.  * ### ##  #   # # ##  ##  # # ###  #    # ##  #   ### # # # # ##  # # ##   #   #  # # # # ###  #   #   #   ##
  93.  * # # # # #   # # #   #   # # # #  #  # # # # #   # # # # # # #    ## # #   #  #  # # # # ### # #  #  #
  94.  * # # ##   ## ##  ### #    ## # # ###  #  # # ### # # # #  #  #     # # # ##   #  ###  #  # # # #  #  ###  #
  95.  *
  96.  * Sortie
  97.  * # #  #  ### # #  #  ### ###  #  ###
  98.  * ### # # # # # # # #  #   #  # # # #
  99.  * ### ### # # ### ###  #   #  ### # #
  100.  * # # # # # # # # # #  #   #  # # # #
  101.  * # # # # # # # # # #  #   #  # # # #
  102.  */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement