Hodor est un personnage lent mais attachant de la série Game of Thrones ( il est également dans les livres bien sûr). Le seul mot qu'il a jamais dit est «hodor» .
Étonnamment, bien qu’il n’ait pas beaucoup de vocabulaire, Hodor parle toujours en phrases complètes avec une majuscule et une ponctuation correctes et, en fait, donne un sens.
Hodor est capable d'exprimer tous les 128 caractères ASCII , bien qu'il lui faut une phrase entière pour les dire. Chaque caractère a une seule et même représentation exacte sous forme de phrase. Une chaîne ASCII est Hodorisée en traduisant tous les caractères de la chaîne en leurs équivalents de phrases Hodor, puis en joignant toutes les phrases. Étant donné que tous les caractères correspondent à des phrases exactes, toutes les chaînes ASCII ont une représentation unique et unique de Hodorized.
Personnages hodorisants
Hodor divise ses 128 caractères exprimables en 4 jeux de 32 en utilisant 4 types de ponctuation différents pour les phrases qui représentent des caractères.
La phrase se termine par ...
.
si le code de caractère ASCII mod 4 est 0..[newline][newline]
(pour un nouveau paragraphe) si le code mod 4 est 1.?
si le code mod 4 est 2.!
si le code mod 4 est 3.
Par exemple, le code de caractères ASCII b
est 98 et 98 mod 4 vaut 2, aussi la phrase de Hodor b
est-elle terminée ?
.
Le contenu de la phrase est l'une des 32 chaînes distinctes contenant uniquement le mot "hodor". Chacun des 32 caractères d'un type de ponctuation particulier correspond à une chaîne de contenu de phrase différente. Ainsi, avec 32 chaînes de contenu de phrases et 4 types de ponctuation, les 128 caractères ASCII peuvent être représentés sous forme de phrases Hodor distinctes.
Pour déterminer le contenu d'une phrase pour un caractère avec le code ASCII C, compute (floor(C / 4) + 16) mod 32
; tout ce qui suit les deux points sur cette ligne de cette liste correspond au contenu de la phrase:
0:Hodor
1:HODOR
2:Hodor hodor
3:Hodor, hodor
4:Hodor hodor hodor
5:Hodor, hodor hodor
6:Hodor hodor hodor hodor
7:Hodor hodor, hodor hodor
8:Hodor hodor hodor hodor hodor
9:Hodor hodor, hodor hodor hodor
10:Hodor hodor hodor hodor hodor hodor
11:Hodor hodor hodor, hodor hodor hodor
12:Hodor hodor hodor hodor hodor hodor hodor
13:Hodor hodor hodor, hodor hodor hodor hodor
14:Hodor hodor hodor hodor hodor hodor hodor hodor
15:Hodor hodor hodor hodor, hodor hodor hodor hodor
16:Hodor hodor hodor hodor hodor hodor hodor hodor hodor
17:Hodor hodor hodor hodor, hodor hodor hodor hodor hodor
18:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor
19:Hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor
20:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor
21:Hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor
22:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor
23:Hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor
24:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor
25:Hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor
26:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor
27:Hodor hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor
28:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor
29:Hodor hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor hodor
30:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor
31:Hodor hodor hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor hodor
On peut voir que, en dehors du HODOR
cas particulier, ces chaînes sont générées en joignant de plus en plus hodor
de s, et chaque autre chaîne a une virgule à mi-chemin entre tous les mots (avec la "moitié plus grande" à droite de la virgule pour nombre de mots).
En joignant le contenu d'une phrase avec la ponctuation, nous pouvons former les phrases Hodor pour les 128 caractères (le nombre à gauche est le code du caractère):
0:Hodor hodor hodor hodor hodor hodor hodor hodor hodor.
1:Hodor hodor hodor hodor hodor hodor hodor hodor hodor.[newline][newline]
2:Hodor hodor hodor hodor hodor hodor hodor hodor hodor?
3:Hodor hodor hodor hodor hodor hodor hodor hodor hodor!
4:Hodor hodor hodor hodor, hodor hodor hodor hodor hodor.
5:Hodor hodor hodor hodor, hodor hodor hodor hodor hodor.[newline][newline]
6:Hodor hodor hodor hodor, hodor hodor hodor hodor hodor?
7:Hodor hodor hodor hodor, hodor hodor hodor hodor hodor!
8:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor.
9:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor.[newline][newline]
10:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor?
11:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor!
12:Hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor.
13:Hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor.[newline][newline]
14:Hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor?
15:Hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor!
16:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor.
17:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor.[newline][newline]
18:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor?
19:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor!
20:Hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor.
21:Hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor.[newline][newline]
22:Hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor?
23:Hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor!
24:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor.
25:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor.[newline][newline]
26:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor?
27:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor!
28:Hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor.
29:Hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor.[newline][newline]
30:Hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor?
31:Hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor!
32:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor.
33:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor.[newline][newline]
34:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor?
35:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor!
36:Hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor.
37:Hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor.[newline][newline]
38:Hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor?
39:Hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor!
40:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor.
41:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor.[newline][newline]
42:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor?
43:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor!
44:Hodor hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor.
45:Hodor hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor.[newline][newline]
46:Hodor hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor?
47:Hodor hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor!
48:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor.
49:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor.[newline][newline]
50:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor?
51:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor!
52:Hodor hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor hodor.
53:Hodor hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor hodor.[newline][newline]
54:Hodor hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor hodor?
55:Hodor hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor hodor!
56:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor.
57:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor.[newline][newline]
58:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor?
59:Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor!
60:Hodor hodor hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor hodor.
61:Hodor hodor hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor hodor.[newline][newline]
62:Hodor hodor hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor hodor?
63:Hodor hodor hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor hodor!
64:Hodor.
65:Hodor.[newline][newline]
66:Hodor?
67:Hodor!
68:HODOR.
69:HODOR.[newline][newline]
70:HODOR?
71:HODOR!
72:Hodor hodor.
73:Hodor hodor.[newline][newline]
74:Hodor hodor?
75:Hodor hodor!
76:Hodor, hodor.
77:Hodor, hodor.[newline][newline]
78:Hodor, hodor?
79:Hodor, hodor!
80:Hodor hodor hodor.
81:Hodor hodor hodor.[newline][newline]
82:Hodor hodor hodor?
83:Hodor hodor hodor!
84:Hodor, hodor hodor.
85:Hodor, hodor hodor.[newline][newline]
86:Hodor, hodor hodor?
87:Hodor, hodor hodor!
88:Hodor hodor hodor hodor.
89:Hodor hodor hodor hodor.[newline][newline]
90:Hodor hodor hodor hodor?
91:Hodor hodor hodor hodor!
92:Hodor hodor, hodor hodor.
93:Hodor hodor, hodor hodor.[newline][newline]
94:Hodor hodor, hodor hodor?
95:Hodor hodor, hodor hodor!
96:Hodor hodor hodor hodor hodor.
97:Hodor hodor hodor hodor hodor.[newline][newline]
98:Hodor hodor hodor hodor hodor?
99:Hodor hodor hodor hodor hodor!
100:Hodor hodor, hodor hodor hodor.
101:Hodor hodor, hodor hodor hodor.[newline][newline]
102:Hodor hodor, hodor hodor hodor?
103:Hodor hodor, hodor hodor hodor!
104:Hodor hodor hodor hodor hodor hodor.
105:Hodor hodor hodor hodor hodor hodor.[newline][newline]
106:Hodor hodor hodor hodor hodor hodor?
107:Hodor hodor hodor hodor hodor hodor!
108:Hodor hodor hodor, hodor hodor hodor.
109:Hodor hodor hodor, hodor hodor hodor.[newline][newline]
110:Hodor hodor hodor, hodor hodor hodor?
111:Hodor hodor hodor, hodor hodor hodor!
112:Hodor hodor hodor hodor hodor hodor hodor.
113:Hodor hodor hodor hodor hodor hodor hodor.[newline][newline]
114:Hodor hodor hodor hodor hodor hodor hodor?
115:Hodor hodor hodor hodor hodor hodor hodor!
116:Hodor hodor hodor, hodor hodor hodor hodor.
117:Hodor hodor hodor, hodor hodor hodor hodor.[newline][newline]
118:Hodor hodor hodor, hodor hodor hodor hodor?
119:Hodor hodor hodor, hodor hodor hodor hodor!
120:Hodor hodor hodor hodor hodor hodor hodor hodor.
121:Hodor hodor hodor hodor hodor hodor hodor hodor.[newline][newline]
122:Hodor hodor hodor hodor hodor hodor hodor hodor?
123:Hodor hodor hodor hodor hodor hodor hodor hodor!
124:Hodor hodor hodor hodor, hodor hodor hodor hodor.
125:Hodor hodor hodor hodor, hodor hodor hodor hodor.[newline][newline]
126:Hodor hodor hodor hodor, hodor hodor hodor hodor?
127:Hodor hodor hodor hodor, hodor hodor hodor hodor!
(Il [newline]
est à remplacer par les nouvelles lignes réelles.)
Cordes hodorisantes
Hodorer une chaîne consiste simplement à concaténer toutes les phrases de caractères des caractères de la chaîne. Il y a seulement quelques mises en garde:
- Un espace est inséré après chaque phrase sauf pour les
.[newline][newline]
ponctuées et la toute dernière phrase. - Si la dernière phrase est ponctuée par
.[newline][newline]
, la ponctuation devient...
alors il n'y a pas de blanc final.
Exemples
La chaîne F0
est Hodorized comme
HODOR? Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor.
F
a le code ASCII 70. 70 mod 4 est 2, donc la première phrase se termine par?
.(floor(70 / 4) + 16) mod 32
est 1, donc le contenu estHODOR
.0
a le code ASCII 48. 48 mod 4 est 0, donc la deuxième phrase se termine par.
.(floor(48 / 4) + 16) mod 32
28, le contenu est donchodor
composé de 15, sans virgule.- Notez qu'il n'y a pas d'espace de fuite.
La chaîne CEE
est Hodorized comme
Hodor! HODOR.
HODOR...
- Notez qu'il n'y a pas d'espace avant la dernière phrase.
- Notez que la dernière ponctuation de phrase a été changée en
...
.
La ficelle
Hodor's real name is Walder.
Did you know?
est Hodorisé comme
Hodor hodor. Hodor hodor hodor, hodor hodor hodor! Hodor hodor, hodor hodor hodor. Hodor hodor hodor, hodor hodor hodor! Hodor hodor hodor hodor hodor hodor hodor? Hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor! Hodor hodor hodor hodor hodor hodor hodor! Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor. Hodor hodor hodor hodor hodor hodor hodor? Hodor hodor, hodor hodor hodor.
Hodor hodor hodor hodor hodor.
Hodor hodor hodor, hodor hodor hodor. Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor. Hodor hodor hodor, hodor hodor hodor? Hodor hodor hodor hodor hodor.
Hodor hodor hodor, hodor hodor hodor.
Hodor hodor, hodor hodor hodor.
Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor. Hodor hodor hodor hodor hodor hodor.
Hodor hodor hodor hodor hodor hodor hodor! Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor. Hodor, hodor hodor! Hodor hodor hodor hodor hodor.
Hodor hodor hodor, hodor hodor hodor. Hodor hodor, hodor hodor hodor. Hodor hodor, hodor hodor hodor.
Hodor hodor hodor hodor hodor hodor hodor? Hodor hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor? Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor? HODOR. Hodor hodor hodor hodor hodor hodor.
Hodor hodor, hodor hodor hodor. Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor. Hodor hodor hodor hodor hodor hodor hodor hodor.
Hodor hodor hodor, hodor hodor hodor! Hodor hodor hodor, hodor hodor hodor hodor.
Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor. Hodor hodor hodor hodor hodor hodor! Hodor hodor hodor, hodor hodor hodor? Hodor hodor hodor, hodor hodor hodor! Hodor hodor hodor, hodor hodor hodor hodor! Hodor hodor hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor hodor!
(en supposant que la nouvelle ligne est un single \n
)
Défi
Ecrivez un programme ou une fonction qui prend une chaîne ASCII et la Hodorise, en imprimant ou en renvoyant la chaîne résultante. Prenez les entrées de n'importe quelle manière standard (fichier texte, ligne de commande, stdin, fonction arg).
La solution avec le moins d'octets gagne. Tiebreaker est post plus tôt. ( Compteur d'octets pratique. )
Réponses:
Hodor! Hodor Hodor? Hodor Hodor Hodor Hodor Hodor.
Hodor hodor hodor, hodor hodor hodor.
Hodor hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor. Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor. Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor. Hodor hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor hodor.
Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor. Hodor Hodor Hodor Hodor Hodor? Hodor hodor hodor hodor hodor hodor hodor hodor.
Hodor hodor hodor, hodor hodor hodor hodor. Hodor hodor, hodor hodor hodor.
Hodor Hodor Hodor Hodor Hodor Hodor Hodor!
C'est juste l'en-tête de langue et de taille!? Ce n'est pas grave alors, encodons simplement la publication dans un vieil ASCII ennuyeux. Désolé si vous avez du mal à comprendre le post, Hodor.
CJam, 85 octets
Voici ma tentative. Certaines parties de ce code étaient assez maladroites lorsque je les ai écrites.
Essayez-le en ligne.
Explication
la source
Hodor,
602582 octetsVoici une version non-golfée ... vous savez ... pour plus de lisibilité:
Oui, il y a un langage appelé Hodor . (Et c'est plutôt nouveau.) Il s'agit essentiellement d'une substitution de chaîne à JavaScript. Le JS correspondant ressemble à ceci:
Par conséquent, ma soumission est une fonction qui prend une chaîne et renvoie l'équivalent hodorisé.
Malheureusement, il ne semble pas y avoir d’informations sur le fonctionnement réel de Hodor (à part le code source de l’interprète), mais il est accompagné d’un script de traduction JS2HD.
Notez que les substitutions de Hodor sont également appliquées dans les littéraux de chaîne. Donc, alors que vous pouvez simplement appeler la fonction ci-dessus comme
Vous pouvez également utiliser les éléments suivants:
où
Hodor... HooodorrHodor HooodorrHodor
sera remplacé parCEE
. Notez que cela signifie, que si votre chaîne elle - même contient certaines formes deHodor
vous allez avoir à encoder, ou bien il sera remplacé. Par exemple,"Hodor. "
est"m"
en JavaScript. Le problème, c'est que les lettres[dhor]
(sans tenir compte de la casse) ne sont pas remplacées du tout. Vous ne pouvez donc même pas encoder ceci. Une solution consiste à diviser le littéral, par"Hod"+"or. "
exemple, de sorte que l'étape de substitution ne trouve rien à décoder.la source
...
lieu des sauts de ligne, non....
..
pourrait être remplacé par n'importe quoi. C'est un espace réservé pour l'espace qui est habituellement là, qui est supprimé avec la finaler.slice(0,-1)
.Python 2,
219198 octetsEssayez-le ici
Utilise la même méthode que le code JavaScript de Martin, et sa longueur est de plusieurs octets plus courte en Python. Je me sers de la division entière pratique de Python 2.7. Merci à Sp3000 pour le golf.
Et pour votre propre divertissement et mon propre plaisir et curiosité ...
Ici c'est comme une fonction lambda !!!
Python 2, 349
Essayez-le ici , avec une ancienne version du programme ci-dessus.
Cela a entraîné des substitutions de plus en plus profondes ainsi que de la créativité supplémentaire.
j
est remplacé pars[i]
.c
est remplacé parord(s[i])
.Chaque
n
est remplacé par(ord(s[i])/4+16)%32
.n%2
, alors je l'utilise à la(ord(s[i])/4%2
place.Enfin,
a
est remplacé par(['']*(((ord(s[i])/4+16)%32)/2+2))[:((ord(s[i])/4+16)%32+1)/4]+([',']if ord(s[i])/4%2 else[''])+(['']*(((ord(s[i])/4+16)%32)/2+2))[((ord(s[i])/4+16)%32+1)/4+1*(ord(s[i])/4%2<1):]
.la source
[:0]
comme ça pour avoir une corde vide.MUMPS ,
284236 octetsNouvelle version: Après l'avoir examiné pendant un moment, j'ai proposé une version plus courte (236 octets):
Première version:
Bon sang, CJam! Peut être que je pourrais sauver quelques octets à l' aide ObjectScript (il sont Opérateurs de liste), mais je doute.
Voici une version quelque peu verbeuse:
la source
C # 378 octets
C'est la première fois que je joue au golf, si nu avec moi.
la source
hodor
. Vous pouvez probablement aussi supprimer certaines de ces nouvelles lignes, sinon toutes, ainsi que plusieurs espaces (par exemple aprèsfor
ou après laif
). Cependant, vous devriez probablement soit compter lausing
directive,System
soit pleinement qualifierConsole
.public
mot clé pour enregistrer des octets. Vous pouvez également supprimer l'espace entre[]
et le nom réel de la variable qui contient le tableau. En outre, il n'est pas nécessaire de convertir une chaîne en un tableau de caractères lorsque vous parcourez tous les caractères d'une chaîne dans un foreach; vous pouvez simplement faireforeach (char c in h)
.C ++,
547452 octetsUngolfed:
la source
\r\n
au lieu de\n
? Aussi, pourquoi avez-vous même besoin de la plupart de ces sauts de ligne?#include
,using namespace std;
etc.