Попробуйте создать простую анимацию ножниц ASCII!
Вызов
Все входные данные будут целыми числами от -31 до 31.
Выводом будет анимация (которая будет выведена где-то , пока предыдущий кадр заменен. GIF-файлы разрешены.), Разделенные (приблизительно) 1 четвертью секунды.
Если вход ( n
) положительный:
- Анимация должна начинаться с
8<
AKA с открытыми ножницами. - Следующий кадр
8=
. Это показывает ножницы "резки". - Тире (метка обрезки) добавляется за ножницами, и анимация повторяется, пока не
n
появятся тире.
Если вход отрицательный:
- Ножницы начинают открываться и обращены влево (как это :)
>8
, сn
пробелами перед ним. - Ножницы закрываются и остаются направленными влево (
=8
). - Ножницы вновь открываются, так как пространство удаляется, и за ножницами добавляется тире.
Если вход равен нулю:
- Выведите только ножницы, открывающиеся и закрывающиеся, за 10 кадров. Они могут быть направлены в любом направлении, если это соответствует.
Это код-гольф , поэтому выигрывает самое короткое представление в байтах. (Даже если ваша заявка явно не выиграет из-за какого-то новомодного «языка игры в гольф», мы все равно хотели бы это увидеть.)
Сообщения об ошибках допускаются, если само сообщение об ошибке не мешает анимации.
Пример входных и выходных пар:
(Я выделил кадры для ясности, но между каждым кадром должно быть приблизительно 0,25 секунды)
Input: 1
Output:
8<
8=
-8<
Input: 2
Output:
8<
8=
-8<
-8=
--8<
Input: 5
Output:
8<
8=
-8<
-8=
--8<
--8=
---8<
---8=
----8<
----8=
-----8<
Input: 0
Output:
8<
8=
8<
8=
8<
8=
8<
8=
8<
8=
Input: -2
Output:
>8
=8
>8-
=8-
>8--
Input: -3
Output:
>8
=8
>8-
=8-
>8--
=8--
>8---
Наслаждайтесь!
Ответы:
SOGL V0.12 , 53 байта
Попробуй здесь!
источник
MATL ,
595857 байтПопробуйте это в MATL Online! Или посмотрите пример запуска из автономного компилятора:
источник
JavaScript (ES2017) + HTML, 165 + 10 байт
-16 байт @Shaggy
Попробуйте это в следующем фрагменте:
источник
alert
каждый «кадр» может не соответствовать спецификации, вы можете получить разъяснения по этому поводу.)alert
поскольку требования состоят в том, чтобы кадры появлялись с интервалами ~ 0,25 с, чтоalert
не будет поддерживаться без дальнейшего ввода данных пользователем.TI-BASIC, 173 байта
Прекращение входа 0 в другом кадре было очень интересным препятствием!
Так как TI-BASIC не любит пустые строки, это поддерживает по крайней мере один фиктивный символ слева от ножниц, первый из которых постоянно является пробелом; надеюсь, чтобы избежать подсчета этого как части n пробелов для отрицательных входных данных, эта программа начинает печатать с самого правого столбца первой строки, а затем оборачивает оставшуюся часть строки вниз, чтобы начать там действительное поле анимации, свежее с первый столбец
Некоторые примечания для экзотического устройства: размер кода TI-BASIC измеряется токенами, а не символами. Для последовательных сравнений между калькуляторами мы обычно игнорируем количество байтов, относящихся к длине заголовка (например, мы вычитаем 8 из PROGRAM: SCISSORS). Кроме того, для подпрограмм, которые ведут себя хорошо на домашнем экране (по большей части испытывающих недостаток в структурах управления), мы дополнительно исключаем размер пустой программы, чтобы «сохранить» и 9 байтов. Эта программа, в частности, не может быть напечатана на домашнем экране, так что свобода не будет взята.
источник
Октава ,
190186 байтПопробуйте онлайн! (примечание:
clc
не работает в TIO, так что это просто все кадры анимации, выводимые последовательно). Спасибо за @LuisMendo за то, что я узнал о функцииe(...)
в Octave, которая равнаexp(1)*ones(...)
.Оказывается, что встроенные присваивания возвращают только измененные записи массива, а не весь массив. Это означает, что подобные конструкции
q(k(i+1)+=s)
невозможны, поэтому программа почти похожа на MATLAB. На самом деле, запись в MATLAB только немного длиннее,MATLAB,
198195 байтовисточник
+ones
на более уродливый+~e
. Также в Octave и в Matlab замените[i i+1]
наi:i+1
.e(...)
? Я не думаю, что я когда-либо чувствовал потребность в матрице m-by-ne
. Делает для хорошего гольфа, хотя.Чистый , 294 байта
Попробуйте онлайн!
Обратите внимание, что это не работает на TIO, ссылка только для целей презентации.
Ваши результаты могут отличаться, если у вас есть
CLOCK_PER_TICK
константа1000
, отличная от значения по умолчанию для Windows XP Clean.источник
Python 2 , 170 байт
Попробуйте онлайн!
источник
(approximately) 1 quarter of a second
; почему бы не использовать время сна.2
секунд и сохранить байт?Рубин, 169 байт
Довольно много объяснений, когда вы копаетесь в этом, по крайней мере, на мой взгляд. Программа должна быть запущена на компьютере с командой / псевдонимом cls.
Попробуйте онлайн! (Из-за ограничений, упомянутых выше, пришлось переписать метод system () только для этого скрипта.)
Я пытался использовать
Но это просто напечатанный невидимый персонаж, кто-нибудь знает почему?
источник