Pigpen Şifreleme Şifresi
Göreviniz basit: Girdi olarak metin alan ve Pigpen Şifresinde ASCII temsili çıkaran bir program yazmak .
Giriş
Yalnızca ASCII karakterleri (Unicode yok). En az 16384 karakteri ve 256 satırı işleyebilmelisiniz.
Çıktı
- Yeni satır olmayan
ABCDEFGHIJKLMNOPQRSTUVWXYZ
yaabcdefghijklmnopqrstuvwxyz
da boşluklu ya da boşluklu tüm karakterleri değiştirin . - Büyük / küçük harfe duyarlı olmayan bir şekilde, her bir harfi şifreli formuyla değiştirin (sonraki bölüme bakın) ve her bir satırdan sonra üç satırın her birine bir boşluk bırakın. Her kodlanmış karakter ASCII sanatının 3 * 3 bloğudur. Boşlukları 3 * 3 blok boşlukla değiştirin.
- Yeni bir pigpen çizgisi başlatan yeni bir çizgi yoksa, tüm karakterler aynı üç satırda olmalıdır (bu üç satıra bir pigpen-çizgi çağırın). Pigpen çizgileri arasında normal bir çizgi boş bırakın.
Şifre
| | | |
.| |.| |.
--+ 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)
Misal
"HEllo, wORLd" girdisi aşağıdakileri üretmelidir:
+-+ +-+ | | +-- +-- +-- | --+
| | | | |. |. |. \./ |. |. |. |
| | +-+ +-- +-- +-- V +-- | +-- --+
Yukarıdakilerin yeni bir satırla base64 kodlaması aşağıdadır. Md5sum olduğunu 6f8ff1fed0cca4dd0492f9728ea02e7b
.
Ky0rICstKyB8ICAgfCAgICstLSAgICAgICAgICstLSArLS0gfCAgIC0tKwp8IHwgfCB8IHwuICB8
LiAgfC4gICAgICBcLi8gfC4gIHwuICB8LiAgICB8CnwgfCArLSsgKy0tICstLSArLS0gICAgICBW
ICArLS0gfCAgICstLSAtLSsK
Yeni bir çizgi olmadan, md5sum 581005bef7ee76e24c019d076d5b375f
ve base64:
Ky0rICstKyB8ICAgfCAgICstLSAgICAgICAgICstLSArLS0gfCAgIC0tKwp8IHwgfCB8IHwuICB8
LiAgfC4gICAgICBcLi8gfC4gIHwuICB8LiAgICB8CnwgfCArLSsgKy0tICstLSArLS0gICAgICBW ICArLS0gfCAgICstLSAtLSs =
kurallar
- Standart boşluklar yasaktır.
- Bu kod golf. En kısa kod kazanır.
- Bir seferde birden fazla girdi satırını kabul edemeyen dillerde (ör. JavaScript ile
prompt()
),*
satır ayırıcı olarak (veya başka bir karakter) kullanın .
Erranda
- Örnekte birkaç boşluk eksikti (Bir boşluk, varsa önceki karakterin son boşluklarından ve kendi son boşluklarından oluşmalıdır). Bu şimdi düzeltildi.
prompt
giriş için kullanılır, ancak yalnızca tek bir satırı kabul eder. Girişte yeni bir satır işaretlemek için özel bir karakter kullanabilir miyim ('*' gibi)?