Pigpen密码加密
您的任务很简单:编写一个程序来接收文本作为输入并在Pigpen Cipher中输出文本的ASCII表示。
输入值
仅ASCII(无Unicode)字符。您必须至少能够处理16384个字符和256行。
输出量
- 将所有不是换行符的字符替换为换行符
ABCDEFGHIJKLMNOPQRSTUVWXYZ
或abcdefghijklmnopqrstuvwxyz
用空格替换。 - 不区分大小写,将每个字母替换为其加密形式(请参阅下一节),在每行之后的三行中的每行后面插入一个空格。每个编码的字符都是3 * 3的ASCII艺术字块。用3 * 3的空格块替换空格。
- 所有字符都应该在同一三行上(将这三行称为一个猪行),除非有新行开始新的猪行。在猪皮线之间保留法线为空白。
密码
| | | |
.| |.| |.
--+ for J +-+ for K +-- for L
--+ +-+ +--
.| |.| |.
--+ for M +-+ for N +-- for O
--+ +-+ +--
.| |.| |.
| for P | | for Q | for R
(ABCDEFGHI are the same as JKLMNOPQR, but with the . replaced by a space)
\./
V for W (note the row of 3 spaces on the top)
^
/.\ for Z (note the 3 spaces on the bottom)
\
.>
/ for X (note the leading spaces)
/
<.
\ for Y (note extra trailing spaces)
(STUV are like WXYZ, but with the . replaced by a space)
例
输入“ hEllo,wORLd”应产生:
+-+ +-+ | | +-- +-- +-- | --+
| | | | |. |. |. \./ |. |. |. |
| | +-+ +-- +-- +-- V +-- | +-- --+
上面的base64编码以及结尾的新行在下面。md5sum为6f8ff1fed0cca4dd0492f9728ea02e7b
。
Ky0rICstKyB8ICAgfCAgICstLSAgICAgICAgICstLSArLS0gfCAgIC0tKwp8IHwgfCB8IHwuICB8
LiAgfC4gICAgICBcLi8gfC4gIHwuICB8LiAgICB8CnwgfCArLSsgKy0tICstLSArLS0gICAgICBW
ICArLS0gfCAgICstLSAtLSsK
如果没有尾随新行,则md5sum为581005bef7ee76e24c019d076d5b375f
,而base64为:
Ky0rICstKyB8ICAgfCAgICstLSAgICAgICAgICstLSArLS0gfCAgIC0tKwp8IHwgfCB8IHwuICB8
LiAgfC4gICAgICBcLi8gfC4gIHwuICB8LiAgICB8CnwgfCArLSsgKy0tICstLSArLS0gICAgICBW ICArLS0gfCAgICstLSAtLSs =
规则
- 禁止出现标准漏洞。
- 这是代码高尔夫。最短的代码获胜。
- 在不能一次接受多行输入的语言(例如,带有的JavaScript
prompt()
)中,请使用*
(或其他一些字符)作为行分隔符。
埃兰达
- 该示例缺少一些空格(空格应由前一个字符的尾部空格(如果有的话)本身以及其自己的尾部空格组成)。现在,此问题已得到解决。
prompt
用于输入,但仅接受一行。我可以使用特殊字符(如“ *”)在输入中标记新行吗?