Asciimation Прыжки Джек


28

Это мой первый вызов, поэтому я держу его довольно простым.

Если вы когда-либо набирали telnet towel.blinkenlights.nlв командной строке и нажимали ввод, вы испытаете радость asciimation. Asciimation довольно просто делает анимацию с помощью ascii art. Сегодня мы сделаем очень простую оценку человека, занимающегося прыжковыми домкратами.

Будет две картинки ascii, которые мы соберем в одну asciimation. Номер 1:

_o_
 0
/ \

Номер 2:

\o/
_0_
<blank line>

Обратите внимание, что второй имеет пустую строку в конце.

Итак, ваша программа должна выполнить следующие шаги:

  1. Очистите экран консоли.
  2. Распечатайте правильное изображение ascii art.
  3. Установите флаг или что-то, чтобы вы знали, чтобы сделать другое изображение в следующий раз.
  4. Подождите минуту (около секунды).
  5. Продолжайте в 1.

правила

  • Ваша программа должна быть (теоретически) бесконечным циклом.
  • Используемый вами язык программирования должен быть создан до того, как этот вызов был опубликован.
  • Это , поэтому выигрывает самый короткий код в байтах.
  • Применяются стандартные лазейки.

Наслаждайтесь!


Могут ли быть пробелы в <пустой строке>?
Якуб

1
Должно ли это быть независимым от платформы, потому что команда очистки Linux ( clear) отличается от команды Windows ( cls)
Beta Decay

1
Пустая строка только для объяснения позиционирования? Если печать выполняется с верхней части экрана, чтобы пустая строка не имела видимых различий, можно ли ее опустить?
Трихоплакс

@Jakube да, могут быть пробелы.
bitsbites

1
@trichoplax да. Пустая строка просто указывает на то, что голова должна оставаться в том же положении.
bitsbbites

Ответы:


29

CJam, 51 45 42 38 36 байт

