Для данного персонажа выведите (на экран) всю раскладку клавиатуры qwerty (с пробелами и символами новой строки), которая следует за символом. Примеры проясняют
Вход 1
f
Выход 1
g h j k l
z x c v b n m
Вход 2
q
Выход 2
w e r t y u i o p
a s d f g h j k l
z x c v b n m
Вход 3
m
Выход 3
(Программа завершается без вывода)
Вход 4
l
Выход 4
z x c v b n m
Самый короткий код выигрывает. (в байтах)
PS
Допускаются дополнительные новые строки или дополнительные пробелы в конце строки.
Ответы:
CJam,
4240 байтПроверьте это здесь.
объяснение
источник
e#
? Это синтаксис CJam для комментария? Заранее спасибо.Pyth, 33 байта
Обратите внимание, что некоторые символы непечатаемы. Попробуйте онлайн в компиляторе Pyth .
Как это работает
источник
\
это эквивалентноd
.md5
не получается 5 пробелов.d
переменная по умолчанию, которая перебирает итеративный аргумент оператора карты. ИjL\ <list>
это просто ярлык для оператора картыmj\ d<list>
.Perl, 56 байт
Считая Шебанг как 3, ввод берется из стандартного ввода. Если ведущий символ новой строки не является проблемой для входов
p
иl
, затем/$_\n?/
может быть заменен на голой ,$_
чтобы сохранить 4.Образец использования
источник
\K
!s/.\B/$& /g
будет работать одинаково хорошо. Лучший пример .GS2 ,
3837 байтИсходный код использует кодировку CP437 . Попробуйте онлайн!
Тестовый забег
Как это работает
источник
C #, 112 байт
105110Счет увеличился на 5 байтов, но правильнее! Спасибо @ MartinBüttner !!
Un-golfed
источник
JavaScript (ES6), 60 байт
Использует ту же технику, что и большинство других ответов. Предложения приветствуются!
источник
.join` `
этого ничего бы не делалось и в результате не было бы пробелов.Рубин,
6357 байтПринимает символ в качестве аргумента командной строки:
ruby keyboard.rb e
источник
TeaScript ,
504544 байтаTeaScript - это JavaScript для игры в гольф.
Неуправляемый и объяснение
источник
JavaScript ES6, 73
Если начальный символ новой строки не разрешен, когда параметр равен
p
илиl
, то 83источник
Python, 83 байта
Попробуйте онлайн
источник
Sed, 59 символов
(58 символов кода + 1 символ опции командной строки.)
Образец прогона:
источник
Рубин,
8687837166Дополнительный пробел после
m
должен предотвращать сбой программы, если ввод «m».Спасибо @manatwork за ~ 16 байтов советов
источник
ARGV
→$*
;each_char
→chars
;do
..end
→{
..}
;printf
→$><<
+%
приведет к следующему:"qwertyuiop↵asdfghjkl↵zxcvbnm".split($*[0])[1].chars{|i|$><<"%s "%i}
. Больше в Советы для игры в гольф в Руби ..
в регулярном выражении не соответствует\n
по умолчанию, лучше использовать , что для интервала:puts"qwertyuiop↵asdfghjkl↵zxcvbnm ".split($*[0])[1].gsub(/./,'\& ')
. Хотя длина кода останется прежней.PHP, 88 байт
Требуется параметр
-F
командной строки, который считается равным 3. Предполагается настройка .ini по умолчанию (вы можете отключить локальный .ini с помощью-n
).Образец использования
источник
Пролог (SWI),
153133 байтаИзменить: сократить 20 байтов с советами от @Fatalize
Код
объяснение
Примеры
источник
atom_codes
часть, используя обратные кавычки, которые разделяют строковые коды (чтобы вы могли напрямую заменить L в вызовеb
на строку).b([A,_|T],[H]):-A=H,writef('%s',[T]);b(T,[H]).
вместо 2 разных правил используется наb
7 байт короче. Обычно всегда проще объединить все правила в единое с OR,;
вместо того, чтобы писать несколько правил, потому что вы избегаете повторения имени и параметров предиката и также избегаете перевода строки;)Befunge, 122 байта
Это было проверено здесь: переводчик Befunge-93 .
Как это работает
'q w e r t y u i o p\na s d f g h j k l\nz x c v b n m'
помещается в стек.@ZVD0FHJ:LNP^\<>,2B48X.T6R
), N передается.Заметка
Я выбрал кодировку, поэтому строка начинается с
@
того, чтобы перекрываться с программой. Эта строка генерируется с помощью следующего кода Python:источник
Свинка - 102 байта
Гольф-скрипт:
Развернулся и прокомментировал:
Правило, разрешающее дополнительные символы новой строки, сэкономило мне почти 10 байт ...
источник
Java - 107 байт
Разгруженный с чтением класса оболочки из System.in
Если бы пробелы в начале строки были приемлемы, мы могли бы уменьшить размер до 99 байт:
источник
Python 2,
586763 байта ##Принимает ввод в виде строки или символа. Разбивает строку на входе и распечатывает все после разделения.
(Первый раз игра в гольф, пожалуйста, будьте осторожны: P)
РЕДАКТИРОВАТЬ: не видел дополнительные пробелы, необходимые между символами, добавлены сейчас
РЕДАКТИРОВАТЬ 2: Изменено, чтобы быть анонимной лямбда-функцией и удалить дополнительный разделенный аргумент, экономя 4 байта
источник
print
, но кажется, что это не печатать пробелы между каждой парой букв."f"
lambda s:...
. Я думаю, что разделение не нуждается в аргументе1
, так как персонаж появляется только один раз. Это выводит пробелы в начале последующих строк, не уверенный, разрешено ли это.Рубин,
59 5767 байтДобавлены пробелы между буквами
источник
nil
. Что само по себе не проблема, но при завершении кода у вас возникнут проблемы с добавлением пробелов между буквами.JavaScript, 88 байт
(нет необходимости в пробелах после первого символа, так как он никогда не попадает на выход)
Предупреждает клавиатуру, когда вы звоните
s("some letter")
. Можно также сделать сdocument.write()
илиconsole.log()
, но эй, это длиннее: PДемо-версия:
источник
\n
вместо;
строки и избавившись от замены.SQL (MS T-SQL), 172 байта
Ungolfed:
Я новичок здесь, только что обнаружил этот сайт. Не знаю, правильно ли я написал или T-SQL разрешен, но я знаю, что описанная выше процедура работает.
источник
O 2,2,
4846 символовОбразец прогона:
O, 61 символов
Образец прогона:
источник
"qwertyuiop\nasdfghjkl\nzxcvbnm\n"i/r;s{n.'\n=ST?}d
работает только на новом интерпретаторе, но составляет 51 байт.git submodule update --init
, затемmake
Japt ,
4942414038 байтJapt - это сокращенная версия Ja vaScri pt . переводчик
?
Должен быть нецензурным Unicode символ U + 0086.Как это работает
Теперь бить CJam! :) Предложения приветствуются!
Неконкурентная версия, 12 байт
По состоянию на 11 января я добавил новую замечательную функцию в Japt: если программа содержит начальную запятую, переменные
ABCDEFGHIJL
переопределяются на различные значения.D
установлен на"QWERTYUIOP\nASDFGHJKL\nZXCVBNM"
, поэтому;Dv
достаточно заменить строку здесь.источник
Гема, 56 знаков
Образец прогона:
источник
8086 машинный код + DOS, 61 байт
Hexdump (с видом ASCII справа):
Исходный код сборки (может быть собран с помощью tasm):
Две забавные вещи здесь:
qwerty
струны0x011e
. Старший байт равен 1, что является номером функции DOS для ввода символов. Это экономит 1 байт в коде.AND
с0x20
они все превращаются в пространство, которое затем печатается. Если предыдущий символ был байтом конца строки, он превращается в 0, и пробел не выводится. Это используется, чтобы избежать бессмысленной последовательности0d 20 0a 20
в конце строки.Одна почти забавная вещь:
Я попытался найти входной символ, начинающийся с адреса 0 (который уменьшил размер программы на 2 байта), вместо обычного места (начало строки). Это почти сработало; однако, это не удалось для ввода
t
, потому что сам код содержит байтt
(как часть кодирования условного перехода). Так чтоt
, это вывело бы несколько ненужных байтов:источник
𝔼𝕊𝕄𝕚𝕟, 32 символа / 79 байтов
Try it here (Firefox only).
По крайней мере, я выигрываю в счетчике символов ... (Счетчик байтов - это другая история.)
Ах да, только что понял, что я внедрил ярлыки индекса (
⎖1
а не[1]
) некоторое время назад. Я такой глупый!источник
C ++,
129, 11297 байтUngolfed:
источник
puts
вместоstd::cout<<
#include
дляputs
, но, очевидно, я этого не делаю!strstr
была вещь.<stdio.h>
дляstrstr
.Пакетный, 206 + 2 = 208 байт
Поскольку это использует отложенное расширение, вам нужно вызвать его
CMD /V /C keyboard.cmd <letter>
, добавив12 для/V
коммутатора.источник
cmd
примет его так/VC
, как это делают инструменты POSIX. Но, как я знаю,/V
требует своего/
, который также учитывается.Python, 109 байт
Я знаю, это немного большой, но это все, что я знаю, как сделать прямо сейчас!
источник
kb()
в конце; определения функции достаточно. Также достаточно 1 места для отступа. После внесения этих изменений я получаю 108 байт, используя этот сайт .Баш, 80 байт
Попробуйте сами, либо замените $ 1 нужным символом, либо создайте скрипт #! / Bin / bash.
Вот несколько примеров из Cygwin:
Это не самое короткое, но я все еще горжусь этим!
источник