Ходор - медлительный, но привлекательный персонаж в сериале « Игра престолов» ( он, конечно, тоже в книгах ). Единственное слово, которое он произносит, - это «ходор» .
Удивительно, но, несмотря на нехватку словарного запаса, Ходор всегда говорит в полных предложениях с правильной прописной буквой и пунктуацией, и на самом деле передает смысл.
Ходор способен выразить все 128 символов ASCII , хотя ему требуется целое предложение, чтобы сказать каждый из них. Каждый символ имеет одно точное представление в виде предложения. Строка ASCII является Hodorized путем перевода всех символов в строке их членов предложения эквивалентов Hodor, а затем присоединиться все предложения. Поскольку все символы отображаются в точные предложения, все строки ASCII имеют одно уникальное Ходоризованное представление.
Ходоринг персонажей
Ходор делит свои 128 выражаемых символов на 4 набора по 32, используя 4 различных типа знаков препинания для предложений, которые представляют символы.
Предложение заканчивается на ...
.
если код символа ASCII mod 4 равен 0..[newline][newline]
(для нового параграфа), если код мода 4 равен 1.?
если код мода 4 равен 2.!
если код мода 4 равен 3.
Например, код символа ASCII для b
равен 98, а 98 mod 4 равен 2, так что предложение Ходора для b
него обязательно заканчивается ?
.
Содержание предложения представляет собой одну из 32 отдельных строк, содержащих только слово «ходор». Каждый из 32 символов определенного типа пунктуации сопоставляется с другой строкой содержания предложения. Таким образом, с 32 строками содержимого предложения и 4 типами пунктуации все 128 символов ASCII могут быть представлены как отдельные предложения Ходора.
Чтобы определить содержание предложения для символа с кодом ASCII C, вычислите (floor(C / 4) + 16) mod 32
; все после двоеточия в этой строке в этом списке является содержанием предложения:
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
Можно видеть, что, кроме HODOR
особого случая, эти строки генерируются путем объединения все большего и большего числа hodor
, а каждая другая строка имеет запятую между всеми словами (с большой половиной справа от запятой для нечетного число слов).
Соединяя содержание предложения с пунктуацией, мы можем сформировать предложения Ходора для всех 128 символов (число слева - код символа):
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!
( [newline]
должны быть заменены фактическими символами новой строки.)
Ходоризованные струны
Ходоризация строки на самом деле просто включает в себя объединение всех символьных предложений символов строки вместе. Есть только пара предостережений:
- Пробел вставляется после каждого предложения, за исключением
.[newline][newline]
пунктуированных и самого последнего предложения. - Если последнее предложение акцентировано
.[newline][newline]
, пунктуация становится...
так, что нет пробела в конце.
Примеры
Строка F0
Hodorized как
HODOR? Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor.
F
имеет код ASCII 70. 70 mod 4 равно 2, поэтому первое предложение заканчивается на?
.(floor(70 / 4) + 16) mod 32
1, так что содержаниеHODOR
.0
имеет код ASCII 48. 48 mod 4 равно 0, поэтому второе предложение заканчивается на.
.(floor(48 / 4) + 16) mod 32
28, так что содержимое 15hodor
соединено без запятой.- Обратите внимание, что нет пробела.
Строка CEE
Hodorized как
Hodor! HODOR.
HODOR...
- Обратите внимание, что перед последним предложением нет места.
- Обратите внимание, что пунктуация последнего предложения была изменена на
...
.
Строка
Hodor's real name is Walder.
Did you know?
Ходоризован как
Hodor hodor. Hodor hodor hodor, hodor hodor hodor! Hodor hodor, hodor hodor hodor. Hodor hodor hodor, hodor hodor hodor! Hodor hodor hodor hodor hodor hodor hodor? Hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor! Hodor hodor hodor hodor hodor hodor hodor! Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor. Hodor hodor hodor hodor hodor hodor hodor? Hodor hodor, hodor hodor hodor.
Hodor hodor hodor hodor hodor.
Hodor hodor hodor, hodor hodor hodor. Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor. Hodor hodor hodor, hodor hodor hodor? Hodor hodor hodor hodor hodor.
Hodor hodor hodor, hodor hodor hodor.
Hodor hodor, hodor hodor hodor.
Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor. Hodor hodor hodor hodor hodor hodor.
Hodor hodor hodor hodor hodor hodor hodor! Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor. Hodor, hodor hodor! Hodor hodor hodor hodor hodor.
Hodor hodor hodor, hodor hodor hodor. Hodor hodor, hodor hodor hodor. Hodor hodor, hodor hodor hodor.
Hodor hodor hodor hodor hodor hodor hodor? Hodor hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor? Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor? HODOR. Hodor hodor hodor hodor hodor hodor.
Hodor hodor, hodor hodor hodor. Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor. Hodor hodor hodor hodor hodor hodor hodor hodor.
Hodor hodor hodor, hodor hodor hodor! Hodor hodor hodor, hodor hodor hodor hodor.
Hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor hodor. Hodor hodor hodor hodor hodor hodor! Hodor hodor hodor, hodor hodor hodor? Hodor hodor hodor, hodor hodor hodor! Hodor hodor hodor, hodor hodor hodor hodor! Hodor hodor hodor hodor hodor hodor hodor hodor, hodor hodor hodor hodor hodor hodor hodor hodor!
(при условии, что перевод строки является одним \n
)
Вызов
Напишите программу или функцию, которая принимает строку ASCII и удаляет ее, печатая или возвращая полученную строку. Взять ввод любым стандартным способом (из текстового файла, командной строки, стандартного ввода, функции arg).
Решение с наименьшим количеством байтов выигрывает. Tiebreaker - более ранний пост. ( Удобный счетчик байтов. )
Ответы:
Hodor! Ходор Ходор? Ходор Ходор Ходор Ходор.
Ходор Ходор Ходор, Ходор Ходор Ходор.
Ходор ходор ходор ходор ходор ходор, ходор ходор ходор ходор ходор ходор. Ходор ходор ходор ходор ходор ходор ходор ходор ходор ходор ходор ходор. Ходор ходор ходор ходор ходор ходор ходор ходор ходор ходор ходор ходор ходор ходор. Ходор ходор ходор ходор ходор ходор ходор, ходор ходор ходор ходор ходор ходор ходор.
Ходор ходор ходор ходор ходор ходор ходор ходор ходор ходор ходор ходор. Ходор Ходор Ходор Ходор? Ходор Ходор Ходор Ходор Ходор Ходор.
Ходор Ходор Ходор, Ходор Ходор Ходор. Ходор Ходор, Ходор Ходор.
Ходор Ходор Ходор Ходор Ходор Ходор!
Вот только язык и размер заголовка !? Не бери в голову, давайте просто закодируем пост в скучном старом ASCII. Извините, если у вас возникли проблемы с пониманием поста, Ходор.
CJam, 85 байт
Вот моя попытка. Некоторые части этого кода казались мне неуклюжими, когда я их писал, так что, вероятно, есть шанс победить!
Попробуйте онлайн.
объяснение
источник
Ходор,
602582 байтаВот версия без шкуры ... вы знаете ... для удобства чтения:
Да, есть язык под названием Ходор . (И это довольно ново.) По сути, это просто строковая замена JavaScript. Соответствующий JS выглядит так:
Следовательно, мое представление - это функция, принимающая строку и возвращающая эквивалент Hodorised.
К сожалению, кажется, что нет никакой информации о том, как на самом деле работает Ходор (кроме исходного кода интерпретатора), но он поставляется со скриптом перевода JS2HD.
Обратите внимание, что подстановки Ходора также применяются в строковых литералах. Так что, хотя вы можете просто вызвать вышеупомянутую функцию как
Вы также можете использовать следующее:
где
Hodor... HooodorrHodor HooodorrHodor
будет подставленоCEE
. Обратите внимание, что это означает, что если ваша строка сама содержит определенные формы,Hodor
вам придется ее кодировать, иначе она будет заменена. Например,"Hodor. "
на самом деле"m"
в JavaScript. Подвох в том, что буквы[dhor]
(без учета регистра) вообще не заменяются, поэтому вы даже не можете их кодировать. Одно из решений состоит в том, чтобы разделить литерал, например"Hod"+"or. "
, так, чтобы на этапе замещения не было найдено ничего для декодирования.источник
...
вместо новых строк, нет....
..
может быть заменен на что угодно. Это заполнитель для места, которое обычно там, которое удаляется вместе с финаломr.slice(0,-1)
.Python 2,
219198 байтПопробуй здесь
Использует тот же метод, что и JavaScript Мартина, и в Python он на несколько байт короче. Я использую удобное целочисленное деление Python 2.7. Спасибо Sp3000 за немного игры в гольф.
И для вашего собственного развлечения и для собственного удовольствия и любопытства ...
Вот это как лямбда-функция !!!
Python 2, 349
Попробуйте здесь , вместе со старой версией программы выше.
Создание этого включало более глубокие и глубокие замены, а также некоторую дополнительную креативность.
j
заменяется наs[i]
.c
заменяется наord(s[i])
.Каждый
n
заменяется на(ord(s[i])/4+16)%32
.n%2
, поэтому я использую(ord(s[i])/4%2
вместо этого.Наконец,
a
заменяется на(['']*(((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):]
.источник
[:0]
таким образом, чтобы получить пустую строку.MUMPS ,
284236 байтНовая версия: посмотрев немного, я предложил более короткую версию (236 байт):
Первая версия:
Черт возьми, CJam! Может быть, я мог бы сохранить несколько байтов, используя ObjectScript (есть операторы списка), но я сомневаюсь в этом.
Вот несколько многословная версия:
источник
C # 378 байт
Я впервые играю в гольф, так что голый со мной.
источник
hodor
. Вы также можете удалить некоторые, если не все эти новые строки, и несколько пробелов (например, послеfor
илиif
). Тем не менее, вы, вероятно, должны либо сосчитатьusing
директиву,System
либо полностью соответствовать требованиямConsole
.public
ключевое слово, чтобы сохранить несколько байтов. Вы также можете удалить пробел между[]
и фактическим именем переменной, которая содержит массив. Кроме того, нет необходимости преобразовывать строку в массив символов при выполнении итерации по всем символам строки в foreach; Вы можете просто сделатьforeach (char c in h)
.C ++,
547452 байтаUngolfed:
источник
\r\n
вместо\n
? Кроме того, зачем вам вообще нужно большинство разрывов строк?#include
,using namespace std;
и т.д.