"c\o/
_0_""^[c_o_
 0
/ \^["{_o\6e4m!}g

Выше используется обозначение каретки; последовательность ^[на самом деле является символом ASCII с кодовой точкой 27.

Я позаимствовал escape-последовательность ( ^[c) из ответа @DomHastings ( с его разрешения ), чтобы сохранить 4 байта.

верификация

Вы можете воссоздать файл следующим образом:

base64 -d > jj.cjam <<< ImNcby8KXzBfIiIbY19vXwogMAovIFwbIntfb1w2ZTRtIX1n

Чтобы запустить код, загрузите интерпретатор CJam и выполните это:

java -jar cjam-0.6.5.jar jj.cjam

Это будет работать на любом терминале, который поддерживает console_codes или соответствующее подмножество. 1

Как это работает

e# Push both jumping jacks on the stack.

"c\o/
_0_"

"^[c_o_
 0
/ \^["

e# When chained together, they contain two occurrences of the string "\ec",
e# which resets the terminal. Encoding the ESC byte in the second string
e# eliminates the need two escape a backslash before the string terminator.

{         e# Do:
  _o      e#   Copy the jumping jack on top of the stack and print the copy.
  \       e#   Swap the order of the jumping jacks.
  6e4m!   e#   Calculate the factorial of 60,000 and discard the result.
          e#   This takes "about a second".
}g        e# Since the discarded factorial was non-zero, repeat the loop.

1 Прыгающие домкраты будут выглядеть лучше, если вы спрятали курсор терминала перед запуском программы. Например, в Konsole вы можете установить цвет курсора в соответствии с цветом фона. Это должно быть сделано через настройки вашего терминала, так как ^[cперезагружает терминал.


36
+1 только за Calculate the factorial of 60,000 and discard the result. This takes "about a second".;)
ETHproductions

Может быть 2Fm*, это хорошая альтернатива на один байт 6e4m!для «бессмысленной операции, которая возвращает истинное значение и занимает около секунды для вычисления».
Линн

@Mauris Я пробовал что-то похожее e!, но они, кажется, запомнились. После первой итерации у бедного Джека случается сердечный приступ ...
Деннис

10

Pyth - 41 40 39 байт

.VZ"\x1b[H\x1b[J"@c"_o_
 0
/ \\\o/
_0_"Tb .p9

(Я считаю, что \x1bэто один байт, так как SO уничтожает специальные символы).

Очевидно, что он не работает в режиме онлайн, поскольку его а) бесконечный цикл и б) использует коды выхода терминала.

#                Infinite loop
 "..."           Print escape sequences to clear screen
 @               Modular indexing
  c     T        Chop at index ten into the constituent frames
   "..."         Frames 1 & 2 concatenated (Pyth allows literal newlines in strings)
  ~              Post assign. This is an assign that returns the old value.
   h             Increment function. Putting it after an assign makes it augmented assign.
   Z             Variable auto-initialized to zero.
 .p9             Permutations(range(9), 9). Takes about a second on my machine.

Я был удивлен, узнав, что augmented-assign работает с post-assign. Пиф потрясающий.


использовать в .V0качестве бесконечной петли
Jakube

Вы можете сохранить байт сейчас, когда ОП подтвердил, что пустая строка не должна быть явно напечатана
trichoplax

@ Якуб, который, кажется, ничего не спасает.
Maltysen

Ваше объяснение не соответствует вашему коду: P
Beta Decay

9

QBasic, 58 байт

Протестировано на QB64 .

CLS
?"_o_"
?0
?"/ \"
SLEEP 1
CLS
?"\o/"
?"_0_"
SLEEP 1
RUN

Правильный язык для проблемы может быть на удивление конкурентоспособным, даже если он обычно многословный. ?Ярлык для PRINTпомогает, конечно , тоже. CLSэто сло ухо сек Creen; RUNбез аргументов перезапускает программу, что является кратчайшим способом получить бесконечный цикл.

Единственный другой трюк здесь - это печать 0в середине первого изображения. QBasic ставит пробел перед (и после) неотрицательными числовыми значениями, когда печатает их, что приводит к 0 . Сохранено 3 символа " 0".

Я также могу указать, что задержка в этом коде буквально секунда и не зависит от машины. ; ^ P


2
Я помню, как меня раздражали окружающие пространства при печати номеров в различных версиях Бейсика. Приятно видеть, что есть хорошее применение для этого ...
trichoplax

7

Perl (* nix) , 54 байта

sleep print"\x1bc",$-++%2?'\o/
_0_
':'_o_
 0
/ \
'while 1

( \x1bсчитается за 1 байт, но для упрощения тестирования его удалось избежать.) Вышеизложенное было проверено с помощью Bash и сокращено еще на один байт благодаря @Dennis !

Perl (Windows) , 56 байт

sleep print"\x1b[2J",$-++%2?'\o/
_0_
':'_o_
 0
/ \
'while 1

Спасибо @Jarmex за его тестирование и советы!


2
Боюсь, что это не работает в Windows, но вы можете уйти только на 1 байт с помощью:, print"@[2J"заменяя @ внутри кавычек на ASCII 27 (для целей тестирования это print"\033[2J"может быть проще).
Jarmex

Вы можете заменить \eего буквальным байтом ESC. - Не возражаешь, если я использую \ecтрюк в своем ответе?
Деннис

@ Денис, конечно, потому "\e"что в любом случае это всего лишь ярлык для этого. Пожалуйста продолжай!
Дом Гастингс

6

Javascript (ES6), 109 93 79 70 байт + HTML, 12 10 байт = 120 106 91 80 байт

Довольно просто. Использует строки шаблона для хранения изображений и переключает логическое значение, чтобы определить, какое использовать.

ПРИМЕЧАНИЕ. Это решение может быть недопустимым, поскольку оно фактически не использует консоль. Однако я не верю, что возможно очистить консоль браузера с помощью JS, по крайней мере, при использовании Firefox.

a=!1,setInterval(_=>O.innerHTML=(a=!a)?`_o_ 
 0
/ \\`:`\\o/ 
_0_`,1e3)
<pre id=O>


1
@orlp Code создает анимированного человека. (Chrome @ Windows). Однако это основано на GUI, а не на консоли. Не может считаться действительным как таковым.
Джастин

3
1. На моем компьютере это нормально работает в Firefox, но не в Chrome, поэтому я думаю, что вы должны пометить его как ECMAScript 6, чтобы избежать путаницы. 2. Если вы <pre id="a"/>вставите часть HTML, вам не нужны <pre>теги в коде.
Деннис

1
Или, еще лучше, избавиться от HTML и заменить document.getElementById`a` на document.body.
NinjaBearMonkey

1
Я получил 87 байтов, делая HTML <pre>и делая document.all[4]. Это позволяет вам избавиться от строки оболочки и просто сделать это innerHTML=a?`...`:`...`}.
NinjaBearMonkey

1
Это перестало работать для меня на Chrome
бета-распад

5

Баш, 86 84 байта

while sleep 1;do printf "\e[2J_o_\n 0\n/ \\";sleep 1;printf "\r\e[2J\o/\n_0_\n";done

3

Python 2, 99 байт

Работает на Windows

import os,time
g=0
while 1:os.system("cls");print["\\o/\n_0_","_o_\n 0 \n/ \\"][g];time.sleep(1);g=~g

Для машин UNIX добавьте два байта:

import os,time
g=0
while 1:os.system("clear");print["\\o/\n_0_","_o_\n 0 \n/ \\"][g];time.sleep(1);g=~g

3

awk - 95 92 86 84 83

END{
    for(;++j;)
        system("clear;printf '"(j%2?"_o_\n 0\n/ \\":"\\o/\n_0_")"';sleep 1")
}

Хорошая тренировка: D Просто подумала, выполнимо ли это. Нет цен, чтобы получить хотя ...;)

Если кто-то хочет проверить это: после запуска программы вы должны нажать Ctrl + D (конец ввода), чтобы фактически запустить блок END. Чтобы прекратить это, я должен использовать Ctrl + Z.

У меня также есть это, которое составляет всего 74 байта, но оно начинается с паузы в секунду, которая не является желаемым поведением, я думаю

END{
    for(;1;print++j%2?"_o_\n 0\n/ \\":"\\o/\n_0_")
        system("sleep 1;clear")
}

1
Измеряет ли сон интервалы в три секунды?
Трихоплакс

Боже ты мой. спасибо за подсказку :) Или, если это не была подсказка: нет, это спало только 0,33 секунды.
Cabbie407

