승천 점프 잭


28

이것이 나의 첫 번째 도전이므로 상당히 간단하게 유지하고 있습니다.

telnet towel.blinkenlights.nl커맨드 라인에 타이핑 을하고 엔터를 눌렀다면, 당신은 기쁨의 기쁨을 경험할 것입니다. 아시 이메이션은 아주 간단하게 아스키 아트로 애니메이션을하는 것입니다. 오늘 우리는 점프 잭을하는 사람의 매우 기본적인 asciimation을 할 것입니다.

우리가 하나의 asciimation에 넣을 두 개의 ascii 그림이있을 것입니다. 번호 1 :

_o_
 0
/ \

2 번:

\o/
_0_
<blank line>

두 번째는 끝에 빈 줄이 있습니다.

따라서 프로그램은 다음 단계를 수행해야합니다.

  1. 콘솔 화면을 지우십시오.
  2. 올바른 아스키 아트 이미지를 인쇄하십시오.
  3. 다음에 다른 이미지를 볼 수 있도록 깃발이나 무언가를 설정하십시오.
  4. 잠시만 기다리십시오 (약 1 초).
  5. 1에서 계속하십시오.

규칙

  • 프로그램은 (이론적으로) 무한 루프 여야합니다.
  • 이 challange를 게시하기 전에 사용하는 프로그래밍 언어가 작성되어 있어야합니다.
  • 이것은 이므로 바이트 단위의 가장 짧은 코드가 이깁니다.
  • 표준 허점이 적용됩니다.

즐겨!


<빈 줄>에 공백이있을 수 있습니까?
Jakube

1
리눅스 clear 명령은 (때문에이 플랫폼 독립적해야합니까 clear)는 Windows 일 (다릅니다 cls)
베타 붕괴

1
빈 줄은 위치를 설명하기위한 것일까 요? 빈 줄이 눈에 띄지 않게 화면 상단에서 인쇄하는 경우 생략 할 수 있습니까?
trichoplax

@Jakube 네, 공백이있을 수 있습니다.
bitsnbites

1
@trichoplax 예. 빈 줄은 머리가 같은 위치에 있어야 함을 나타냅니다.
bitsnbites

답변:


29

CJam, 51 45 42 38 36 바이트

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

