간단한 도전은 다음과 같습니다. 체스 판의 ASCII 표현을 생성해야합니다. 흰색은 대문자로 표시되고 검은 색은 소문자로 표시됩니다. 빈 타일은로 표시됩니다 .
. 전체 보드는 다음과 같습니다.
rnbqkbnr
pppppppp
........
........
........
........
PPPPPPPP
RNBQKBNR
이것은 kolmogorov-complexity 질문이므로 입력 할 수 없으며 파일 저장, STDOUT으로 인쇄 또는 함수에서 복귀와 같은 기본 방법으로이 보드를 출력해야합니다. 선택적으로 하나의 후행 줄 바꾸기를 생성 할 수 있습니다 . 표준 허점이 적용되며 가장 짧은 프로그램은 바이트 단위입니다!
그러나 이것은 같은 언어로 제출 한 작품들 사이의 경쟁과 동일하다는 것을 기억하십시오. Java와 같은 언어가 perl과 같은 언어 또는 pyth 또는 cjam과 같은 골프 언어를 능가 할 가능성은 없지만 Java 답변이 가장 짧은 것이 여전히 인상적입니다! 각 언어에서 가장 짧은 답변을 추적 할 수 있도록이 리더 보드를 사용하면 언어 및 전체적으로 가장 짧은 제출을 표시 할 수 있습니다.
리더 보드
답변이 표시되도록하려면 다음 마크 다운 템플릿을 사용하여 헤드 라인으로 답변을 시작하십시오.
# Language Name, N bytes
N
제출물의 크기는 어디에 있습니까 ? 당신이 당신의 점수를 향상시킬 경우에, 당신은 할 수 있습니다 를 통해 눈에 띄는에 의해, 헤드 라인에 오래된 점수를 유지한다. 예를 들어 :
# Ruby, <s>104</s> <s>101</s> 96 bytes
헤더에 여러 숫자를 포함하려는 경우 (예 : 점수가 두 파일의 합계이거나 인터프리터 플래그 페널티를 별도로 나열하려는 경우) 실제 점수가 헤더 의 마지막 숫자 인지 확인하십시오 .
# Perl, 43 + 2 (-p flag) = 45 bytes
언어 이름을 링크로 만들어 리더 보드 스 니펫에 표시 될 수도 있습니다.
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
답변
젤리 , 25 24 바이트
“.“.“p“rnbqkbn”ṁ€8µṚ;ŒuY
1 바이트를 골라 낸 @Lynn에게 감사드립니다!
작동 원리
“.“.“p“rnbqkbn”ṁ€8µṚ;ŒuY Main link. No arguments.
“.“.“p“rnbqkbn” Yield [".", ".", "p", "rnbqkbnr"].
ṁ€8 Mold-each 8; reshape each string like the array
[1, 2, 3, 4, 5, 6, 7, 8], i.e., cyclically repeat its
contents to create strings of length 8.
This yields the upper half of the board in reversed
order, i.e., the string array
A := "........", "........", "pppppppp", "rnbqkbnr"].
µ Begin a new, monadic chain. Argument: A
Ṛ Reverse A.
Œu Convert all characters in A to uppercase.
; Concatenate the results to both sides.
Y Join the strings, separating by linefeeds.
답변
Vim, 26 바이트
irnbqkbnr<Esc>Y6p5Vr.VrpYGPgUj
신선한 Vim에 의존하거나 그렇지 않으면 5V
잘못된 영역을 선택할 수 있습니다.
irnbqkbnr<Esc>
: 맨 위 줄을 씁니다. 충분히 쉽다.Y6p
: 하나를 제외한 나머지 행을 만듭니다 . 물론 맨 위와 맨 아래 행을 제외한 모든 문자에 잘못된 문자가 포함되어 있습니다.5Vr.
: 아직 세션에서 비주얼 모드를 사용하지 않은 경우 5 줄을 선택하기 위해 이와 같은 작업을 수행 할 수 있습니다. 같은 것을 다시 입력하면 25 줄을 선택하려고 시도합니다. Vim은 그렇게 이상합니다.Vrp
: 우리는 이미 2 번 라인에 있습니다. 폰을 만들어 봅시다.YGP
그 폰 라인을 맨 아래에 복사합니다. 이것이 바로 내가6p
대신 사용했던 이유7p
입니다.gUj
: 흰색 조각을 대문자로 표시하십시오.
답변
Brainfuck , 224 바이트
+++++[>+++[>++++++<-]+<-]>>.[>>+>+<<<-]>>>[<<<+>>>-]<<<----.<+++[>---<-]>.>>-.------.<<.>>+++.++++.--<++++++++++>>++++++++++.<........>.[>+++++<-]>----<++++[>........<<<.>>-]<........<.>++.----.<<.>>+++.------.<<.>>+++.++++.
이것을 얻기 위해 거의 1 시간 걸렸다.
답변
파이썬 2, 63 바이트
print"\n".join(["rnbqkbnr","p"*8]+["."*8]*4+["P"*8,"RNBQKBNR"])
불행히도, 매우 간단한 접근 방식은 처음에 시도한 “영리한”것보다 훨씬 짧았습니다 …
보너스 답변, 63 바이트 :
print"\n".join(["rnbqkbnr"]+[c*8for c in"p....P"]+["RNBQKBNR"])
답변
05AB1E , 24 바이트
CP-1252 인코딩을 사용합니다 .
"rnbqkbnr"'p8×'.8×D)Âu«»
설명
"rnbqkbnr" # push the string "rnbqkbnr"
# STACK: "rnbqkbnr"
'p8× # push the char "p" repeated 8 times
# STACK: "rnbqkbnr", "pppppppp"
'.8× # push the char "." repeated 8 times
# STACK: "rnbqkbnr", "pppppppp", "........"
D # duplicate
# STACK: "rnbqkbnr", "pppppppp", "........", "........"
) # wrap in list
# STACK: ["rnbqkbnr", "pppppppp", "........", "........"]
 # push a reversed copy of the list
# STACK: ["rnbqkbnr", "pppppppp", "........", "........"],
["........", "........", "pppppppp", "rnbqkbnr"]
u« # convert to upper-case and concatenate
# STACK: ['rnbqkbnr', 'pppppppp', '........', '........',
'........', '........', 'PPPPPPPP', 'RNBQKBNR']
» # join list by newline
답변
실제로 26 바이트
'p8*"rnbqkbnr"│û@û4'.8*n((
설명:
'p8*"rnbqkbnr"│û@û4'.8*n((
'p8* "p"*8 ["pppppppp"]
"rnbqkbnr" that string ["rnbqkbnr", "pppppppp"]
│ duplicate stack ["rnbqkbnr", "pppppppp", "rnbqkbnr", "pppppppp"]
û@û uppercase the dupes ["RNBQKBNR", "PPPPPPPP", "rnbqkbnr", "pppppppp"]
4 '.8*n "."*8, 4 times ["RNBQKBNR", "PPPPPPPP", "........", "........", "........", "........", "rnbqkbnr", "pppppppp"]
(( move the uppercase strings to the bottom of the stack, implicitly print
답변
체다, 56 바이트
a=['rnbqkbnr','p'*8]+['.'*8]*2->(a+a.rev=>@.upper).vfuse
새로운 =>
기능을 사용합니다 .
설명
a= // set a to the first half
['rnbqkbnr','p'*8] + // First two rows
['.'*8]*2 // Next two dots
->(
a +
a.rev=>@.upper // Reverse and map all items to uppercase
).vfuse // Join on newlines