Я не знаю awk, но казалось, что он будет измеряться в считанные секунды. :)
Трихоплакс

1
Это выглядит так забавно, если он движется быстрее, что я забыл про
игру

команда сна не awk, это bash, кстати
Cabbie407

2

Пакет - 82 байта

Редактировать: отключил команду тайм-аут и удалил лишнюю новую строку.

cls&echo _o_&echo  0&echo / \&timeout>nul 1&cls&echo \o/&echo _0_&timeout>nul 1&%0

Я видел 2 других похожих ответа, поэтому я не хотел публиковать это, но это мой первый гольф.


1
Но голое timeout 1будет выводить много незапрошенного вывода на консоль
edc65

Правда у меня был дополнительный выход. Ред.
Петр Ленкефи

1
Может быть, >mulэто ошибка типа, или, может быть, вы не знаете, что это nulтакое. ru.wikipedia.org/wiki/Null_device
edc65

@ edc65 Обратные копии копирования-вставки, а не тестирования. Спасибо!
Питер Ленкефи

2

BBC BASIC, 75 байтов

Обратите внимание, что токенизация сбрасывает его до 75 байт. Пробелы добавляются в IDE.

      g=0
   10 IFg=0THENPRINT"\o/":PRINT"_0_"ELSEPRINT"_o_":PRINT" 0 ":PRINT"/ \"
      g=1-g:WAIT 100CLS:GOTO10

Свойства, показывающие размер программы


2

JavaScript ES6, 100 95 байт

(f=_=>{console.log(_?`_o_
 0
/ \\`:`\\o/
_0_`)
(b=setTimeout)(q=>(clear(),b(b=>f(!_))),1e3)})()

Логи в консоль. Проверено на Safari Nightly


2

Пакетный, 151 130 118 байт

cls
@echo _o_
@echo  0
@echo / \
@PING -n 2 127.0.0.1>NUL
cls
@echo \o/
@echo _0_
@PING -n 2 127.0.0.1>NUL
%0

Вы можете сэкономить несколько байтов сейчас, когда ОП подтвердил, что пустая строка не должна быть явно напечатана
trichoplax

