规则
- 你的程序必须有两种模式:编码和解码。
编码时:
- 你的程序必须输入一些人类可读的
Latin1
文本,大概是英语。- 忽略标点符号也没关系。
- 您只需要担心实际的英语单词,而不是 L337。
- 任何重音字母都可以转换为简单的 ASCII。
- 您可以选择处理数字的方式。
- 123
- 一二三
- 一百二十三
- 123
- 1 2 3
- 一百二十三
- 一二三
- 一百二十三
- 123
- 1 2 3
您的程序必须输出一条可以表示为的消息
范围内的 140 个代码点
U+0000
–<code>U+10FFFF排除非字符:
U+FFFE
U+FFFF
U+
n
FFFE
,其中–<code>10 十六进制U+
n
FFFF
n
1
U+FDD0
–<code>U+FDEFU+D800
–<code>U+DFFF(代理代码点)。
它可以以您选择的任何合理编码输出;GNU
iconv
支持的任何编码都将被认为是合理的,您的平台本机编码或语言环境编码可能是一个不错的选择。- 你的程序必须输入一些人类可读的
解码时:
- 您的程序应将编码模式的输出作为输入。
- 文本输出应该是输入文本的近似值。
- 越接近原文越好。
- 不需要任何标点符号。
输出文本应该是人类可读的,同样可能是英语。
- 可以是 L337,也可以是大声笑。
- 除了上面指定的输出之外,解码过程可能无法访问编码过程的任何其他输出;也就是说,您不能将文本上传到某处并输出 URL 以供解码过程下载,或者任何类似的愚蠢行为。
- 为了用户界面的一致性,您的程序必须表现如下:
- 您的程序必须是可以在具有适当解释器的平台上设置为可执行的脚本,或者是可以编译为可执行文件的程序。
- 您的程序必须将
encode
或decode
设置模式作为其第一个参数。 - 您的程序必须至少以下列方式之一接受输入:
- 从标准输入获取输入并在标准输出上产生输出。
my-program encode <input.txt >output.utf
my-program decode <output.utf >output.txt
- 从第二个参数命名的文件中获取输入,并在第三个参数命名的文件中产生输出。
my-program encode input.txt output.utf
my-program decode output.utf output.txt
- 从标准输入获取输入并在标准输出上产生输出。
- 对于您的解决方案,请发布:
- 您的完整代码和/或在其他地方托管的指向它的链接(如果它很长,或者需要很多文件来编译,或其他)。
- 如果代码不是很明显,或者代码很长并且人们会对摘要感兴趣,则说明它是如何工作的。
- 示例文本,包含原始文本、压缩后的文本和解码的文本。
- 如果您正在建立其他人的想法,请归因于他们。尝试对别人的想法进行提炼是可以的,但你必须归因于他们。
这些规则是Twitter 图像编码挑战规则的变体。