위의 캐럿 표기법을 사용합니다. 시퀀스 ^[는 실제로 코드 포인트가 27 인 ASCII 문자입니다.

나는 이스케이프 시퀀스 (차용 한 ^[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
Calculate the factorial of 60,000 and discard the result. This takes "about a second".; 1에 대해서만 +1
ETHproductions

어쩌면 "진실한 값을 반환하고 계산하는 데 1 초 정도 걸리는 무의미한 작업" 2Fm*6e4m!대한 1 바이트 길이의 짧은 대안 일 수 있습니다.
Lynn

@Mauris와 비슷한 것을 시도했지만 메모 된 e!것처럼 보입니다. 첫 번째 반복 후 가난한 잭은 심장 마비
Dennis

10

Pyth- 41 40 39 바이트

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

( \x1bSO는 특수 문자를 파괴하므로을 1 바이트로 계산합니다 ).

a) 무한 루프와 b) 터미널 이스케이프 코드를 사용하기 때문에 온라인에서 작동하지 않습니다.

#                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.

증강 할당이 할당 후와 함께 작동한다는 것을 알고 놀랐습니다. Pyth는 대단합니다.


.V0무한 루프로 사용
Jakube

당신은 영업 이익은 빈 라인이 명시 적으로 인쇄 할 필요가 없다는 것을 확인했습니다 이니까 바이트를 저장할 수 있습니다
trichoplax

@Jakube는 아무것도 저장하지 않는 것 같습니다.
Maltysen

귀하의 설명이 귀하의 코드와 일치하지 않습니다 : P
Beta Decay

9

Q 기본, 58 바이트

QB64에서 테스트되었습니다 .

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

문제에 대한 올바른 언어는 일반적으로 장황하더라도 놀라 울 정도로 경쟁력이 있습니다. ?에 대한 바로 가기는 PRINT물론, 너무 도움이됩니다. CLS이다 CLS creen는; RUN인수가 없으면 무한 루프를 얻는 가장 짧은 방법 인 프로그램을 다시 시작합니다.

여기서 유일한 다른 트릭 0은 첫 번째 그림의 중간 부분을 인쇄 하는 것입니다. QBasic은 음수가 아닌 숫자 값을 인쇄 할 때 앞에 그리고 뒤에 공백을 두어 결과를 얻습니다 0 . 3 자 이상 저장했습니다 " 0".

또한이 코드의 지연은 문자 그대로 두 번째 이며 기계 의존적이지 않다는 것을 지적 할 수도 있습니다 . ; ^ P


2
다양한 버전의 BASIC에서 숫자를 인쇄 할 때 주변 공간에 짜증이 나는 것을 기억합니다. 니스는 ... 그것을위한 좋은 사용이 볼
trichoplax

7

Perl (* nix) , 54 바이트

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

( \x1b1 바이트로 계산되지만 더 쉬운 테스트를 위해 이스케이프 처리되었습니다.) 위의 내용은 Bash로 테스트되었으며 @Dennis 덕분에 다른 바이트로 단축되었습니다 !

Perl (Windows) , 56 바이트

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

테스트 및 조언에 대한 @Jarmex 에게 감사합니다 !


2
Windows에서는 작동하지 않지만 두려워하는 print"@[2J"따옴표 안의 @을 ASCII 27로 바꾸면 다음 과 같이 1 바이트 만 더 얻을 수 있습니다 (테스트 목적 print"\033[2J"으로 더 쉬울 수 있음).
Jarmex

\e리터럴 ESC 바이트로 바꿀 수 있습니다 . - \ec답변에 트릭을 사용해도 될까요?
Dennis

@Dennis는 물론 "\e"어쨌든 바로 가기 때문 입니다. 진행하시기 바랍니다!
Dom Hastings

6

자바 스크립트 (ES6), 109 93 79 70 바이트 + HTML, 12 10 바이트 = 120 106 91 80 바이트

매우 간단합니다. 템플릿 문자열을 사용하여 이미지를 저장하고 부울 값을 토글하여 사용할 이미지를 결정합니다.

참고 : 이 솔루션은 실제로 콘솔을 사용하지 않으므로 유효하지 않을 수 있습니다. 그러나 적어도 Firefox를 사용하는 동안 JS를 사용하여 브라우저 콘솔을 지우는 것이 가능하지 않다고 생각합니다.

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>을 입력하면 코드에 태그가 필요하지 않습니다 .
Dennis

1
또는 더 나은 아직 HTML을 없애 및 교체 document.getElementById`a` 와 함께 document.body.
NinjaBearMonkey

1
HTML을 <pre>만들고 수행 하여 87 바이트를 얻었습니다 document.all[4]. 이것은 래퍼 문자열을 제거하고 그냥 만들 수 있습니다 innerHTML=a?`...`:`...`}.
NinjaBearMonkey

1
이 크롬에 나를 위해 작동이 중지되었습니다
베타 붕괴

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

파이썬 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 시스템의 경우 2 바이트를 추가하십시오.

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
수면은 3 초의 간격을 측정합니까?
trichoplax

세상에. 힌트 주셔서 감사합니다 :) 또는 힌트가 아닌 경우 : 아니요, 0.33 초만 잤습니다.
Cabbie407

나는 awk을 모른다. 그러나 그것은 몇 초 안에 측정 될 것 같았다. :)
trichoplax

1
더 빨리 움직이면 너무 재미있어 보입니다. 거기서 골프를 잊어 버렸습니다. D
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는 콘솔에 요청하지 않은 많은 결과를
낼 것이다

사실, 여분의 출력이있었습니다. 편집했습니다.
피터 Lenkefi

1
어쩌면 >mul그것은 유형의 오류, 또는 어쩌면 당신은 모르는 nul것입니다. en.wikipedia.org/wiki/Null_device
edc65

@ edc65 복사 붙여 넣기의 백 드로우이며 테스트하지는 않습니다. 고맙습니다!
피터 Lenkefi

2

BBC 기본, 75 바이트

토큰 화는이를 75 바이트로 줄입니다. 공백은 IDE에 의해 추가됩니다.

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

프로그램 크기를 보여주는 속성


2

자바 스크립트 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

@PING 127.0.0.1 -n 2>NUL대신 12자를 사용하여 골프를 칠 수 있어야합니다 . 핑은 기본적으로 시도 사이에 1 초 정도 대기하므로,이 챌린지에 충분히 가깝게 정확하고 몇 밀리 초 내에 있습니다. 참조
AdmBorkBork