Вы должны иметь возможность играть в гольф с 12 персонажами, используя @PING 127.0.0.1 -n 2>NULвместо этого. По умолчанию Ping ожидает около секунды ожидания между попытками, так что с точностью до нескольких миллисекунд это будет достаточно близко для этой задачи. Справка
AdmBorkBork

Гольф оторвал 12 байтов благодаря TimmyD
Макс

2

CBM 64 BASIC V2, 121 119 112 117 байт

2?CHR$(147)+"\o/":?" 0":?"/ \"
3GOSUB7
4?CHR$(147)+"_o_":?"_0_"
5GOSUB7
6RUN
7A=TI
8IFTI-A<60THENGOTO8
9RETURN

Очищает ли ?CHR$(147)экран? Если это так, вы можете сэкономить 2 байта теперь, когда ОП подтвердил, что пустая строка не должна быть явно напечатана
trichoplax

Это не производит первый кадр анимации (то есть, где руки находятся на одном уровне).
Психонаут

Вы правы ... Я собираюсь это исправить!
Макс

1

Юлия, 70 байт

ОС Windows , заменяя clearс cls, благодаря undergroundmonorail)

n(i=1)=(sleep(1);run(`cls`);print(i>0?"_o_
 0
/ \\":"\\o/
_0_");n(-i))

В Linux 72 байта

n(i=1)=(sleep(1);run(`clear`);print(i>0?"_o_
 0
/ \\":"\\o/
_0_");n(-i))

При этом используются реальные переводы строк вместо \nсохранения байта; в противном случае, iэто либо 1, либо -1 в качестве «флага», и он использует рекурсию для достижения бесконечного цикла. Назовите это как n(1)или просто n().

Также run(`clear`)/ run(`cls`)использует команду оболочки для очистки окна, потому что у Джулии нет встроенной команды очистки окна.


Если вы запускаете это в Windows, вы сохраняете два байта, изменяя clearна cls(я полагаю, я ничего не знаю о Джулии).
подземный

@undergroundmonorail - Спасибо, но я использую Ubuntu, cls не работает. Надеюсь, Юлия решит реализовать настоящую функцию очистки терминала.
Глен О

@GlenO На Windows clsработает (см. Мой ответ)
бета-распад

1

Пакет Windows, 83 89

Редактировать убрал пустую строку после уточнения по ОП

@cls&echo _o_&echo  0&echo./ \&timeout>nul 1&cls&echo \o/&echo _0_&timeout>nul 1&%0

Если вы избавитесь от пустой линии в прыгающем человеке (который все равно не виден), то результат будет 83

Примечание: timeoutотсутствует в Windows XP. Он работает в Vista или более новых версиях. Более того, timeoutон не является точным для второго, поэтому это идеальный выбор для реализации шага 4 (подождите минутку ( около секунды ))


1

Javascript (ES6), 82 байта

Модификация моего предыдущего ответа , использующая консоль. Частично работает в Firefox, но очищает только консоль в Chrome, AFAIK.

a=!0,c=console,setInterval(_=>c.log(c.clear(a=!a)|a?`_o_
 0
/ \\`:`\\o/
_0_`),1e3)

Как всегда, предложения приветствуются!


Любить это! Через это я замечаю, что Chrome выполняет ES6 для меня и сейчас!
Дом Гастингс

@DomHastings Я никогда раньше не разрабатывал в Chrome, но я слышал, что по умолчанию он не поддерживает ES6, поэтому я был так же удивлен, как и вы! :)
ETHproductions

1

JavaScript, 92 91 89 байт

x=0;setInterval(function(){console.log("\033c"+["_o_\n 0\n/ \\","\\o/\n_0_"][x^=1])},1e3)
  • Нет функций ES6 (но будет значительно короче с ними)
  • Работает с Node.js в Linux (не знаю о других средах)
  • Частично работает в консоли Chrome ( cотображается вместо очистки консоли, прерывая вывод)

Удаление "\033c"+из приведенного выше кода, следующее работает в браузере, но не очищает консоль.

x=0;setInterval(function(){console.log(["_o_\n 0\n/ \\","\\o/\n_0_"][x^=1])},1e3)


Впечатляющая работа! Используя функции ES6, я получаю 77: x=0;setInterval(_=>console.log("\033c"+[`_o_<line break> 0<line break>/ \\`,`\\o/<line break>_0_`][x^=1]),1e3)По какой-то причине JS не позволяет мне передавать console.logфункцию и человека ASCII в качестве дополнительного параметра.
ETHproductions

@ETHproductions Спасибо! Я думал о том, чтобы сделать это в ES6, но никогда не использовал его и не установив io.js, я решил не делать этого. Насколько не будучи в состоянии пройти console.logк setInterval, причина в том , что мы не передаем в функцию, но называть его. Это будет оцениваться , прежде чем setIntervalбыл вызван, и с тех пор console.logне возвращается, она по существу проездом undefinedк setInterval. Есть смысл? И спасибо за сокращение его!
Nateowami,

Я понимаю, что вы говорите, но согласно этой странице , этот код должен работать: x=0;setInterval(console.log,1e3,"\033c"+[_o_ <перевод строки> 0 <перевод строки> / \ `, \\o/<line break>_0_] [x ^ = 1])` На самом деле, это не приносит ошибка, если я заменю console.logна alert.
ETHproductions

Ах, я понимаю, что вы говорите. Я думаю, что проблема в том, что нам нужно каждый раз регистрировать что-то другое, но "\033c"+[`_o_<line break> 0<line break>/ `,\\o/<line break>_0_`][x^=1]оценивается перед вызовом setInterval.
Nateowami


0

Далее 86 байт

Требуется GNU Forth для экранированных строк. Чтобы запустить не-GNU Forth, просто измените S\"на S", и экранированные символы не будут печататься правильно.

: P PAGE TYPE CR 999 MS ;
: R BEGIN S\" \\o/\n_0_" P S\" _o_\n 0 \n/ \\" P 0 UNTIL ; R


0

CBM BASIC v2.0 (68 знаков)

0?"S_o_q||0q||N M":goS1:?"SMoN":?"_0_":goS1:gO
1wA161,255,pE(161):reT

Вышесказанное требует некоторого объяснения, так как разметка Stack Exchange неправильно представляет символы PETSCII:

  • Программа показана здесь для удобства в нижнем регистре, но ее можно и нужно вводить и запускать в верхнем регистре на Commodore 64.
  • Первый и третий символы «S» на самом деле в обратном видео, и производится нажатием CLRклавиши ( SHIFT+ HOME).
  • Символы "q" на самом деле находятся в обратном видео и создаются нажатием курсора вниз ( CRSR ⇓).
  • "|" символы на самом деле в обратном видео, и производится нажатием левого курсора ( SHIFT+ CRSR ⇒).

0

пчелиный воск ,119 113 байт

ph0`J2[`}ghq'-<gh0N}`0`}gN`/o\`Ngh0`J`<
>g}`o`}N` `0>'d`0 `N`/ \`0hg>-'phg}`[2`b
dF1f+5~Zzf(.FP9f..F3_#     d   <

Объяснение важных частей программы:

left to right  right to left

3FBf   or       fBF3          27       ASCII code for (esc)
3             [x,x,3]•        set lstack 1st to 3
 F            [3,3,3]•        set lstack to 1st
  B           [3,3,27]•       1st=1st^2nd
   f                          push lstack 1st on gstack
——————
9PF.(f   or    f(.FP9         102400   counter to roughly match a wait time
                                       of 1 s on my i5 2410M Laptop
9             [x,x,9]•        set lstack 1st to 9
 P            [x,x,10]•       increment 1st
  F           [10,10,10]•     set lstack to 1st
   .          [10,10,100]•    1st=1st*2nd
    (         [10,10,102400]• 1st=1st<<2nd (100<<10=102400, arithmetic shift left)
     f                        push lstack 1st on gstack
——————
zZ~5+f   or    f+5~Zz         95       ASCII for '_'
z             [0,0,0]•        initialize lstack to zero
 Z            [0,0,90]•       get value from relative coordinate (0,0),
                              which is the location of `Z` itself, ASCII(Z)=90
  ~           [0,90,0]•       flip 1st and 2nd lstack values
   5          [0,90,5]•       set lstack 1st to 5 
    +         [0,90,95]•      1st = 1st+2nd
     f                        push lstack 1st on gstack

Они fпомещают значения в gstack (глобальный стек) для последующего использования. Эти значения доступны с помощью 0gh(или зеркальных hg0) и hg( gh) инструкций. hвращает gstack вверх, gсчитывает верхнее значение gstack и помещает его в lstack (локальный стек) пчелы (указатель инструкции).

}`o`}N` 0 `N`/ \`                      sequence to print the standing man

N`\o/`Ng}`0`}N                         sequence to print the jumping man

}`[2J`                        equivalent to the ANSI escape sequence (esc)[2J
                              to clear the screen
>-'p  or >-'q  or >  p        loop for counting down (wait 1 s)
d  <      b  <    d'-<

Подробное объяснение следует позже, если это необходимо. Может быть, с анимацией.


0

Deadfish , неконкурентоспособный (658 байт)

iiisisdddddoiiiiiiiiiiiiiiiioddddddddddddddddodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoddddsddddoiiiiiiiiiiiiiiiioddddddddddddddddoddddddddddddddddddddddodddsddodddddddddddddddoddddddddddddddddddddddsddddddddoddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoosddddddddoiiiiiiiiiiiiiiiiiiioddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddodddddddddddddddddddddddddddddddddddddosdddddodddddddddddddddddddddddddddddddddddddddddddddddoddddddddddddddddddddddddddddddddddddddsdddddodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoo

Это неконкурентное решение , так как оно не полностью соответствует требованиям вызова. Deadfish - очень странный интерпретируемый язык, который имеет только 4 команды и аккумулятор. Аккумулятор представляет собой однобайтовую переменную, инициализированную в 0. 4 команды:

  • i = Увеличить аккумулятор a = a + 1
  • d = Уменьшить аккумулятор a = a - 1
  • s = Площадь аккумулятора a = a * a
  • o = Вывести аккумулятор print(a)

Поскольку язык не включает повторение, очистку экрана или задержки, он не соответствует требованиям. Ожидаемый результат:

_o_
 0 
/ \
(Blank line, not from the program)
\o/
_0_
(Blank line, not from the program)
(Blank line, not from the program)

Объяснение кода:

_  iiisisdddddo
o  iiiiiiiiiiiiiiiio
_  ddddddddddddddddo
\n dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddo
   ddddsddddo
0  iiiiiiiiiiiiiiiio
   ddddddddddddddddo
\n ddddddddddddddddddddddo
/  dddsddo
   dddddddddddddddo
\  ddddddddddddddddddddddsddddddddo
\n ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddo
\n o
\  sddddddddo
o  iiiiiiiiiiiiiiiiiiio
/  ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddo
\n dddddddddddddddddddddddddddddddddddddo
_  sdddddo
0  dddddddddddddddddddddddddddddddddddddddddddddddo
_  ddddddddddddddddddddddddddddddddddddddsdddddo
\n dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddo
\n o

Интерпретатор Deadfish в Python 3:

c=input()
o=""
a=0
for p in range(0,len(c)):
    i=c[p]
    if i=="i":
        a += 1
    if i=="d":
        a+=-1
    if i=="s":
        a=a*a
    if i=="o":
        o+=chr(a)
print(o)

0

Noodel , неконкурентный 24 байта

Неконкурентный, потому что Нудель родился после того, как был создан вызов :)

”ṛ|ọBCḊCBCḣ“\o/¶_0_ḷėçḍs

Попытайся:)

Как это работает

”ṛ|ọBCḊCBCḣ              # Creates a string that gets decompressed into "_o_¶¤0¤¶/¤\" and places it into the pipe.
           “\o/¶_0_      # Creates a string and places it into the pipe.
                   ḷ     # Unconditionally loop the code up to a new line or end of program.
                    ė    # Takes what is in the front of the pipe and puts it into the back.
                     ç   # Clears the screen and prints.
                      ḍs # Delays for one second.

В настоящее время нет версии Noodel, которая поддерживает синтаксис, использованный в этой задаче. Вот версия, которая делает:

24 байта

\o/¶_0_ _o_¶¤0¤¶/¤\ḷçėḍs

<div id="noodel" code="\o/¶_0_ _o_¶¤0¤¶/¤\ḷçėḍs" input="" cols="5" rows="5"></div>

<script src="https://tkellehe.github.io/noodel/noodel-latest.js"></script>
<script src="https://tkellehe.github.io/noodel/ppcg.min.js"></script>

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.