Побудуйте половину кардинальної циклічної квінти


18

Напівкардинальна циклічна квінка - це циклічна квінка з двома станами, один перпендикулярний іншому.

Правила

Ви можете вирішити, яке обертання потрібно здійснити, за годинниковою або проти годинникової стрілки.

Після повернення будь-які прогалини у вашому коді слід замінити пробілами, щоб зберегти позиціонування.

Ваша програма повинна відповідати визначенню спільноти квітки .

Це тому найкоротша програма на кожній мові виграє. Ваша перша програма використовується для вашої кількості байтів.

Стандартні лазівки заборонені.

Приклади

Якщо ваша програма:

$_='print';eval

Тоді наступна ітерація повинна бути або:

$
_
=
'
p
r
i
n
t
'
;
e
v
a
l

або

l
a
v
e
;
'
t
n
i
r
p
'
=
_
$

яка повинна вивести оригінальну програму:

$_='print';eval

Якщо ваша програма:

;$_=';
;$_=';
print

Тоді наступна ітерація повинна бути або:

;;
''t
==n
__i
$$r
;;p

або:

p;;
r$$
i__
n==
t''
 ;;

яка повинна вивести оригінальну програму:

;$_=';
;$_=';
print



1
@dylnan Ні, інший не просить взаємної лайки.
Мартін Ендер

1
Побачивши відповіді поки що, я думаю, що справжньою задачею буде проти годинникової стрілки одна або квітка з більш ніж однією лінією (щоб обертання відрізнялося від переміщення або просто вставлення нових рядків).
Вейджун Чжоу

1
Ви можете зажадати, щоб дві програми були різними. В іншому випадку, лайки, які мають обертальну симетрію, були би достовірними відповідями.
Мартін Ендер

Відповіді:


14

CJam , 19 17 15 байт

{s"_~"+N*""-}_~

Спробуйте в Інтернеті! Спробуйте обертання.

Пояснення

{s"_~"+  e# Standard quine framework. Puts a string representation of the entire
         e# program on the stack.
  N*     e# Riffle linefeeds into the string, which is effectively a clockwise
         e# rotation by 90°.
  ""-    e# Does nothing.
}_~

У поворотному коді ми всюди отримуємо лінійку каналів:

{
s
"
_
~
"
+
N
*
"
"
-
}
_
~

Як зауважила Лінн у попередньому виклику дому Quine, вставляючи linefeeds насправді все ще утворює дійсну quine, тому що канали ліній всередині блоку все одно будуть зберігатися дослівно, а також в "_~"рядку будуть також стрічки рядків, щоб ці два символи в кінці відображалися на своїх власна лінія. Тож {s"_~"+...}_~(з linefeeds) все ще є дійсною рамкою quine (хоча в кінці рядка буде додаткова передача рядків). N*тепер вставляє ще більше каналів рядків у цей рядок, але нас це зовсім не хвилює: тому що тепер ""-у цій рядку є передача рядків, тому вона фактично видаляє всі канали ліній з подання програми. Отже, ми знову закінчуємо горизонтальну форму коду, скасовуючи обертання.



5

> <> , 22 байти

 "2+}>oao#ov*48}}*d3'v

Спробуйте в Інтернеті!

Повернути проти годинникової стрілки:

v
'
3
d
*
}
}
8
4
*
v
o
#
o
a
o
>
}
+
2
"

Спробуйте в Інтернеті!

Перший друкує рядок у зворотному порядку з перерізаними новими рядками, а другий друкує його зворотно без нових рядків.


Це дуже розумно!
Esolanging Fruit

Добре продовжуйте підходити до нього у жорсткому режимі!
Дом Гастінгс

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.