뒤틀린 "Hello world!"


31

당신의 직업은 매우 간단 Hello, world!합니다 Twister!. 인쇄하는 프로그램을 작성하십시오 .

줄이 꼬이는 방법

비틀림 알고리즘은 매우 간단합니다. 각 열은 색인에 의해 아래로 이동합니다 (col 0은 0 아래로 이동하고 col 1은 1, ...로 이동합니다). 열 이동이 맨 위로 줄 바꿈됩니다. 그것은 다음과 같습니다.

a
ba
cba
----
 cba
  cb
   c

줄 아래에있는 모든 것이 맨 위에 배치됩니다. 실제 예 :

Original:
\\\\\\\\\\\\
............
............
............

Twisted:
\...\...\...
.\...\...\..
..\...\...\.
...\...\...\

(좋아하는 언어로 된 추가 예제와 트위스터는 여기에 있습니다 )

채점

프로그램은 채워진 사각형이어야합니다. 이것은 코드 골프이므로 바이트 수가 가장 적습니다!

규칙

  • 첫 번째 프로그램이 인쇄되어야합니다 Hello, world!. 후행 줄 바꿈은 하나만 허용됩니다.
  • 첫 번째와 두 번째 프로그램은 같은 언어로되어 있어야합니다.
  • 두 번째 프로그램은 인쇄해야합니다 Twister!. 후행 줄 바꿈은 하나만 허용됩니다.
  • 프로그램은 2 행 이상 2 열 이상이어야합니다.

3
Jelly의 코드 페이지 에서 줄 바꿈에 해당하는 문자는 모든 점에서 코드 포인트 127 (ASCII DEL)을 갖습니다. 코드 포인트 10 (ASCII 줄 바꿈)이있는 문자는 글리프 ½를 가지며 숫자의 제곱근을 갖습니다 . 이 도전에 대한 두 가지 중 어느 것이 개행으로 간주되어야합니까?
Dennis

Darn, 나는 "Twisted Hello World"가 "트위스트"를 왜곡 된 의미로 사용하기를 바랐던 유일한 사람 이었기 때문에 대신 "Goodbye Cruel World"와 같은 것을 출력 할 것입니다.
DasBeasto

@Dennis 나는이 경우에 사용하기에 더 좋은 것이 젤리 줄 바꿈이라고 생각합니다.
J Atkin

@JAtkin OK, 설명해 주셔서 감사합니다. 이에 따라 답변을 업데이트했습니다.
Dennis

답변:


10

젤리 , 33 31 29 바이트

기발한

“ɗ⁻%OḶ$“¡¦ḟṠ»Ṫ
“ɗ⁻%OḶ$“¡¦ḟṠ»Ḣ

온라인으로 사용해보십시오.

꼬인

“ɗ⁻%OḶ$“¡¦ḟṠ»Ḣ
“ɗ⁻%OḶ$“¡¦ḟṠ»Ṫ

온라인으로 사용해보십시오!

작동 원리

각 프로그램에서 각 줄은 링크를 정의합니다. 마지막 링크는 메인 링크이며 프로그램이 시작될 때 실행됩니다. 첫 번째 링크에 대한 참조가 없으므로 단순히 무시됩니다.

두 프로그램 모두 Jelly의 정적 사전 압축을 사용하여 “ɗ⁻%OḶ$“¡¦ḟṠ»목록을 생성합니다 .['Hello, world!', 'Twister!']

원본 코드와 꼬인 코드의 유일한 차이점은 기본 링크의 마지막 문자입니다. 목록의 첫 번째 문자열을 선택하고 마지막 문자열을 선택합니다.


2
이 비명 것 같습니다 "성령 쉬 * t"

42

파이썬 2, 59 바이트

print "  Hello, world!"[ 2::]
#rint "T w i s t e r !"[ ::2]

꼬인:

print "T weils,twerrd!"[ ::2]
#rint "  H l o   o l !"[ 2::]

기본적으로 Twister!데이터를 문자열의 홀수 인덱스에 넣은 다음 첫 두 문자 (패딩) 문자 제거에서 다른 모든 문자 제거로 변경합니다.


이 훨씬 더 똑똑 내 방식에 비해 너무입니다
wnnmaw

이건 말도 안되는 40 개의 공짜입니까?
J Atkin

@JAtkin 나는 일부 Python 솔루션이 엄청난 양의 솔루션을 얻는 경향이 있음을 알았습니다. 내가 불평하는 것은 아닙니다 : ~)
PurkkaKoodari

더 차가운 방법 :print " Hello, world!" [2::]
Outgolfer Erik

@ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ Works,하지만 난 그냥 지금 그대로 유지합니다.
PurkkaKoodari 2016 년

17

분열 , 215 (162) 56 53 50 바이트

시작은 다음과 같습니다.

D1
\\
""
TH
we
il
sl
to
e,
r 
!w
"o
1r
;l
1d
;!
 "

온라인으로 사용해보십시오!

꼬인 경우 :

D"
\1
"\
T"
wH
ie
sl
tl
eo
r,
! 
"w
1o
;r
1l
;d
 !

온라인으로 사용해보십시오!

설명

Hello, world!코드는 매우 간단하다 :

  • D 단일 원자를 생성하여 아래쪽으로 이동합니다.
  • 두 개의 \미러는 이를 두 번째 열로 편향시킵니다.
  • "Hello, world!" 필요한 문자열을 인쇄합니다.
  • 1포털입니다. 1방향을 유지하면서 원자를 다음 순서 로 순간 이동시킵니다 (즉, 옆 에있는 방향 r).
  • 원자는 여전히 아래로 이동 ;하여 원자를 파괴하고 프로그램을 종료합니다.

Twister!코드 의 제어 흐름 은 조금 더 ... 꼬인 ...

  • 다시, D원자를 생성합니다.
  • \오른쪽으로 1.
  • 이제 포털은 다음으로 아톰을 보냅니다 1. 원자 o는 질량을 바꾸는 것을 맞지만 우리는 그것을 무시할 수 있습니다. 코드가 줄 바꿈되어 원자가 1다시 동일 하게 충돌하여 두 행을 건너 뜁니다. 다시, 우리는을 무시할 수 있습니다 l. 원자가 감싸고 1다시 충돌 합니다. 이제 1코드 에는 더 이상 존재하지 않으므로 원자는 1맨 위로 다시 건너 뜁니다 .
  • 가장자리를 한 번 더 감싼 후 원자는으로 다시 변형되어 다시 \내려갑니다.
  • "Twister!" 필요한 코드를 인쇄합니다.
  • 1원자를 첫 번째 순간을지나 다시 한 번 텔레포트 ;하지만 ;프로그램을 종료하기를 기다리는 또 다른 대기가 있습니다.

와우, 지금 아주 가까이! : 나는 확실히 ... 짧은 될 수있는 방법이 있어요
FryAmTheEggman

왜 분열을 좋아합니까?
J Atkin

@JAtkin 왜 우리는하지 않습니까? :)
Martin Ender

@ MartinBüttner 나는 왜이 도전에 대한 이유를 생각하고 있었습니까?
J Atkin

1
@JAtkin 2D 언어는 적합 해 보였고, Fission은 프로그램에 하나 이상의 임의의 진입 점을 선택할 수 있기 때문에 특히 단순 해 보였습니다.
Martin Ender 2019

15

분열 , 35 바이트

핵분열 접근법 # 3 (# 4는 첫 번째 게시물에서 편집 한 것을 세었습니다).

R"Hello, " \"tri"
T;L"!dlrow"/"es!w

온라인으로 사용해보십시오!

R;H"ldor w /"er!"
T"Le!ll,o""\"tsiw

온라인으로 사용해보십시오!

설명

이것은 실제로 가장 간단한 핵분열 솔루션입니다. 두 프로그램 모두 두 개의 진입 점이 있습니다 : R오른쪽으로가는 원자와 L왼쪽으로 움직이는 원자를 만듭니다. 어느 쪽이든, ;파괴는 그들 중 하나를 즉시 파괴합니다.

이제 Hello, world!프로그램에서 아톰은 먼저 문자열의 절반 "Hello, "을로 표시 \하고 /(거울 인) 왼쪽으로가는 두 번째 줄로 아톰을 편향시킵니다. "world!"(이동 원자의 방향으로 읽음) 나머지 줄을 인쇄합니다. L이제 no-op ;이며이 원자를 파괴하여 프로그램을 종료합니다.

Twister!프로그램은 기본적으로 동일하지만, 180 ° 회전된다. 이번에는 L원자가 생존하고로 인쇄를 시작합니다 "Twist". \하고 /다시 지금 바로 가고, 다른 라인에 그것을 편향. "er!문자열의 나머지 부분을 인쇄하고 Rno-op이며 ;프로그램을 종료합니다.


놀랄 만한! 나는 이것이 가능한 한 작다고 생각합니다. 재사용 금액은 인상적입니다.
FryAmTheEggman


4

apt, 67 61 57 바이트

@JAtkin 덕분에 6 바이트, @Ian 덕분에 4 바이트 절약

