SwiftKey在2014年4月1日发布了笔记本电脑打字的下一次革命。但是,我想成为第一个编写可擦写纳米克隆的人,但是,由于找不到适合实际文本库的可擦写文本,而且我等不及了,所以我在这里问。
任务
编写一个程序,该程序接受划动文本并输出等效的实文本。例:
Input: hgrerhjklo
Output: hello
当用户这样做时:
其他例子:
Input: wertyuioiuytrtjklkjhgfd
Output: world
Input: poiuytrtyuioiugrewsasdfgbhnmkijnbg
Output: programming
Input: poiuygfdzxcvhjklkjhgres
Output: puzzles
Input: cvhjioiugfde
Output: code
Input: ghiolkjhgf
Output: golf
规则
- 该程序将在stdin或argv上输入一个刷过的“单词”
- 滑动输入的首个字母和最后一个字母将等于真实单词的首个字母和最后一个字母
- 您可以假设用户将做出合理的直线,但是您可以使用样本数据来验证这一点(我制作了样本数据,然后制作了最终的测试数据)
- 对于模棱两可的输入,您可以选择任一输出,但是我将尝试消除测试数据中的所有模棱两可
- 该单词将在此单词列表中(但会被刷掉)。单词列表将在当前目录中,并且可以读取(换行符分隔,将命名为
wordlist
,无扩展名)。 - 滑动仅包含小写字母字符
- 如果用户在按键上暂停,则滑动可能包含重复的字符
- 程序必须在stdout上输出(大小写无关紧要)
- 程序必须
0
作为返回码返回 - 您必须提供运行命令,编译命令(如果需要),名称以及要使用的输入路径
- 存在标准漏洞(尽管可能没有帮助)
- 不允许非内置库
- 确定性,非高尔夫/模糊解决方案优先
- 没有文件写入,联网等
- 您的代码必须在一秒钟或更短的时间内运行(您的代码每个单词运行一次)
- 计分运行在具有4个虚拟代码(2个真实代码)的Intel i7 Haswell处理器上运行,因此如果需要,您可以使用线程
- 最大代码长度为5000字节
- 您使用的语言必须具有可用于Linux的免费(非试用版)版本(Arch Linux,如果需要的话)
获奖标准
- 获胜者是最准确的解决方案(使用提供的测试列表,由控制程序评分)
- 人气是决定性因素
- 评分表将每隔几天更新一次
- 超时和崩溃视为失败
- 这项挑战将持续两周或更长时间,具体取决于受欢迎程度
- 最终得分将使用其他随机选择的单词列表(相同长度,来自相同单词列表)
其他
- 您可以使用控制程序来测试您的程序
- 如果您不耐烦,并且想要快速更新/添加程序,请在https://github.com/matsjoyce/codegolf-swipe-type/blob/master上发出问题或提出请求
- 条目在https://github.com/matsjoyce/codegolf-swipe-type/blob/master/entries中维护
- 每个程序运行的日志都在https://github.com/matsjoyce/codegolf-swipe-type/blob/master/logs中维护
- 主要日志位于https://github.com/matsjoyce/codegolf-swipe-type/blob/master/log.log
- 每个密钥的位置将作为csv文件提供在当前目录中,名为
keypos.csv
,并给出相对于x和y的值Q
(请参见https://github.com/matsjoyce/codegolf-swipe-type/blob/master/ keypos.csv) - 每个按键为1.5 x 1.5厘米(与keypos.csv中的单位相同)
当前计分板
Three Pass Optimizer:Errors: 0/250 Fails: 7/250 Passes: 243/250 Timeouts: 0/250
Corner Sim: Errors: 0/250 Fails: 9/250 Passes: 241/250 Timeouts: 0/250
Discrete Fréchet Distance:Errors: 0/250 Fails: 17/250 Passes: 233/250 Timeouts: 0/250
Turnaround: Errors: 0/250 Fails: 18/250 Passes: 232/250 Timeouts: 0/250
Direction Checker: Errors: 0/250 Fails: 19/250 Passes: 231/250 Timeouts: 0/250
Regex Solver: Errors: 0/250 Fails: 63/250 Passes: 187/250 Timeouts: 0/250
Corner Sim: Errors: 0/250 Fails: 10/250 Passes: 240/250 Timeouts: 0/250
Three Pass Optimizer:Errors: 2/250 Fails: 14/250 Passes: 234/250 Timeouts: 0/250
Turnaround: Errors: 0/250 Fails: 16/250 Passes: 234/250 Timeouts: 0/250
Direction Checker: Errors: 0/250 Fails: 17/250 Passes: 233/250 Timeouts: 0/250
Discrete Fréchet Distance:Errors: 0/250 Fails: 18/250 Passes: 232/250 Timeouts: 0/250
Regex Solver: Errors: 0/250 Fails: 67/250 Passes: 183/250 Timeouts: 0/250
决赛
Corner Sim: Errors: 0/250 Fails: 14/250 Passes: 236/250 Timeouts: 0/250
Three Pass Optimizer:Errors: 0/250 Fails: 18/250 Passes: 232/250 Timeouts: 0/250
Direction Checker: Errors: 0/250 Fails: 20/250 Passes: 230/250 Timeouts: 0/250
Turnaround: Errors: 0/250 Fails: 23/250 Passes: 227/250 Timeouts: 0/250
Discrete Fréchet Distance:Errors: 0/250 Fails: 30/250 Passes: 220/250 Timeouts: 0/250
Regex Solver: Errors: 0/250 Fails: 55/250 Passes: 195/250 Timeouts: 0/250
对大家和hgfdsasdertyuiopoiuy swertyuiopoijnhg做得好!
l
,没有翻倍。