1. 점수 : 9638
기본 통역사는 여기에서 , 제출 내용은 여기 에서 찾을 수 있습니다 . 다소 길기 때문에 대부분의 게시물을 차지하는 대신 GitHub에 포함 시켰습니다.
솔루션
이러한 솔루션은 모두 유니 코드 프로그램이며 -u
명령 행 플래그로 실행 되지만 점수는 Bugle의 코드 페이지로 인코딩 된 것으로 계산됩니다.
$72o101o108o108o111o44o32o87o111o114o108o100o33o
간단히 문자열에서 각 문자의 문자 코드를 누른 다음 출력하십시오.
$49o10o50o10o70o105o122o122o10o52o10o66o117o122o122o10o70o105o122o122o10o55o10o56o10o70o105o122o122o10o66o117o122o122o10o49o49o10o70o105o122o122o10o49o51o10o49o52o10o70o105o122o122o66o117o122o122o10o49o54o10o49o55o10o70o105o122o122o10o49o57o10o66o117o122o122o10o70o105o122o122o10o50o50o10o50o51o10o70o105o122o122o10o66o117o122o122o10o50o54o10o70o105o122o122o10o50o56o10o50o57o10o70o105o122o122o66o117o122o122o10o51o49o10o51o50o10o70o105o122o122o10o51o52o10o66o117o122o122o10o70o105o122o122o10o51o55o10o51o56o10o70o105o122o122o10o66o117o122o122o10o52o49o10o70o105o122o122o10o52o51o10o52o52o10o70o105o122o122o66o117o122o122o10o52o54o10o52o55o10o70o105o122o122o10o52o57o10o66o117o122o122o10o70o105o122o122o10o53o50o10o53o51o10o70o105o122o122o10o66o117o122o122o10o53o54o10o70o105o122o122o10o53o56o10o53o57o10o70o105o122o122o66o117o122o122o10o54o49o10o54o50o10o70o105o122o122o10o54o52o10o66o117o122o122o10o70o105o122o122o10o54o55o10o54o56o10o70o105o122o122o10o66o117o122o122o10o55o49o10o70o105o122o122o10o55o51o10o55o52o10o70o105o122o122o66o117o122o122o10o55o54o10o55o55o10o70o105o122o122o10o55o57o10o66o117o122o122o10o70o105o122o122o10o56o50o10o56o51o10o70o105o122o122o10o66o117o122o122o10o56o54o10o70o105o122o122o10o56o56o10o56o57o10o70o105o122o122o66o117o122o122o10o57o49o10o57o50o10o70o105o122o122o10o57o52o10o66o117o122o122o10o70o105o122o122o10o57o55o10o57o56o10o70o105o122o122o10o66o117o122o122o
Hello, World와 같은 기술! 예
#++O--O+O+++O
#
테이프 사용 +
단위 셀, O
정수와 같은 출력 -
감소율을
#+++++++++[>++++++++<-]>o<++++[>+++++++<-]>+o+++++++oo+++o>++++[>+++++++++++<-]>o------------o[-]++++++++[>+++++++++++<-]>-o<<<o+++o------o--------o[-]+++[>+++++++++++<-]>o
brainfuck와 본질적인 유사성을 사용합니다. 규칙 # 1 및 # 3 충족
$72o97o112o112o121o32o66o105o114o116o104o100o97o121o32o116o111o32o89o111o117o10o72o97o112o112o121o32o66o105o114o116o104o100o97o121o32o116o111o32o89o111o117o10o72o97o112o112o121o32o66o105o114o116o104o100o97o121o32o68o101o97o114o32o66o117o103o108o101o10o72o97o112o112o121o32o66o105o114o116o104o100o97o121o32o116o111o32o89o111o117o
모든 kolmogorov- 복잡성 문제는 현재 이런 종류의 구조를 가지고 있습니다.
$87o101o39o114o101o32o110o111o32o115o116o114o97o110o103o101o114o115o32o116o111o32o108o111o118o101o10o89o111o117o32o107o110o111o119o32o116o104o101o32o114o117o108o101o115o32o97o110o100o32o115o111o32o100o111o32o73o10o65o32o102o117o108o108o32o99o111o109o109o105o116o109o101o110o116o39o115o32o119o104o97o116o32o73o39o109o32o116o104o105o110o107o105o110o103o32o111o102o10o89o111o117o32o119o111o117o108o100o110o39o116o32o103o101o116o32o116o104o105o115o32o102o114o111o109o32o97o110o121o32o111o116o104o101o114o32o103o117o121o10o73o32o106o117o115o116o32o119o97o110o110o97o32o116o101o108o108o32o121o111o117o32o104o111o119o32o73o39o109o32o102o101o101o108o105o110o103o10o71o111o116o116o97o32o109o97o107o101o32o121o111o117o32o117o110o100o101o114o115o116o97o110o100o10o32o10o78o101o118o101o114o32o103o111o110o110o97o32o103o105o118o101o32o121o111o117o32o117o112o10o78o101o118o101o114o32o103o111o110o110o97o32o108o101o116o32o121o111o117o32o100o111o119o110o10o78o101o118o101o114o32o103o111o110o110o97o32o114o117o110o32o97o114o111o117o110o100o32o97o110o100o32o100o101o115o101o114o116o32o121o111o117o10o78o101o118o101o114o32o103o111o110o110o97o32o109o97o107o101o32o121o111o117o32o99o114o121o10o78o101o118o101o114o32o103o111o110o110o97o32o115o97o121o32o103o111o111o100o98o121o101o10o78o101o118o101o114o32o103o111o110o110o97o32o116o101o108o108o32o97o32o108o105o101o32o97o110o100o32o104o117o114o116o32o121o111o117o10o32o10o87o101o39o118o101o32o107o110o111o119o110o32o101o97o99o104o32o111o116o104o101o114o32o102o111o114o32o115o111o32o108o111o110o103o10o89o111o117o114o32o104o101o97o114o116o39o115o32o98o101o101o110o32o97o99o104o105o110o103o32o98o117o116o10o89o111o117o39o114o101o32o116o111o111o32o115o104o121o32o116o111o32o115o97o121o32o105o116o10o73o110o115o105o100o101o32o119o101o32o98o111o116o104o32o107o110o111o119o32o119o104o97o116o39o115o32o98o101o101o110o32o103o111o105o110o103o32o111o110o10o87o101o32o107o110o111o119o32o116o104o101o32o103o97o109o101o32o97o110o100o32o119o101o39o114o101o32o103o111o110o110o97o32o112o108o97o121o32o105o116o10o65o110o100o32o105o102o32o121o111o117o32o97o115o107o32o109o101o32o104o111o119o32o73o39o109o32o102o101o101o108o105o110o103o10o68o111o110o39o116o32o116o101o108o108o32o109o101o32o121o111o117o39o114o101o32o116o111o111o32o98o108o105o110o100o32o116o111o32o115o101o101o10o32o10o78o101o118o101o114o32o103o111o110o110o97o32o103o105o118o101o32o121o111o117o32o117o112o10o78o101o118o101o114o32o103o111o110o110o97o32o108o101o116o32o121o111o117o32o100o111o119o110o10o78o101o118o101o114o32o103o111o110o110o97o32o114o117o110o32o97o114o111o117o110o100o32o97o110o100o32o100o101o115o101o114o116o32o121o111o117o10o78o101o118o101o114o32o103o111o110o110o97o32o109o97o107o101o32o121o111o117o32o99o114o121o10o78o101o118o101o114o32o103o111o110o110o97o32o115o97o121o32o103o111o111o100o98o121o101o10o78o101o118o101o114o32o103o111o110o110o97o32o116o101o108o108o32o97o32o108o105o101o32o97o110o100o32o104o117o114o116o32o121o111o117o10o32o10o78o101o118o101o114o32o103o111o110o110o97o32o103o105o118o101o32o121o111o117o32o117o112o10o78o101o118o101o114o32o103o111o110o110o97o32o108o101o116o32o121o111o117o32o100o111o119o110o10o78o101o118o101o114o32o103o111o110o110o97o32o114o117o110o32o97o114o111o117o110o100o32o97o110o100o32o100o101o115o101o114o116o32o121o111o117o10o78o101o118o101o114o32o103o111o110o110o97o32o109o97o107o101o32o121o111o117o32o99o114o121o10o78o101o118o101o114o32o103o111o110o110o97o32o115o97o121o32o103o111o111o100o98o121o101o10o78o101o118o101o114o32o103o111o110o110o97o32o116o101o108o108o32o97o32o108o105o101o32o97o110o100o32o104o117o114o116o32o121o111o117o10o32o10o40o79o111o104o44o32o103o105o118o101o32o121o111o117o32o117o112o41o10o40o79o111o104o44o32o103o105o118o101o32o121o111o117o32o117o112o41o10o40o79o111o104o41o10o78o101o118o101o114o32o103o111o110o110o97o32o103o105o118o101o44o32o110o101o118o101o114o32o103o111o110o110o97o32o103o105o118o101o10o40o71o105o118o101o32o121o111o117o32o117o112o41o10o40o79o111o104o41o10o78o101o118o101o114o32o103o111o110o110o97o32o103o105o118o101o44o32o110o101o118o101o114o32o103o111o110o110o97o32o103o105o118o101o10o40o71o105o118o101o32o121o111o117o32o117o112o41o10o32o10o87o101o39o118o101o32o107o110o111o119o32o101o97o99o104o32o111o116o104o101o114o32o102o111o114o32o115o111o32o108o111o110o103o10o89o111o117o114o32o104o101o97o114o116o39o115o32o98o101o101o110o32o97o99o104o105o110o103o32o98o117o116o10o89o111o117o39o114o101o32o116o111o111o32o115o104o121o32o116o111o32o115o97o121o32o105o116o10o73o110o115o105o100o101o32o119o101o32o98o111o116o104o32o107o110o111o119o32o119o104o97o116o39o115o32o98o101o101o110o32o103o111o105o110o103o32o111o110o10o87o101o32o107o110o111o119o32o116o104o101o32o103o97o109o101o32o97o110o100o32o119o101o39o114o101o32o103o111o110o110o97o32o112o108o97o121o32o105o116o10o32o10o73o32o106o117o115o116o32o119o97o110o110o97o32o116o101o108o108o32o121o111o117o32o104o111o119o32o73o39o109o32o102o101o101o108o105o110o103o10o71o111o116o116o97o32o109o97o107o101o32o121o111o117o32o117o110o100o101o114o115o116o97o110o100o10o32o10o78o101o118o101o114o32o103o111o110o110o97o32o103o105o118o101o32o121o111o117o32o117o112o10o78o101o118o101o114o32o103o111o110o110o97o32o108o101o116o32o121o111o117o32o100o111o119o110o10o78o101o118o101o114o32o103o111o110o110o97o32o114o117o110o32o97o114o111o117o110o100o32o97o110o100o32o100o101o115o101o114o116o32o121o111o117o10o78o101o118o101o114o32o103o111o110o110o97o32o109o97o107o101o32o121o111o117o32o99o114o121o10o78o101o118o101o114o32o103o111o110o110o97o32o115o97o121o32o103o111o111o100o98o121o101o10o78o101o118o101o114o32o103o111o110o110o97o32o116o101o108o108o32o97o32o108o105o101o32o97o110o100o32o104o117o114o116o32o121o111o117o10o32o10o78o101o118o101o114o32o103o111o110o110o97o32o103o105o118o101o32o121o111o117o32o117o112o10o78o101o118o101o114o32o103o111o110o110o97o32o108o101o116o32o121o111o117o32o100o111o119o110o10o78o101o118o101o114o32o103o111o110o110o97o32o114o117o110o32o97o114o111o117o110o100o32o97o110o100o32o100o101o115o101o114o116o32o121o111o117o10o78o101o118o101o114o32o103o111o110o110o97o32o109o97o107o101o32o121o111o117o32o99o114o121o10o78o101o118o101o114o32o103o111o110o110o97o32o115o97o121o32o103o111o111o100o98o121o101o10o78o101o118o101o114o32o103o111o110o110o97o32o116o101o108o108o32o97o32o108o105o101o32o97o110o100o32o104o117o114o116o32o121o111o117o10o32o10o78o101o118o101o114o32o103o111o110o110o97o32o103o105o118o101o32o121o111o117o32o117o112o10o78o101o118o101o114o32o103o111o110o110o97o32o108o101o116o32o121o111o117o32o100o111o119o110o10o78o101o118o101o114o32o103o111o110o110o97o32o114o117o110o32o97o114o111o117o110o100o32o97o110o100o32o100o101o115o101o114o116o32o121o111o117o10o78o101o118o101o114o32o103o111o110o110o97o32o109o97o107o101o32o121o111o117o32o99o114o121o10o78o101o118o101o114o32o103o111o110o110o97o32o115o97o121o32o103o111o111o100o98o121o101o10o78o101o118o101o114o32o103o111o110o110o97o32o116o101o108o108o32o97o32o108o105o101o32o97o110o100o32o104o117o114o116o32o121o111o117o
$?:Zs0=0s-s:1s-++O
합계를 취하기 전에 입력이 0보다 크고 0보다 작고 ( -1
대신에 수율로 변경됨 1
) 0과 같은지 확인합니다.
#$?:1-[:2s%{3×1+}2s÷]:1s-₀+₁]₀O
이렇게하면 스택에서 루핑이 수행되지만 테이프로 전환하여 각 반복 횟수를 증가시킵니다.
#?>?>+>?[[<+<<->>>-]+<[-<<]>[>]?]<O
이것은 기존 도전에 대한 Mitch Schwartz 의 답변을 약간 수정 한 것입니다.
$1 0-?…1[s:sr-:Z1s-2×1+×1s-Z1-L2s-×]1+Z1-O
모든 크레딧은 이것을 만들기 위해 Emigna 에 갑니다
$?:1s-:[:1s-:];L1s[×L2s-]:×%O
윌슨 정리를 사용하여 계산 (n-1)!² % n
$?:R=:O:=R:?$
프로그램의 첫 번째 절반까지는 O
스택을 다음과 같이 설정합니다.[x, x]
곳이 x
어느이다 True
나 False
. O
최고 값을 팝하고 출력합니다. 프로그램의 나머지 부분은 오류가 발생하지 않도록합니다. 운 좋게도 ?
파일의 끝을 만나면 그냥 밀어 넣습니다.''
(빈 문자열).
$?:[?:];L0s[+L1s-]O
이 두 부분으로 나눌 수 있습니다 : ?:[?:];
및L0s[+L1s-]
. 첫 번째 부분은 스택에 대한 모든 입력을 수집합니다. 두 번째 부분은 상위 두 요소의 합을 푸시하고 길이는 1보다 큽니다.
14. 계승 찾기 -25 바이트
$?:[:1s-:];L1s-Z[×L1s-]O
이것은 합계 프로그램과 유사한 구조를 갖지만 ltiple 입력을 푸시하는 대신 [:1s-:];
푸시하는 범위를 1 .. n
스택으로 푸시합니다.[×L1s-]
하고 제품을 가져옵니다.
#+[O]
while 루프를 사용하여 1
포인터 아래에 연속적으로 . 1
영원히 출력 합니다.
$40o41o40o41o40o41o40o41o40o41o40o41o10o124o92o51o46o49o52o49o53o57o50o54o124o10o124o58o92o53o51o53o56o57o55o57o51o124o10o92o58o58o92o50o51o56o52o54o50o54o124o10o32o92o58o58o92o52o51o51o56o51o50o124o10o32o32o92o58o58o92o55o57o53o48o50o124o10o32o32o32o92o58o58o92o56o56o52o49o124o10o32o32o32o32o92o58o58o92o57o55o49o124o10o32o32o32o32o32o92o58o58o92o54o57o124o10o32o32o32o32o32o32o92o58o58o92o51o124o10o32o32o32o32o32o32o32o92o95o95o92o124o
$?:1:[:rs%0=s1+srr:Rs]1s-O
이것은 시험 분할을 사용하여 모듈로의 결과가 같지 않을 때 종료됩니다. 0
.
$2?%O
2로 간단한 모듈로
$16:[32+:o33s-:]
처음 16 개의 인쇄 가능한 ASCII 문자를 반대로 출력합니다. 0/.-,+*)('&%$#"!
$1[93, 76, 111, 91, 49, 59, 104, 48, 79, 49, 111, 54, 51, 0]
36o1O0h;1[oL]
신용 간다 user202729 에 대한 이 제작
언어 사양
부름
bugle.py
현재 일련의 플래그를 사용하고 파일 이름 / 코드를 실행합니다. 아직까지 4 개의 명령 줄 플래그가 있습니다.
위의 제출물을 테스트하기 위해 다음 호출이 사용되었습니다.
$ python bugle.py -f -u [file]
코드 페이지
Bugle은 코드 페이지에서 512자를 사용합니다. 이 0xFF
문자는 다음 16 진수 값이 코드 페이지의 후반부에 인덱싱됨을 나타내는 데 사용되므로 command에 사용되지 않습니다 . 사용 된 문자는 다음과 같습니다.
ÀÁÂÄÆÃÅĀĄ\t\nĆČÇĎÐ
ÈÉÊËĒĖĚĘÌÍÎÏĪĮĹĽ
!"#$%&'()*+,-./
0123456789:;<=>?
@ABCDEFGHIJKLMNO
PQRSTUVWXYZ[\]^_
`abcdefghijklmno
pqrstuvwxyz{|}~¶
ŁŃŇÑŊÒÓÔÖŒÕØŌŔŘŚ
ŠŤŦÙÚÛÜŮŪŴÝŶŸŹŽŻ
àáâäæãåāąćčçďðèé
êëēėěęìíîïīįĺľłń
ňñŋòóôöœøōõŕřßśš
ťŧùúûüůūŵýŷÿźžż◊
ΑΆΒΓΔΕΈΖΗΉΘΙΊΚΛΜ
ΝΞΟΌΠΡΣΤΥΎΦΧΨΩΏ
αάβγδεέζηήθιίΐκλ
μνξοόπσςτυύΰφχψω
ώǴḰḾṔẂǵḱḿṕẃḂḞĠḢṀ
ȮṖṠṪẊḃḟġḣṁȯṗṡṫẋ§
ĂĞĬŎŬĴăğĭŏŭĵªº‹›
ƁƇƊƑƓƘⱮƝƤƬƲȤɓƈɗƒ
ɠɦƙɱɲƥʠɼʂƭʋȥ©®ıȷ
ЉЊЕРТЗУИОПШАСДФГ
ХЈКЛЧЋЅЏЦВБНМЂЖљ
њертзуиопшасдфгх
јклчћѕџцвбнмђжÞþ
†∂∆≈≠√∈∉∌∋∩∪¬∧∨⊕
¤₽¥£¢€₩‰¿¡⁇⁈‼⁉‽⸘
…°•”“„’‘≤«·»≥ᴇ∞¦
×⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾
÷₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎
또는 표 형식으로 참조하십시오 . 참고 \t
및 \n
각각 탭과 줄 바꿈을 나타냅니다. 또한 16 번째 줄은 인쇄 할 수없는 문자 :로 끝나며
일부 브라우저에는 표시되지 않을 수도 있습니다.
기억
인터프리터에는 현재 5 개의 메모리 모델이 내장되어 있습니다. 각 메모리 모델에는 인터프리터가 해당 모델의 사용을 시작하도록 지시하는 문자가 필요합니다.
- 스택 (
$
) : 푸시, 팝 등의 값을 지원하는 표준 스택
- 무한 테이프 (
#
) : 테이프, la brainfuck, 처음에는0
. s 합니다.
- 무한 그리드 (
G
) : 양방향으로 무한하며 0
s 만 포함하는 2 차원 그리드
- Deque (
D
) : 모듈에서 구현 한 dequecollections
입니다.
- 레지스터 (
S
) 저장하는데 사용될 수있는 하나의 값을 하나 의 값.
그리드에는 셀에 쓰거나 셀에 쓸 수있는 단일 값이 포인터에 저장되어 있습니다.
또한 다른 호출 명령을 사용하여 테이프 및 격자 크기와 줄 바꾸기 동작을 수정할 수 있습니다. 이러한 다른 명령은 현재 메모리 모델에서 사용자 정의 매개 변수로 지정된 수의 값을 가져옵니다.
- 테이프 (
À
) : 크기 ( int
)와 줄 바꿈 ( bool
)의 두 가지 값을 갖습니다.
- 테이프 (
Á
) : 하나의 값을 취합니다 (int
)를 사용합니다. 테이프 끝의 랩
- 테이프 (
Â
) : 하나의 값 크기 ( int
)를 사용합니다. 끝에 포장하지 않습니다
- 그리드 (
Ǵ
) : x 크기 ( int
), y 크기 ( int
), x 랩 ( bool
) 및 y 랩 ( bool
)의 4 가지 값을 취합니다.
사용중인 메모리 유형은 ₀₁₂₃₄₅₆₇₈₉
0을 사용하여 0으로 색인 된 n
사용 된 메모리 유형 ( ₀
첫 번째,₁
두 번째 등)에 있지만 현재 값을 다른 메모리 유형간에 교환 할 수는 없습니다.
분기
지금까지 Bugle에는 두 개의 분기 명령이 있는데, 둘 다 ]
문자로 종료됩니다 .
동안 ([
) : brainfuck- 스타일 while 루프입니다. 사용중인 경우 스택 / 디케이에서 값을 팝하거나 테이프 / 그리드에서 포인터 아래의 셀에 액세스합니다.
예 : #?[-O]
입력에서 카운트 다운0
If / else ( {
및 }
). 단일 실행 while 루프 popped 값이 false이면 if 절은 생략되고 else 절로 이동합니다 }
. 메모리 액세스와 관련하여 while 루프와 동일한 방식으로 작동합니다.
예 : {0}1]
논리 NOT 게이트
내장 함수
자릿수는 정수로 해석되며 현재 메모리 모델에 그대로 푸시 / 쓰기됩니다.
분명히, 나는 체인이 진행됨에 따라 다른 사람들이 더 많은 것을 추가 할 수 있도록 몇 가지 기본 내장 기능을 Bugle에 장착했습니다. 기본 명령은 다음과 같습니다.
+
- 스택 / 데크 : 상위 두 값 추가
- 테이프 / 그리드 : 현재 셀 증가
-
- 스택 / 디크 : 상위 두 값 빼기
- 테이프 / 그리드 : 현재 셀 감소
%
:
;
- 스택 / 데크 : 최고 가치 팝
- 테이프 / 그리드 : 현재 셀 제로
<
=
- 스택 : 상위 두 값이 동일합니까?
- 그리드 : 한 셀 아래로 이동
>
?
- 스택 / 데크 : 입력 라인 평가
- 테이프 / 그리드 : 문자 입력
L
- 스택 / 데크 : 스택 / 데크의 길이를 밉니다
O
R
- 스택 : 가능하면 상단 요소를 뒤집고 그렇지 않으면 스택을 뒤집습니다
Z
^
h
o
r
- 스택 : 상위 3 개 값 회전
- 양단 큐 : 회전 양단 큐
n
시간, n
최고 값입니다
s
…
×
- 스택 : 상위 두 값을 곱하십시오
- 그리드 : 현재 셀에 포인터 값을 씁니다
÷
- 스택 : 상위 두 값을 나눕니다
- 그리드 : 현재 셀을 포인터 값에 씁니다