TimmyD 덕분에 12 바이트가 줄었습니다.
Max

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

이것은 첫 번째 애니메이션 프레임 (즉, 팔이 수평 인 위치)을 생성하지 않습니다.
Psychonaut

네 말이 맞아 ... 내가 고칠거야!
Max

1

줄리아, 70 바이트

( undergroundmonorail 덕분 에 Windows 에서로 대체 clear하여 cls)

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`)줄리아가 내장 된 윈도우 clear 명령이 없기 때문에, 창을 취소 쉘 명령을 사용합니다.


Windows에서 이것을 실행하면 (나는 가정합니다, Julia에 대해 아무것도 모릅니다) 로 변경 clear하여 2 바이트를 절약 cls합니다.
undergroundmonorail

@undergroundmonorail-고맙지 만 Ubuntu를 사용하면 cls가 작동하지 않습니다. 바라건대 Julia는 실제 터미널 지우기 기능을 구현하기로 결정했습니다.
Glen O

@GlenO Windows에서 cls작동합니다 (내 답변 참조)
Beta Decay

1

윈도우 배치, 83 89

OP로 설명 후 빈 줄을 제거하여 수정

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

점프하는 사람의 빈 줄을 제거하면 (어쨌든 볼 수 없음), 점수는 83입니다

참고 : timeoutWindows XP에는 없습니다. Vista 또는 최신 버전에서 작동합니다. 또한 timeout초에 정확하지 않으므로 4 단계를 구현하는 것이 가장 좋습니다 ( 약 1 초 정도 )


1

자바 스크립트 (ES6), 82 바이트

콘솔을 사용하는 이전 답변 의 수정 . Firefox에서는 부분적으로 작동하지만 Chrome AFAIK에서는 콘솔 만 지 웁니다.

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

언제나 그렇듯이 제안은 환영합니다!


그것을 사랑하십시오! Chrome을 통해 현재 나를 위해 ES6을 실행하고 있음을 알았습니다.
Dom Hastings

@DomHastings 이전에 Chrome에서 개발 한 적이 없지만 기본적으로 ES6를 지원하지 않는다는 소식을 들었습니다. :)
ETH 프로덕션

1

자바 스크립트, 92 91 89 바이트

x=0;setInterval(function(){console.log("\033c"+["_o_\n 0\n/ \\","\\o/\n_0_"][x^=1])},1e3)
  • ES6 기능이 없습니다 (하지만 기능이 훨씬 짧습니다)
  • Linux에서 Node.js와 함께 작동합니다 (다른 환경에 대해서는 모름)
  • 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.logsetInterval, 그 이유는 우리가 기능을 전달하지만, 호출하지 않을 것입니다. setInterval호출 되기 전에 평가 되며 console.log반환되지 않으므로 본질적으로로 전달 undefined됩니다 setInterval. 말이 되나요? 그리고 그것을 단축 주셔서 감사합니다!
Nateowami

나는 당신이 말하는 것을 이해하지만 이 페이지 에 따르면 이 코드는 작동해야합니다 : x=0;setInterval(console.log,1e3,"\033c"+[_o_ <line break> 0 <line break> / \`, \\o/<line break>_0_] [x ^ = 1])`사실, 그것은 가져 오지 않습니다 오류까지 나는 대체하는 경우 console.logalert.
ETHproductions

아, 무슨 말인지 알 겠어. 문제는 매번 다른 것을 기록해야하지만에 "\033c"+[`_o_<line break> 0<line break>/ `,\\o/<line break>_0_`][x^=1]대한 호출 전에 평가를 받는다는 것 setInterval입니다.
Nateowami

0

루비, 79 바이트

k=!0;loop{puts((k)?"\e[H\e[2J_o_\n 0\n/ \\":"\e[H\e[2J\\o/\n_0_");k=!k;sleep 1}

이스케이프 코드가 필요합니다.


0

넷째, 86 바이트

이스케이프 된 문자열에는 GNU Forth가 필요합니다. , 넷째 비 GNU 단지 변화 실행 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

스택 교환 마크 업이 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) 명령어로 액세스합니다.hgstack을 위로 회전시키고 gstack g의 최상위 값을 읽고이를 꿀벌의 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

죽은 물고기 , 비경쟁 (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

파이썬 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 바이트

도전이 만들어진 후 Noodel 이 탄생 했기 때문에 비경쟁 :)

”ṛ|ọ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>

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.