"Tzwzizsztzezzzzzzrzzzz!"rz;
"Hzezlzlzoz,z zwzorlzdz!"rz;

꼬인:

"Hzezlzlzoz,z zwzorlzdz!"rz;
"Tzwzizsztzezzzzzzrzzzz!"rz;

온라인 테스트 : 원본 , 꼬임

작동 원리

"Tzwzizsztzezzzzzzrzzzz!"rz;  // Take this string and remove all "z"s.
"Hzezlzlzoz,z zwzorlzdz!"rz;  // Take this string and remove all "z"s.
                              // Implicit: output *last* expression

이것이 생각하는 것처럼 작동 Twister!하면 공백을로 교체 한 후 후행 공백을 제거 할 수 있습니다 ..
J Atkin

@JAtkin 실제로 그렇게 작동하지는 않지만 그렇게하면 많은 바이트를 절약 할 수 있습니다. 감사!
ETHproductions

"T.w.i.s.t.e.r.!. . . . . "k".(newline)"H.e.l.l.o.,. .w.o.r.l.d.!"k".
J Atkin

다른 필러 문자를 사용하면 훨씬 쉽게 읽을 수 있습니다.
mbomb007

4
@ mbomb007 언제부터 "읽기 쉬운"업적이 있습니까? : D
yo '

4

Python, 398414380456 바이트 *

규칙을 준수하도록 업데이트하도록 관리했지만 여전히이 경쟁 업체에 문의하는 것을 망설입니다. 주석 처리 된 행을 실행해야하기 때문에 바이트 수에 포함했습니다.

이 솔루션은 허용되는 출력 외에 오류 메시지를 인쇄하므로 규칙을 따르지 않습니다.

파이썬 에서이 작업을 수행 할 수 있는지 확인하고 싶었습니다. 할 수는 있지만 예쁘지 않습니다 .

print'Hello, world!'
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     

꼬인 경우

print'Twister!'
#rint'Twister!'
#rint'Twister!'
#rint'Twister!'
#rint'Twister!'
#rint'Twister!'
#rint'Hwister!'
#rint'Teister!'
#rint'Twlster!'
#rint'Twilter!'
#rint'Twisoer!'
#rint'Twist,r!'
#rint'Twiste !'
#rint'Twisterw'
#rint'Twister!o
#rint'Twister!'r
#rint'Twister!' l
#rint'Twister!'  d
#rint'Twister!'   !

각 줄에서 공백을 제거한 다음 마지막 줄을 모두 제거 할 수 있다고 생각합니다.
ETHproductions

초기 트위스트 챌린지의 규칙에 어긋 났기 때문에 그렇게 생각하지 않았지만 감사합니다!
wnnmaw

당신은 코드를 업데이트하는 것을 잊었다;)
ETHproductions

나는 그것이 중요하지 않다고 생각했지만, 좋은 척도를 위해 그것을했다
wnnmaw

1
당신이 오해 한 것 같아요 코드는 채워진 사각형이어야하지만 rint '모든 줄 에서 공백을 제거 할 수 있습니다 .
ETHproductions


1

Brainfuck, 467 367 285 바이트

꼬이지 않은

 +[  [[-->-[>>+>-----<<]<--<---]>-.>>>+.>>..+++[.>]<<<<.+++.------.<<-.>>>>+.>>] [[--[<++++>--->+<]>-]<<<<.<<<-.<<+.>-.+.<----.>--.>>---.[-]]]
  [ -[[-->-[>>+>-----<<]<--<---]>-.>>>+.>>..+++[.>]<<<<.+++.------.<<-.>>>>+.>>]+[[--[<++++>--->+<]>-]<<<<.<<<-.<<+.>-.+.<----.>--.>>---.[-]]]

온라인으로 사용해보십시오!

꼬인

  [  [[-->-[>>+>-----<<]<--<---]>-.>>>+.>>..+++[.>]<<<<.+++.------.<<-.>>>>+.>>] [[--[<++++>--->+<]>-]<<<<.<<<-.<<+.>-.+.<----.>--.>>---.[-]]]
 +[ -[[-->-[>>+>-----<<]<--<---]>-.>>>+.>>..+++[.>]<<<<.+++.------.<<-.>>>>+.>>]+[[--[<++++>--->+<]>-]<<<<.<<<-.<<+.>-.+.<----.>--.>>---.[-]]]

온라인으로 사용해보십시오!



@JoKing 제안 해 주셔서 감사합니다! 더 작은 "트위스터!"를 찾는 방법에 대한 아이디어 프로그램 도요?
orthoplex

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