这是一个有趣的挑战..。
我希望你的高尔夫代码,当执行时,将允许您的输入被转换为模拟输出,就像您正在键入一个DVORAK键盘布局。
其目的是模仿美国简化的Dvorak键盘( US :SDK)

相比之下,这里是标准的美国QWERTY布局:

键盘模拟必须同时适用大写字母和小写字母以及移位键,例如,如果我点击键盘上的q (未移位)键,则Dvorak代码应该会在屏幕上弹出一个'字符。如果我点击c (未移位)按钮,我应该得到一个j (也是未移位)作为响应,C (移位)将得到J (移位)等等。
当然,我只专注于上面图表中的白键。标签,帽子和其他灰色键应该正常工作.
有什么问题吗?现在不行吗?很好..。
我将不允许已经对布局进行编码的外部资源,也不会引入任何可以对布局进行编码的文件。代码在本质上必须是QWERTY INPUT -> (DVORAK RE-CODING) -> DVORAK OUTPUT。没有愚蠢的Esolangs是理论性的,或者只是说“这个程序将接受QWERTY输入并在DVORAK中重新编码。这是程序。”或者这样的废话..。认真对待这个挑战..。所以Brainfuck程序员们我欢迎你们。
请注意,这不是一个字符串转换程序。对于您按下的每一个QWERTY键,必须输出相应的DVORAK字符.
最短的代码获胜..。
发布于 2014-03-03 12:42:01
tr \''"+-/:-[]_b-{}' "-_}w[vzSsW]VZ@AXJE>UIDCHTNMBRL\"POYGK<QF:/={xje.uidchtnmbrl'poygk,qf;?+"此命令在stdin上使用QWERTY,在stdout上输出DVORAK。
发布于 2014-03-03 15:04:51
main(c){putch((c=getch())>33?c:"_#$%&-()*}w[vz0123456789SsW]VZ@AXJE>UIDCHTNMBRL\"POYGK<QF:/\\
=^{`axje.uidchtnmbrl'poygk,qf?|+~"[c-34]);main(0);}发布于 2014-03-03 15:13:12
可能不是最短的,但它完全符合你的要求:
using System;class A{static void Main(){string[] q={"-=qwertyuiop[]sdfghjkl;'zxcvbnm,./","_+QWERTYUIOP{}SDFGHJKL:\"ZXCVBNM<>?","[]',.pyfgcrl/=oeuidhtns-;qjkxbmwvz","{}\"<>PYFGCRL?+OEUIDHTNS_:QJKXBMWVZ"};while(true){var c=Console.ReadKey(true);var a=c.KeyChar;int i,w=c.Modifiers==ConsoleModifiers.Shift?1:0;Console.Write((i=q[w].IndexOf(a))>-1?q[w+2][i]:a);}}}如果您按下QWERTY键盘上的一个键,则控制台中将显示正确的DVORAK字符。
https://codegolf.stackexchange.com/questions/22704
复制相似问题