ASCII art puzzle discussion

abdi

Hi I seriously need help creating Ascll art but I need most
help debugging and solving it , please help .

I’m at a loss for what I’m missing - here’s the console output from the first test case:

L: 4
H: 5
T: E
### 
#   
##  
#   
### 


Fail
Found:    "### "
Expected: "### "

Maybe a \n missing?

How would I validate that? I’m using C# and (despite it probably being overly complicated) I’m building an 2-D array of output characters, then spitting out each row with Console.WriteLine(new string(output[rowIdx]));.

Dear fellow coders,

I’m quite new to Python, please explain me why is it not working as I think it should work.

For this pretty simple exception handling use case (sorry for the indentation, dunno how should i format it here):

try:
indexes.append(letters.index(t[i].upper()))
except ValueError:
indexes.append(letter.index(’?’))

Now, when I’m trying to get a character from the list, which is not present in the letters list, like ‘@’, then the console is rather complain about the unexpected exception instead of just jumping to the except part of the code.
Is it normal? How should I handle these cases otherwise?

Thanks.

Why not using a set or a hashtable (dict)?

Bonjour,

je ne comprend pas le problĂšme :

Voici ce que j’obtiens pour M@NH@TT@N

Fail
Found: "# # "
Expected: “# # #”

Je ne comprend absolument pas pourquoi l’expected me montre une chaĂźne de 5 caractĂšres de long, alors que dans le fichier de donnĂ©es, la premiĂšre ligne contient 4, qui est “la largeur L d’une lettre representĂ©e en art ASCII. Toutes les lettres font la mĂȘme largeur.”

Dans l’expected, je vois la premiùre ligne du M puis le premier caractùre du “?”.

C’est confirmĂ© par :
Fail
Found: "# # "
Expected: "# # " (votre moulinette d’affichage (mais pas celle de l’édition) des messages sur le forum effectue une suppression des espaces qu’elle juge inutiles, mais la console m’affiche bien deux espaces avant le deuxiĂšme ")
pour le cas MANHATTAN,

et par :
Fail
Found: " .----------------. "
Expected: " .----------------. " (votre moulinette d’affichage (mais pas celle de l’édition) des messages sur le forum effectue une suppression des espaces qu’elle juge inutiles, mais la console m’affiche bien deux espaces avant le deuxiĂšme ")
pour le cas avec une autre représentation ASCII.
A chaque fois, l’expected me montre L caractùres + 1, au lieu de L caractùres.

Il n’y a que le cas E qui passe.

Merci.

Hello coders! In the last test with a different ASCII fonts it seems to be a trouble with Letter “N” How to ask a developers of TEST CASE to sort it out?

1 Like

Beware if your code is in Javascript because : str.search(’.’) returns 0 and not -1 as expected if str is not empty !!! I don’t understand why


That’s why this test can’t pass for me. I replaced str.search() by str.IndexOf() and all is ok !

str.search converts its argument to a regular expression and uses that to search, and in a regular expression the point stands for “any symbol”.

1 Like

OMG ! I’m so stupid ! Thank you for explaining me my mistake !

I Found the same problem as you! The first line for the letter “N” as one “-” more than all the others, and doesn’t end with a blank space, like the other letters do!

I’m confused by this puzzle. From the replies above it seems we have to find the input characters in an index of the ASCII Art and then display. But, where is the ASCII art stored?? Are we expected to create it ourselves?? This is very unclear to me. Could really use some help here


1 Like

The ASCII art table is given in the input.

1 Like

Got it, thanks! The answer was right in front of me, just couldn’t see it


Thanks Aeleck, that was the clue I needed to make my code 100%. I had added a space to my python dict, but that was indeed not necessary. Cracked my head on it over and over and then decided to check the forum. So your hint saved me a lot of time, thanks!

Bonjour,
Je pense que je n’ai pas bien saisi les donnĂ©es d’entrĂ©es: d’aprĂšs ce que j’ai compris, il y a la largeur de chaque mettre (L), leur hauteur (H), le tableau des caractĂšres Ă  “encoder” en art ASCII, puis (et c’est lĂ  que j’ai un doute), le tableau des lettres de l’alphabet en art ASCII.
Ce dernier est défini ainsi:
    for (int i = 0; i < H; i++) {
        char ROW[1025];
        fgets(ROW,1024,stdin);
    }

D’une part, je trouve cette dĂ©finition horrible (Ă  chaque Ă©tape de la boucle for, le tableau ROW est redĂ©fini?) et d’autre part, lorsque j’essaye d’utiliser ce tableau dans mon code, on me rĂ©pond “ROW undeclared”.

Je pense que je n’ai pas bien saisi comment Ă©tait ce tableau exactement.Si quelqu’un pouvait m’éclairer sur le sujet


L’énoncĂ© comporte des exemples qui montres certaines donnĂ©es en entrĂ©e.

Row reprĂ©sente la chaĂźne de caractĂšres de tout l’alphabet, ligne par ligne.

   A    BBBBB
  A A   B    B
 AAAAA  B    B
A     A BBBBBB

Pour i => H
Row va valoir :
0 : ‘__A__BBBBB’,
1 : ‘A_A_B___B’
Et ainsi de suite.

D’autres part chaque template (code par dĂ©faut), ne sont pas gĂ©nĂ©rĂ© Ă  la main mais automatiquement pour les 23 langages, ce qui peut amener Ă  voir des abominations :slight_smile:

1 Like

The scope of the variable ROW is limited to the for loop. You need to store the values in an array (strcpy could be useful).

As SaiksyApo said, the code is automatically generated and that’s clearly not perfect. But that avoid us to provide approximately 1400 codes for the games and more than 3000 for the clashes.

aaaah, ok! Je ne voyais pas du tout comment Ă©tait row en fait, maintenant c’est plus clair!

Je ne vois pas encore comment je vais faire avec ça, mais au moins je comprends à quoi ça ressemble^^

je vais y réfléchir, merci!