체스 판 만들기


23

PHP 도전에서 이것을 보았습니다. 목표는 최소한의 코드로 64 제곱 (8 * 8)의 체스 판을 만드는 것입니다. 간단하게 PHP에서 356 바이트로 만들었습니다 (인상적이지는 않습니다). 바닐라를 유지하는 한 원하는 언어로 만들 수 있으므로 수입품이 없습니다. 가장 작은 바이트 수가 이깁니다.

출력은 다음과 같아야합니다.

스크린 캡

그리고 내 코드 :

<table><?php
$c='black';function p($c,$n){echo'<td style="width:50px;height:50px;background:'.$c.'"></td>';if($n==1){echo"<tr>";}}for($i=1;$i<=64;$i++){if($i%8==0&&$c=="black"){$c="white";$n=1;}elseif($i%8==0&&$c=="white"){$c="black";$n=1;}elseif(isset($n)&&$n==1){$n=0;}elseif($c=="black"){$n=0;$c="white";}elseif($c=="white"){$n=0;$c="black";}p($c,$n);}

또는 읽을 수 있습니다 :

<table><tr>
<?php
$color = 'black';
function printcolor($color, $nl) {

    echo '<td style="width:50px; height:50px; background:' . $color . '"></td>';
    if ($nl == true) {
        echo "</tr><tr>";
    }
}
for ($i=1; $i<=64;$i++) {
    if ($i % 8 == 0 && $color == "black") {
        $color = "white";
        $nl = true;
    } elseif ($i % 8 == 0 && $color == "white") {
        $color = "black";
        $nl = true;
    } elseif (isset($nl) && $nl == true) {      
        $nl = false;
    } elseif ($color == "black") {
        $nl = false;
        $color = "white";           
        } 
    elseif ($color == "white")  {
        $nl = false;
        $color = "black";
    }       
    printcolor($color, $nl);
}

편집하다:

처음에는 매우 구체적이지 않았습니다.

  • 정사각형은 벡터 이미지를 제외하고 50px * 50px이어야합니다.
  • 출력 형식이나 크기는 관련이 없으며 이미지 여야합니다.
  • 평가 목적으로 이미지 파일 또는 스크린 샷과 같이 출력을 볼 수 있어야합니다.
  • 챌린지가 게시 된 후 작성된 라이브러리가 없습니다.

3
PPCG에 오신 것을 환영합니다.이 과제는 실제로 PHP와 관련이 없으므로 태그를 변경했습니다. 또한 귀하의 참조 구현은 귀하의 질문이 아닌 답변으로 간주됩니다. Stewie가 등장함에 따라 필요한 이미지 출력 크기와 색상 별 및 손실 이미지 허용 여부를 지정해야합니다.
FryAmTheEggman

2
따라서 일부 ASCII 마법은 허용되지 않습니까? :(
Denker

4
기본은 얼마나 기본입니까? "import"정의
Doorknob

6
이미지 일 필요는 없지만 각 사각형은 50px 이상이어야합니까? 그것은 저에게 모순적인 것처럼 보입니다.
피터 테일러

4
여기 프로그래밍 언어는 골프를 위해 특별히 만들어졌으며 내장 기능이 많은 언어를 포함하여 매우 다양합니다. 따라서 비 라이브러리 함수에 대한 제한을 제거하고 대신이 질문이 기본값을 따릅니다 (모든 카운트는 바이트 수로 계산되며 챌린지가 게시 된 후 작성된 라이브러리는 없음).
lirtosiast

답변:


13

옥타브, 20 18 바이트

2 바이트를 깎아 준 @Bruno 에게 감사드립니다 .

imshow(invhilb(8))

결과:

enter image description here

이 답변은 여기에 있는 기술을 사용합니다 . 또한 그림 창의 크기에 따라 옥타브의 이미지 자동 스케일링에 의존합니다.


1
@AlexA. 또한 다음 규칙에서 "출력 형식 또는 크기는 관련이 없습니다 ..."라고 표시되어 있기 때문에 정사각형이 정확히 50x50 픽셀이어야한다고 완전히 확신하지는 않습니다. 사람들이 의견에 설명을 요청했지만 질문이 업데이트되지 않았습니다.
비커

질문을 수정했습니다. 코드를 테스트하고 작동하므로 현재 가장 적은 바이트 수를 갖습니다.
Bruno

또한> 0을 제거해도 여전히 작동하므로 2 바이트를 면도 할 수 있습니다.
Bruno

@Bruno 무엇? 그것은 야생입니다. 따라서 행렬의 값 (모두 << 0 또는 >> 1)을 0과 1로 고정하는 것 같습니다. 팁에 감사드립니다. 업데이트하겠습니다! : D
비커

2k 축하합니다!
NoOneIsHere 여기

26

정력, 47 46 44 43

44를 넘어 서면 여전히 44입니다.

iP1 400 <C-p><cr><esc>50i1<esc>YpVr0yk3PyG49PyG:m$<cr>p2GyG3P
i          enter insert mode
P1         signal to NetPPM that we're using black&white (PBM) format
400        width
<C-p>      fancy trick that inserts the other 400 for height
<cr><esc>  exit insert mode on the next line
50i1<esc>  insert 50 '1's (black)
YpVr0      insert 50 '0's (white) by duplicating the line and replacing all chars
yk         copy both lines (yank-up)
3P         paste three times; this leaves us on line two
yG         copy from line 2 to end of file (this is a full row of pixels now)
49P        we need 50 rows of pixels to make a complete "row"; paste 49 times
yG         copy the entire row of the checkerboard
:m$<cr>    move line 2 (the line we're currently on) to the end of the file
           this gives us the "alternating rows" effect
p          we're now on the last line: paste the entire row we copied earlier
2G         hop back to line 2 (beginning of image data)
yG3P       copy the entire image data, paste 3 times

NetPPM 형식 (PBM)의 출력 :

output


2
텍스트 편집기를 사용하여 그래픽 출력 문제를 완료 할 수 있음을 좋아합니다. 골프장에서 나온 PBM의 다른 예가 있습니까?
ankh-morpork

1
@ dohaqatar7 나는 몰랐지만, 전에 vim으로 TikZ를 해봤으므로 vim의 그래픽은 확실합니다.
Doorknob

2
와우, 나는 <C-p>단어를 입력하지 않고 vim 을 시도하지 않았다 ... 정말 편리합니다!
Desty

16

CSS, 244 바이트

html{background:#fff}body{width:400px;height:400px;background:linear-gradient(45deg,#000 25%,transparent 25%,transparent 75%,#000 75%)0 0/100px 100px,linear-gradient(45deg,#000 25%,transparent 25%,transparent 75%,#000 75%)50px 50px/100px 100px}

설명 : 100x100px 대각선 선형 그라디언트가 네 개의 정지 점으로 만들어 지므로 두 개의 50px 삼각형 코너를 제외한 대부분의 그라디언트가 투명합니다. (아래 스 니펫 참조). 50x50px 오프셋으로 두 번째 그라디언트를 추가하면 사각형의 누락 된 반이 채워집니다. 본체의 크기를 늘리면 결과 패턴이 반복되어 체스 판 전체를 채울 수 있습니다.


깔끔한 솔루션. 마지막을 삭제하면 잘 작동합니다 } .
insertusername 여기

여기서 무슨 일이 일어나고 있는지 설명해 주시겠습니까?
flawr

@flawr 나는 부분적인 효과를 보여주는 두 번째 스 니펫을 추가했는데 도움이되기를 바랍니다.
Neil

이것은 완벽 해.
아니 찰스

당신은 정말로 필요 html{background:#fff}합니까? 기본적으로 브라우저의 99 %가 AFAIK, 흰색의 배경 설정
Downgoat을

15

Mathematica, 34 바이트

ArrayPlot@Array[Mod[+##,2]&,{8,8}]

출력은 벡터 이미지이며 프레임으로 둘러싸여 있습니다.

32 개의 사각형을 올바르게 배치하는 대신 이진 행렬을 생성하여 ArrayPlot작업 할 수 있습니다.

enter image description here


좋은! 게시 해 주셔서 감사합니다.
시몬스

좋아 보여. 각 정사각형을 50px로 정의하는 위치를 설명해 주시겠습니까? 또한 테스트 할 수있는 온라인 에뮬레이터가 있습니까?
Bruno

@Bruno 출력은 벡터 그래픽이므로 픽셀 크기와 같은 것은 없습니다 (이미지에는 고유 한 크기가 없습니다. 어떤 크기로든 크기를 조정하고 표시 할 수 있음). 그래서 내가 물었다.
Martin Ender

4
잠깐만 GenerateChessBoardWithColorsAsParameters[ColorBlack, ColorWhite, 8, 8, 50, 50]요? ;)
코너 오브라이언

3
@ CᴏɴᴏʀO'Bʀɪᴇɴ 그렇지만 73 바이트입니다.
Martin Ender

10

Mathematica, 81 72 55 바이트

Graphics[Rectangle/@Select[Range@8~Tuples~2,2∣Tr@#&]]

Input/Output

이미지는 이전 버전의 평가판이지만 여전히 동일하게 보입니다.


8

옥타브, 48 바이트

​​​​​​​​​​​​​​​imwrite(kron(mod((t=0:7)+t',2),ones(50)),'.png')

이것은 내 Matlab answer 와 정확히 동일하게 작동 하지만 spiralOctave 에는 없습니다 . 대신 Matlab에없는 기능을 사용합니다. t이미 할당을 표현식으로 사용하고 나중에 t동일한 표현식에서 다시 사용할 수 있습니다 .

(이것은 크기가 조정 된 버전이므로 여기에 답을 어지럽히고 싶지 않습니다 =)


1
왼쪽 상단은 검은 색이 아닌 흰색이어야합니다.
Doorknob

2
출력은 바둑판이어야하며 방향이 지정되지 않았습니다.
flawr

2
죄송합니다. 출력은 체스 판이어야합니다. 체스 판은 항상 "오른쪽에 흰색, 그녀의 색에 여왕"입니다 (각 플레이어의 오른손에 흰색 모서리 사각형이 있음을 의미).
corsiKa

5
그런 다음 한 명의 플레이어가 오른쪽에, 한 명의 플레이어가 왼쪽에 앉아 있다고 상상해보십시오. 다시 한 번, 이것은 도전에 의해 규정 된 것이 아니라 단지 당신의 해석입니다.
flawr

8

순수 배쉬 (외부 유틸리티 없음), 133

@Doorknob의 의견 을 약간의 도전으로 보았습니다 . 조금 길지만 여기에 간다.

echo \# ImageMagick pixel enumeration:400,400,1,rgb
for((;x=p%400,y=p/400,c=1-(x/50^y/50)&1,p++<160000;));{
echo "$x,$y:($c,$c,$c)"
}

출력은 Imagemagick의 .txt 형식 입니다. 이것은 순수한 Bash입니다. 이 출력을 생성하기 위해 Imagemagick 또는 기타 외부 유틸리티가 생성되지 않습니다. 그러나 출력이 .txt 파일로 리디렉션되고 ImageMagick display유틸리티를 사용하여 볼 수 있습니다 .

enter image description here

이 이미지 형식은 순수한 텍스트 일뿐 아니라 한 줄에 하나씩 모든 픽셀 (x, y 및 색상 값) 목록에 지나지 않습니다. 하나의 큰 루프에서 모든 픽셀 값을 산술적으로 도출하는 것은 매우 간단한 문제입니다.


이전 답변, 167

echo "\"400 400 2 1\"
\"  c white\"
\"b c black\""
printf -vf %50s
a="$f${f// /b}"
o=("\"$a$a$a$a\"" "\"${f// /b}$a$a$a$f\"")
for i in {0..399};{
echo "${o[i/50%2]}"
}

출력은 X_PixMap 텍스트 이미지 파일 형식 이며 ImageMagick display유틸리티를 사용하여 볼 수도 있습니다 .

참고 XPM 형식을 최대한 그대로 사용하여 가능한 한 XPM 형식을 사용 display했습니다. 각 줄 주위에 큰 따옴표를 제외 하고 모든 상용구를 꺼낼 수있었습니다 ". 다른 어떤 유틸리티가 이것을 받아 들일지 모르겠다.


6

선택한 PowerShell + 브라우저, 149143 바이트

모든 GDI 호출 (즉, PowerShell이 ​​그리는 데 사용하는 항목)이 .NET의 가져 오기 뒤에 묻혀 있기 때문에 가져 오기를 사용할 수 없다는 것은 정말 힘든 일입니다.

"<table><tr>"+((1..8|%{$a=$_;-join(1..8|%{'<td style="width:50px;height:50px'+("",";background:#000")[($a+$_)%2]+'"></td>'})})-join'</tr><tr>')

편집- @NotThatCharles 덕분에 6 바이트 절약

여기에는 두 개의 for-loops를 사용 1..8하여 제공된 PHP 예제와 유사한 big-ol 'HTML 문자열을 생성하여 파이프 라인에 출력합니다. 매번 우리 ;background:#000는 보드 모듈로 2에서 현재 위치를 취하여 검은 배경 을 추가할지 여부를 계산합니다 .

사용하려면 출력을 원하는 파일 (예 :와 같은 파일)로 리디렉션 > chessboard.htm한 다음 원하는 브라우저에서 출력하십시오. 아래 스크린 샷에는 "c.htm"과 Firefox를 사용했습니다.

파이어 폭스


이것은 하나도 모르지만 나는 어떻게 든 그것을 좋아합니다 :)
Bruno

white그리고 black될 수 있습니다 #fff#000...하지만 왜 흰색 지정 귀찮게?
찰스

(";background:#000","")[($a+$_)%2]대신 시도하십시오 .
아니 찰스

@NotthatCharles Durr는 흰색과 검은 색 플립 플롭을 사용하여 흰색 사각형 만 출력했습니다. 추가 4 바이트가 저장되도록 수정했습니다.
AdmBorkBork

5

PHP + CSS + HTML, 136 바이트

더 높은 수준으로 테이블을 높이십시오.

<table><?for(;++$i<9;)echo'<tr>',str_repeat(["<td b><td>","<td><td b>"][$i&1],4);?><style>td{width:50px;height:50px}[b]{background:#000}

다음 코드를 생성합니다.

<table><tr><td><td b><td><td b><td><td b><td><td b><tr><td b><td><td b><td><td b><td><td b><td><tr><td><td b><td><td b><td><td b><td><td b><tr><td b><td><td b><td><td b><td><td b><td><tr><td><td b><td><td b><td><td b><td><td b><tr><td b><td><td b><td><td b><td><td b><td><tr><td><td b><td><td b><td><td b><td><td b><tr><td b><td><td b><td><td b><td><td b><td><style>td{width:50px;height:50px}[b]{background:#000}

브라우저의 친절과 CSS에 크게 의존합니다.


좋은 해결책입니다. << 다음에 PHP를 포함해야 했습니까? 매개 변수의 첫 번째로 $ i = 0을 포함하여 올바르게 작동하면 144 바이트의 최종 결과가 나타납니다.
Bruno

1
@Bruno 경고를 참조하면 여기서 경고를 무시합니다. 그러나이를 비활성화하는 방법은 1 조 개가 있습니다. 그들 중 하나는로 교체 ++$i<9하는 것 @++$i<9입니다. 또한,없이 작동 <?php하려면 지시문이 있어야 short_open_tags=On하며 이는 일부 환경에서 기본값입니다. 에 더 읽기 stackoverflow.com/a/2185331/2729937
이스마엘 미구엘에게

5

젤리, 26 바이트

400R%2ẋ€50FU;$ẋ4;;;1j⁶;”PU

Jelly는 내장 이미지를 지원하지 않기 때문에 PPM 이미지를 인쇄합니다.

온라인으로 사용해보십시오! (속도가 더 작은 보드, 원시 PPM)

결과

스크린 샷

작동 원리

400R%2ẋ€50FU;$ẋ4;;;1j⁶;”PU  Main link. No arguments.

400                         Set the left argument to 400.
   R                        Yield [1, ..., 400].
    %2                      Compute the parity of each integer.
      ẋ€50                  Replace each parity by an array of 50 copies of itself.
          F                 Flatten the resulting, nested list.
                            This creates the first rank of the board.
             $              Combine the two atoms to the left:
           U                  Reverse the array of parities.
            ;                 Concatenate the reversed array with the original.
                            This creates the first two ranks of the board.
              ẋ4            Repeat the resulting list four times.
                            This creates all eight ranks of the board.
                ;           Append 400, the link's left argument.
                 ;          Append 400, the link's left argument.
                  ;1        Append 1.
                    j⁶      Join, separating by spaces.
                      ;”P   Append the character 'P'.
                         U  Reverse the resulting list.

비경쟁 버전 (24 바이트)

이 게시물 이전의 최신 Jelly 인터프리터가 x제대로 벡터화 되지 않았습니다 . 최신 버전에서는 2 바이트를 더 저장할 수 있습니다.

400R%2x50U;$ẋ4;;;1j⁶;”PU

유일한 차이점은 x50모든 원래 요소가 50 번 반복되는 플랫 목록 을 생성하므로 F더 이상 필요하지 않습니다.


1
당신이 자바 답변을 작성하고있는 동안 ;... 잠깐 동안 잠 들었다 ...;)
Conor O'Brien

1
@ CᴏɴᴏʀO'Bʀɪᴇɴ Java? 당신은 자바 10.0, 골프 에디션, 자바 I처럼 보이지 않는 원인에 있어야 보았다 ....
BalinKingOfMoria

5

MATL , 11 (27) 바이트

8:t!+Q2\TYG

다음 그림이 생성됩니다. 본질적인 크기는 없습니다. Figure 창의 크기에 따라 자동으로 크기가 조정됩니다. 이것은 도전에 의해 허용되는 것 같습니다.

여기에 이미지 설명을 입력하십시오

설명

8:      % row vector [1,2,...8]
t!      % duplicate and transpose into column vector
+       % 8x8 matrix with all pairwise additions
Q       % add 1
2\      % modulo 2. Gives 8x8 matrix of zeros and ones
TYG     % draw image

자동 확장이 허용되지 않는 경우 :

'imshow'8:t!+Q2\50t3$Y"0#X$

50x50 픽셀 정사각형으로 다음 그림을 생성합니다.

설명

여기에 이미지 설명을 입력하십시오

'imshow'   % name of Matlab function
8:t!+Q2\   % same as above. Produces 8x8 matrix of zeros and ones
50t3$Y"    % repeat each element 50 times in each dimension
0#X$       % call imshow function with above matrix as input

5

Pyth, 28 26 바이트

J*4+*50]255*50]0.wm_mxkdJJ

설명

J                          - Autoassign J = V
           *50]0           - 50*[0]
    *50]255                - 50*[255]
   +                       - ^^+^
 *4                        - 4*^
                .w         - write_greyscale(V)
                  m      J - [V for d in J]
                   _       - reversed(V) 
                    m   J  - [V for k in J]
                     xkd   - k^d

파이썬 동등

J = 4*(50*[255]+50*[0])
write_greyscale([[k^d for k in J][::-1] for d in J])

여기에서 시도하십시오 (색상 값 만)

산출:

산출


바이트 수에 대한 좋은 일이지만 보이는 사각형으로 유효한 출력이 필요합니다 :)
Bruno

@Bruno 출력 추가! 나는 당신을 위해 PIL을 설치했습니다 : O (실제로 테스트하지는 않았습니다)
Blue

@muddyfish 문제와 주셔서 감사합니다. 보드는 흰색 사각형으로 시작하고 끝나야합니다. :)
Bruno

4

Matlab, 47 (24) 바이트

imwrite(kron(mod(spiral(8),2),ones(50)),'.png')

이것은 내 Octave answer 와 정확히 동일하게 작동 하지만 spiral저장된 1 바이트 를 사용할 수있었습니다 . spiral(n)하게 nxn행렬과 제 스파이럴을 채우고 n^2정수.

벡터 그래픽이 허용되면 24 바이트로 수행 할 수 있습니다.

imshow(mod(spiral(8),2))

(이것은 크기가 조정 된 버전이므로 여기에 답을 어지럽히고 싶지 않습니다 =)


4

FFmpeg은 78 82 100 바이트

마침내 보드 청소를 시작했습니다.

ffplay -f lavfi color=s=400x400,geq='255*mod(trunc(X/50)+trunc(Y/50)+1,2):128'

여기에 이미지 설명을 입력하십시오


이전 :

ffmpeg -f lavfi -i "color=tan@0:256x256,format=ya8" -vf "scale=400:-1:alphablend=checkerboard" .jpg

아래 이미지를 생성 한 후 오류와 함께 종료됩니다.

여기에 이미지 설명을 입력하십시오

(보드가 먼지를 모았습니다)


3

CJam, 27 바이트

"P1"400__,2f%50e*_W%+4*~]S*

온라인으로 사용해보십시오! (속도가 더 작은 보드, 원시 PPM)

결과

스크린 샷

작동 원리

"P1"                        e# Push that string.
    400__                   e# Push three copies of 400.
         ,                  e# Turn the last one into [0 ... 399].
          2f%               e# Compute the parity of each integer.
             50e*           e# Repeat each parity 50 times.
                            e# This creates the first rank of the board.
                 _W%        e# Create a reversed copy of the resulting array.
                    +       e# Concatenate the original with the reversed array.
                            e# This creates the first two ranks of the board.
                     4*     e# Repeat the resulting array four times.
                            e# This creates all eight ranks of the board.
                       ~    e# Dump all of its items (the pixels) on the stack.
                        ]   e# Wrap the entire stack in an array.
                         S* e# Join that array, separating them by spaces.

3

UTF-8이 포함 된 HTML-66b

<div style="font:100 50px/48px serif">▚▚▚▚<br>▚▚▚▚<br>▚▚▚▚<br>▚▚▚▚

entity는 엔티티에 대한 단거리 utf입니다 & # 9626;

유니 코드 문자 'QUADRANT UPPER LEFT AND LOWER RIGHT'(U + 259A)

바보 나, 1 utf-8 char 솔루션을 찾고있었습니다.


2
글꼴 크기가 잘못된 것 같습니다.
Qwertiy

1
대신 표준 체스 판과 같이 왼쪽 위 사각형이 흰색이되도록 사용해야 합니다. 또한 <pre>대신 <div>개행을 사용할 수 있도록 대신 사용하십시오 <br>.
Neil

UTF-8 인코딩을 사용하는 3 바이트 수로 바이트 수가 잘못 된 것 같습니다. 98 바이트 여야합니다 . 앞으로는 를 사용 하여 UTF-8 바이트 수를 확인할 수 있습니다.
Taylor Scott

2

PHP, 166 (158) 155 바이트

PHP 7.0.2 (짧은 태그 사용) 및 Chrome 48.0.2564.97 m에서 작동

<table><tr><? while(++$i<=8){while(++$j<=8){echo"<td style=background-color:".($i%2==0?($j%2==1?0:""):($j%2==0?0:"")).";padding:9></td>";}echo"<tr>";$j=0;}

이 속성 bgcolor=0을 사용하여 검정색 배경을 생성 할 수 있습니다 . 그것은 많은 바이트를 깎아야합니다! 대신을 $v%2==0사용 $v&1하면 몇 바이트를 줄일 수 있습니다.
Ismael Miguel

2

PHP> = 5.4 175 159 149 116 바이트

<table><tr><? for(;@++$i<65;)echo'<td width=50 height=50 ',$i+@$m&1?:'bgcolor=0','>',$i%8<1?'<tr '.($m=@!$m).'>':'';

<table><tr><td width=50 height=50 1><td width=50 height=50 bgcolor=0><td width=50 height=50 1><td width=50 height=50 bgcolor=0><td width=50 height=50 1><td width=50 height=50 bgcolor=0><td width=50 height=50 1><td width=50 height=50 bgcolor=0><tr 1><td width=50 height=50 bgcolor=0><td width=50 height=50 1><td width=50 height=50 bgcolor=0><td width=50 height=50 1><td width=50 height=50 bgcolor=0><td width=50 height=50 1><td width=50 height=50 bgcolor=0><td width=50 height=50 1><tr ><td width=50 height=50 1><td width=50 height=50 bgcolor=0><td width=50 height=50 1><td width=50 height=50 bgcolor=0><td width=50 height=50 1><td width=50 height=50 bgcolor=0><td width=50 height=50 1><td width=50 height=50 bgcolor=0><tr 1><td width=50 height=50 bgcolor=0><td width=50 height=50 1><td width=50 height=50 bgcolor=0><td width=50 height=50 1><td width=50 height=50 bgcolor=0><td width=50 height=50 1><td width=50 height=50 bgcolor=0><td width=50 height=50 1><tr ><td width=50 height=50 1><td width=50 height=50 bgcolor=0><td width=50 height=50 1><td width=50 height=50 bgcolor=0><td width=50 height=50 1><td width=50 height=50 bgcolor=0><td width=50 height=50 1><td width=50 height=50 bgcolor=0><tr 1><td width=50 height=50 bgcolor=0><td width=50 height=50 1><td width=50 height=50 bgcolor=0><td width=50 height=50 1><td width=50 height=50 bgcolor=0><td width=50 height=50 1><td width=50 height=50 bgcolor=0><td width=50 height=50 1><tr ><td width=50 height=50 1><td width=50 height=50 bgcolor=0><td width=50 height=50 1><td width=50 height=50 bgcolor=0><td width=50 height=50 1><td width=50 height=50 bgcolor=0><td width=50 height=50 1><td width=50 height=50 bgcolor=0><tr 1><td width=50 height=50 bgcolor=0><td width=50 height=50 1><td width=50 height=50 bgcolor=0><td width=50 height=50 1><td width=50 height=50 bgcolor=0><td width=50 height=50 1><td width=50 height=50 bgcolor=0><td width=50 height=50 1><tr >

노트

  • 16 바이트 면도-감사합니다 @insertusernamehere
  • 면도 한 10 바이트-감사합니다 @ msh210
  • 30 바이트 면도-@Ismael Miguel 감사합니다

1
아마이 더욱 golfed 할 수 있지만, 당신은 여기 (이동 152 바이트 ) :<table><tr><?php for(;++$i<65;){echo'<td style="width:50px;height:50px;background:#'.(($i+$m)%2?'000':'').'"></td>';if($i%8<1){echo"</tr><tr>";$m=!$m;}}
insertusernamehere

초기 과제를 제거하지는 않았지만 (작품, 개인적 문제는 그것을 허용하지 않습니다), 감사합니다
Shaun H

1
엄격한 버전 의 HTML 4 조차도 대한 종료 태그를 건너 뛸 수 있습니다TR .
msh210

1
교체 ++$i<65@++$i<65당신이 경고에 대한 걱정 때문에. 이것은 2 바이트를 절약 $m=$i=0하여 just로 줄일 수 있음을 의미합니다 $m=0. 대신 echo 'a'.'b'.'c';할 수 있습니다 echo 'a','b','c';. 이것은 2 바이트를 더 절약 할 echo수 있음을 의미합니다 echo'<td style="width:50px;height:50px;background:#',($i+$m)%2?'':'000','">';. 또한 HTML 속성에는 따옴표가 필요하지 않습니다. 그것들을 제거하고 2 바이트를 볶습니다. 또한 bgcolor속성 이 훨씬 짧아서 더 많은 바이트가 줄어 듭니다! 당신은 사용할 수 있습니다 print()에서를 for더 많은 바이트를 저장!
Ismael Miguel

1
더 많은 내용을 저장하려면, 나는 대체했습니다 ($i+$m)%2$i+@$m&1내가 그것을 제거 할 수있는 $m=0. 앞서 귀하의를 제거 if하고이를 trenary 작업으로 교체 할 수있었습니다 . 저장하려면 더를 , 당신을 삭제 한 style및 속성을 추가 width하고 height. 해 키면으로 더 들어가기 위해 Chrome 48.0.2564.103 m은 0속성을 사용하여 배경색이 인 경우 검은 색을 사용하는 것으로 나타났습니다 bgcolor. 덕분에 더 많이 줄일 수있었습니다! 더 많은 감소가 더 좋습니다!
Ismael Miguel

1

자바 스크립트, 150

이것은 확실히 골프 수 있습니다. HTML을 만듭니다.

for(i=0;i<8;)console.log(`<b style=margin-${['lef','righ'][i++%2]}t:50;width:50;height:50;display:inline-block;background:#000></b>`.repeat(4)+'<br>')

1
허, JavaScript의 템플릿 문자열에 대해 전혀 몰랐습니다. 시원한.
Cheezey

1

아이케 , 24 바이트

,(;cga;t=\:t:2!-20!!160)

판

이 기술의 핵심은 x 좌표 목록을 생성하고 divmod 한 다음 동등 교차 곱을 사용하여 적절한 비트 맵을 생성하는 것입니다. 설명을 위해 더 작은 예제 사용 :

  !8
0 1 2 3 4 5 6 7

  -2!!8
0 0 1 1 2 2 3 3

  2!-2!!8
0 0 1 1 0 0 1 1

  t=\:t:2!-2!!8
(1 1 0 0 1 1 0 0
 1 1 0 0 1 1 0 0
 0 0 1 1 0 0 1 1
 0 0 1 1 0 0 1 1
 1 1 0 0 1 1 0 0
 1 1 0 0 1 1 0 0
 0 0 1 1 0 0 1 1
 0 0 1 1 0 0 1 1)

여기서 해봐 . 기술적으로 iKe는 논리적 160x160 픽셀 캔버스에서 작동하지만 전체 화면 모드 (저장된 링크를 따라갈 때의 기본값)에서는 3 배로 업 스케일됩니다. 프로그램이 동일한 문자 수로 훨씬 더 큰 비트 맵을 어셈블 할 수 있기 때문에 이것이 여전히 문제의 정신을 따르고 있다고 생각합니다. 그것은 임의의 디스플레이 제한으로 귀착됩니다.

최신 정보:

iKe는 주로 골프 용으로 설계되지 않았지만 라이브 코딩은 여전히 ​​간결하고 깔끔한 기본값의 이점을 제공합니다. 이 문제를 해결하기 위해 기본 팔레트가 제공되지 않으면 기본 팔레트를 사용하도록 허용하기로 결정했습니다. 이 특정 솔루션은 이제 다음과 같이 표현 될 수 있습니다.

,(;;t=\:t:2!-20!!160)

(부적격) 3 바이트 저장.


1

루비와 신발, 97 자

Shoes.app(width:400){64.times{|i|stack(width:50,height:50){background [white,black][(i/8+i)%2]}}}

샘플 출력 :

신발로 루비가 그린 체스 판


흰색으로 시작하고 끝나야합니다. 그렇지 않으면 좋은 직업 :)
Bruno Bruno

죄송합니다. 감사합니다 @Bruno. 결정된.
manatwork

Great, upvoted :)
Bruno

1

루아 + 사랑 138 개 113 112 106 문자

function love.draw()for i=0,31 do
love.graphics.rectangle("fill",i%8*50,(i-i%8)/8*100+i%2*50,50,50)end
end

샘플 출력 :

Lua + LÖVE가 그린 체스 판


그르! Lua 5.3에는 //정수 나누기 연산자가 있지만 LuaJIT를 갖춘 LÖVE는 아직 없습니다. ☹
manatwork

1

김프, 539 바이트

gimp -i -b '(let* ((i (car (gimp-image-new 400 400 1))) (d (car (gimp-layer-new i 400 400 2 "b" 100 0)))) (gimp-image-insert-layer i d 0 -1) (define (t x y) (gimp-selection-translate i x y)) (define (x) (t 100 0)) (define (X) (t -100 0)) (define (y) (t 50 50)) (define (Y) (t -50 50)) (define (f) (gimp-edit-fill d 1)) (define (r) (f) (x) (f) (x) (f) (x) (f) (y)) (define (R) (f) (X) (f) (X) (f) (X) (f) (Y)) (gimp-image-select-rectangle i 2 0 0 50 50) (r) (R) (r) (R) (r) (R) (r) (R) (gimp-file-save 1 i d "c.png" "c.png") (gimp-quit 0))'

Ungolfed Scheme script-fu :

(let* ((i (car (gimp-image-new 400 400 GRAY)))
       (d (car (gimp-layer-new i 400 400 GRAY-IMAGE "b" 100 NORMAL-MODE))))

  (gimp-image-insert-layer i d 0 -1)
  (define (t x y) (gimp-selection-translate i x y))
  (define (x) (t 100 0))
  (define (X) (t -100 0))
  (define (y) (t 50 50))
  (define (Y) (t -50 50))
  (define (f) (gimp-edit-fill d BACKGROUND-FILL))
  (define (r) (f) (x) (f) (x) (f) (x) (f) (y))
  (define (R) (f) (X) (f) (X) (f) (X) (f) (Y))

  (gimp-image-select-rectangle i CHANNEL-OP-REPLACE 0 0 50 50)
  (r) (R) (r) (R) (r) (R) (r) (R)
  (gimp-file-save RUN-NONINTERACTIVE i d "c.png" "c.png")
  (gimp-quit 0))

배치 모드에서 빈 이미지를 만들고 50x50 직사각형 선택 물을 만들어 채우고 이미지 주위를 반복적으로 이동하여 정사각형을 채 웁니다. 그런 다음 저장 c.png하고 종료하십시오.

산출:

체스 판 png


1

J, 33 31 바이트

바이너리로 트릭을 사용했습니다.

   load'viewmat'
   viewmat 8 8$#:43605

... 바이너리의 43605가 1010101001010101이기 때문에 (우리는 #:프리미티브를 사용 하여 가져옵니다). Primitive는 $이 이진수 배열을 차원으로 지정된 행렬로 8 8만듭니다. 그리고 viewmat단지 시스템 라이브러리입니다.
여기에 이미지 설명을 입력하십시오
창의 크기를 완전히 조정할 수 있습니다.

다음을 줄인 @FrownyFrog에게 감사드립니다.

   load'viewmat'
   viewmat#:8$170 85

viewmat 8$#:170 851 바이트 짧음
FrownyFrog

1
viewmat#:8$170 85
FrownyFrog

1

Excel VBA, 82 바이트

입력을받지 않고 A1:H8ActiveSheet 객체 의 범위까지 바둑판을 출력하는 익명의 VBE 즉시 창 기능

Cells.RowHeight=48:[B1:B8,D1:D8,F1:F8,H1:H8].Interior.Color=0:[A2,A4,A6,A8].Delete

이 함수는 먼저 범위에서 4 개의 검은 열을 B1:B8,D1:D8,F1:F8,H1:H8만든 다음 한 셀씩 2,4,6 and 8왼쪽의 행 색상을 오프셋하여 작동합니다 .

샘플 출력

서양 장기판


0

펄 5-80

.PBM 파일을 생성합니다.

print 'P1'.' 400'x2 .$".(((0 x50 .1 x50)x4 .$")x50 .((1 x50 .0 x50)x4 .$")x50)x4

0

PowerShell + GDI, 346 바이트

Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
$f=New-Object Windows.Forms.Form
$f.width=$f.height=450
$g=$f.CreateGraphics()
$f.add_paint({0..7|%{$y=$_;0..7|%{$g.FillRectangle((New-Object Drawing.SolidBrush ("white","black")[($_+$y)%2]),(new-object Drawing.Rectangle ($_*50),($y*50),50,50))}}})
$f.showDialog()

(개행은 세미콜론과 동일하므로 가독성을위한 개행)

내 다른 대답 과는 달리 .NET 어셈블리를 사용하여 GDI + 를 호출합니다. 함수 호출을 호출합니다. 흥미롭게도 길이는 약 두 배입니다.

처음 두 줄은 System.Windows.FormsSystem.Drawing어셈블리를 로드합니다 . 첫 번째는 리터럴 창과 그 위에있는 캔버스에 사용되고 두 번째는 캔버스에 그래픽을 만드는 그리기 개체 (이 코드에서는 브러시)에 사용됩니다.

$f다음 행으로 양식을 작성 width하고height450. 이것은 아닙니다50*8이 숫자는 제목 표시 줄, 닫기 단추 등을 포함하여 양식 창의 경계선 가장자리에 해당하므로이 숫자 .

다음 줄은 캔버스를 만듭니다 $g 빈 생성자를 호출하여 를 . 이것은 시스템의 비 시스템 영역의 왼쪽 상단 0,0이 오른쪽과 아래쪽으로 같고 증가하여 기본적으로 요구 사항에 적합합니다.

다음 줄은을 사용하여 그래픽을 그리는 실제 호출입니다 $f.add_paint({...}). 우리는 각 외부 루프를 통해 0..7도우미 변수 $y를 두 번 반복하여 전달 하여 그래픽 호출을 구성합니다 . 내부 루프마다 캔버스에 .FillRectangle(...,...)사각형을 그리 도록 지시합니다. 첫 번째 매개 변수 SolidBrush는 보드의 위치를 ​​기준으로 색상으로 새 것을 만듭니다. 다른 옵션은 여기 될 수 두번째 매개 변수는 새로운되는 해치, 그라데이션 등의 Rectangle객체가 지정된 x, 시작 $_*50$y*50좌표에 대한 연장50 각 방향. 그것이 0,0왼쪽 상단 임을 기억하십시오 .

마지막 줄은로 출력을 표시합니다 .showDialog(). PowerShell 양식

우리는 객체를 만들고 PowerShell은 파이프 라인에 관한 것이므로 팝업 폼을 닫으면 System.Enum.DialogResult객체가 Cancel기술적으로 사용자가 수행 한 것이므로 객체를 통과 합니다 . 우리는 그 결과를 포착하거나 달리 수행하지 않기 때문에 Cancel프로그램이 끝날 때 STDOUT에 단어 가 표시됩니다.


0

고르다. , 8844 8278 바이트

(9,9,50)EXP.SELECT.EXP.RIGHT.SELECT.LEFT.EXP.RIGHT.SELECT.LEFT.EXP.RIGHT.SELECT.LEFT.EXP.RIGHT.SELECT.LEFT.EXP.RIGHT.SELECT.LEFT.EXP.RIGHT.SELECT.LEFT.EXP.RIGHT.SELECT.LEFT.LOG.RIGHT.SELECT.LEFT.LOG.RIGHT.SELECT.EXP.LEFT.SELECT.RIGHT.EXP.LEFT.SELECT.RIGHT.LOG.RIGHT.SELECT.EXP.LEFT.SELECT.RIGHT.LOG.RIGHT.SELECT.EXP.LEFT.LEFT.SELECT.RIGHT.RIGHT.LOG.RIGHT.SELECT.LEFT.LEFT.LEFT.EXP.SELECT.EXP.RIGHT.SELECT.LOG.LEFT.SELECT.EXP.RIGHT.SELECT.RIGHT.EXP.SELECT.EXP.SELECT.EXP.LEFT.SELECT.RIGHT.LOG.LEFT.LEFT.SELECT.RIGHT.RIGHT.LOG.LEFT.LEFT.SELECT.RIGHT.RIGHT.RIGHT.EXP.SELECT.EXP.RIGHT.SELECT.LEFT.LOG.RIGHT.SELECT.LEFT.LOG.RIGHT.SELECT.RIGHT.EXP.SELECT.LEFT.LOG.RIGHT.SELECT.EXP.LEFT.SELECT.LOG.RIGHT.SELECT.RIGHT.EXP.SELECT.EXP.LEFT.SELECT.RIGHT.LOG.LEFT.SELECT.LOG.RIGHT.SELECT.EXP.LEFT.SELECT.RIGHT.RIGHT.EXP.SELECT.LEFT.LOG.RIGHT.SELECT.EXP.LEFT.SELECT.LOG.RIGHT.SELECT.LEFT.EXP.LEFT.SELECT.RIGHT.RIGHT.EXP.LEFT.SELECT.RIGHT.RIGHT.EXP.LEFT.LEFT.LEFT.LEFT.SELECT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.EXP.LEFT.LEFT.SELECT.RIGHT.RIGHT.EXP.LEFT.SELECT.RIGHT.LOG.RIGHT.SELECT.LEFT.LOG.RIGHT.SELECT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.EXP.RIGHT.RIGHT.SELECT.LEFT.LEFT.EXP.RIGHT.SELECT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.EXP.LEFT.SELECT.RIGHT.EXP.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.SELECT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.LOG.RIGHT.SELECT.LEFT.RIGHT.RIGHT.EXP.SELECT.LEFT.LOG.RIGHT.SELECT.EXP.LEFT.SELECT.LOG.RIGHT.SELECT.EXP.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.SELECT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.LOG.RIGHT.SELECT.LEFT.EXP.LEFT.SELECT.RIGHT.RIGHT.RIGHT.EXP.SELECT.EXP.LEFT.SELECT.RIGHT.LOG.LEFT.SELECT.LOG.RIGHT.SELECT.EXP.LEFT.SELECT.RIGHT.RIGHT.EXP.SELECT.LEFT.LOG.RIGHT.SELECT.EXP.LEFT.SELECT.LOG.RIGHT.SELECT.LEFT.EXP.LEFT.SELECT.RIGHT.EXP.LEFT.LEFT.SELECT.RIGHT.RIGHT.RIGHT.RIGHT.EXP.LEFT.LEFT.SELECT.RIGHT.RIGHT.EXP.LEFT.SELECT.RIGHT.LOG.RIGHT.SELECT.LEFT.RIGHT.EXP.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.SELECT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.LOG.RIGHT.SELECT.LEFT.LOOP.RIGHT.RIGHT.EXP.SELECT.EXP.LEFT.SELECT.RIGHT.LOG.LEFT.SELECT.LOG.RIGHT.SELECT.EXP.LEFT.SELECT.RIGHT.EXP.LEFT.LEFT.SELECT.RIGHT.RIGHT.LOG.RIGHT.SELECT.LEFT.CONJ.RIGHT.EXP.LEFT.SELECT.RIGHT.EXP.LEFT.LEFT.LEFT.SELECT.RIGHT.RIGHT.RIGHT.LOG.RIGHT.SELECT.LEFT.EXP.LEFT.LEFT.SELECT.RIGHT.RIGHT.LOG.RIGHT.SELECT.EXP.SELECT.EXP.RIGHT.SELECT.LEFT.EXP.RIGHT.SELECT.LEFT.EXP.RIGHT.SELECT.LEFT.EXP.RIGHT.SELECT.LEFT.EXP.RIGHT.SELECT.LEFT.EXP.RIGHT.SELECT.LEFT.EXP.RIGHT.SELECT.LEFT.LOG.RIGHT.SELECT.LEFT.LOG.RIGHT.SELECT.EXP.LEFT.LEFT.SELECT.RIGHT.RIGHT.LOG.RIGHT.SELECT.EXP.LEFT.LEFT.SELECT.RIGHT.RIGHT.LOG.RIGHT.SELECT.EXP.LEFT.SELECT.RIGHT.LOG.RIGHT.SELECT.LEFT.LEFT.EXP.SELECT.RIGHT.LOG.LEFT.SELECT.EXP.RIGHT.SELECT.RIGHT.EXP.SELECT.EXP.RIGHT.SELECT.LEFT.LOG.RIGHT.SELECT.LEFT.LOG.RIGHT.SELECT.EXP.LEFT.SELECT.RIGHT.EXP.LEFT.LEFT.SELECT.RIGHT.RIGHT.LOG.RIGHT.SELECT.RIGHT.EXP.SELECT.LEFT.LOG.RIGHT.SELECT.EXP.LEFT.SELECT.LOG.RIGHT.SELECT.LEFT.EXP.LEFT.SELECT.RIGHT.RIGHT.EXP.LEFT.SELECT.RIGHT.LOG.RIGHT.SELECT.LEFT.EXP.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.SELECT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.LOG.LEFT.SELECT.RIGHT.RIGHT.RIGHT.EXP.SELECT.LEFT.LOG.RIGHT.SELECT.EXP.LEFT.SELECT.LOG.RIGHT.SELECT.EXP.LEFT.SELECT.RIGHT.EXP.LEFT.LEFT.SELECT.RIGHT.RIGHT.LOG.RIGHT.SELECT.LEFT.LOOP.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.EXP.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.SELECT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.LOG.RIGHT.SELECT.RIGHT.LOG.SELECT.LOG.RIGHT.SELECT.LEFT.LEFT.END.RIGHT.RIGHT.LOG.SELECT.LOG.RIGHT.SELECT.LEFT.EXP.LEFT.SELECT.RIGHT.LOOP.RIGHT.EXP.LEFT.LEFT.LEFT.SELECT.RIGHT.RIGHT.RIGHT.LOG.RIGHT.SELECT.EXP.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.SELECT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.LOG.RIGHT.SELECT.EXP.LEFT.SELECT.RIGHT.RIGHT.EXP.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.SELECT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.EXP.LEFT.LEFT.SELECT.RIGHT.RIGHT.EXP.LEFT.SELECT.RIGHT.LOG.RIGHT.SELECT.LEFT.LOG.RIGHT.SELECT.LEFT.RIGHT.RIGHT.RIGHT.END.RIGHT.EXP.LEFT.LEFT.LEFT.LEFT.SELECT.RIGHT.RIGHT.RIGHT.RIGHT.LOG.RIGHT.SELECT.EXP.LEFT.SELECT.RIGHT.EXP.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.SELECT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.LOG.RIGHT.SELECT.EXP.LEFT.SELECT.RIGHT.RIGHT.EXP.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.SELECT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.EXP.LEFT.LEFT.SELECT.RIGHT.RIGHT.EXP.LEFT.SELECT.RIGHT.LOG.RIGHT.SELECT.LEFT.LOG.RIGHT.SELECT.EXP.LEFT.SELECT.RIGHT.EXP.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.SELECT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.LOG.RIGHT.SELECT.EXP.LEFT.SELECT.RIGHT.RIGHT.EXP.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.SELECT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.EXP.LEFT.LEFT.SELECT.RIGHT.RIGHT.EXP.LEFT.SELECT.RIGHT.LOG.RIGHT.SELECT.LEFT.LOG.RIGHT.SELECT.RIGHT.EXP.SELECT.LEFT.LOG.RIGHT.SELECT.EXP.LEFT.SELECT.LOG.RIGHT.SELECT.LEFT.EXP.LEFT.SELECT.RIGHT.LOOP.RIGHT.EXP.SELECT.EXP.RIGHT.SELECT.LEFT.EXP.RIGHT.SELECT.LEFT.EXP.RIGHT.SELECT.LEFT.LOG.RIGHT.SELECT.LEFT.LOG.RIGHT.SELECT.RIGHT.EXP.SELECT.EXP.LEFT.SELECT.RIGHT.LOG.LEFT.SELECT.LOG.RIGHT.SELECT.EXP.LEFT.SELECT.RIGHT.RIGHT.EXP.SELECT.LEFT.LOG.RIGHT.SELECT.EXP.LEFT.SELECT.LOG.RIGHT.SELECT.LEFT.EXP.LEFT.SELECT.RIGHT.RIGHT.EXP.LEFT.SELECT.RIGHT.EXP.LEFT.LEFT.LEFT.SELECT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.EXP.SELECT.LEFT.LOG.RIGHT.SELECT.EXP.LEFT.SELECT.LOG.RIGHT.SELECT.EXP.SELECT.EXP.RIGHT.SELECT.LEFT.EXP.RIGHT.SELECT.LEFT.EXP.RIGHT.SELECT.LEFT.EXP.LEFT.LEFT.SELECT.RIGHT.RIGHT.LOG.RIGHT.SELECT.LEFT.EXP.LEFT.SELECT.RIGHT.LOG.RIGHT.SELECT.EXP.LEFT.LEFT.LEFT.LEFT.SELECT.RIGHT.RIGHT.RIGHT.RIGHT.EXP.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.SELECT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.LOG.RIGHT.SELECT.EXP.LEFT.SELECT.RIGHT.RIGHT.EXP.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.SELECT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.EXP.LEFT.LEFT.SELECT.RIGHT.RIGHT.EXP.LEFT.SELECT.RIGHT.LOG.RIGHT.SELECT.LEFT.LOG.RIGHT.SELECT.EXP.LEFT.SELECT.RIGHT.RIGHT.EXP.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.SELECT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.EXP.LEFT.LEFT.SELECT.RIGHT.RIGHT.EXP.LEFT.SELECT.RIGHT.LOG.RIGHT.SELECT.LEFT.LOG.RIGHT.SELECT.LEFT.PRINT.RIGHT.RIGHT.LOG.SELECT.LOG.RIGHT.SELECT.LEFT.LEFT.END.RIGHT.RIGHT.LOG.SELECT.LOG.RIGHT.SELECT.LEFT.EXP.LEFT.SELECT.RIGHT.LOOP.RIGHT.EXP.LEFT.LEFT.LEFT.SELECT.RIGHT.RIGHT.RIGHT.LOG.RIGHT.SELECT.LEFT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.END.RIGHT.RIGHT.EXP.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.SELECT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.LOG.RIGHT.SELECT.EXP.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.LEFT.SELECT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.RIGHT.LOG.RIGHT.SELECT.EXP.LEFT.LEFT.SELECT.RIGHT.RIGHT.EXP.LEFT.SELECT.RIGHT.LOG.RIGHT.SELECT.LEFT.END.

확실히 길지만이 작업을 위해 생성 한 처음 두 버전은 두 배나 길었습니다.

산출:

스크린 샷

작동 방식 :

이를 생성하는 데 사용 된 프로그램은 다음과 같습니다.

init(9,9,50)
makenum(8)
square()
dec()
loop("main",computei=True)
go(1)
makenum(8)
go(1)
copyfrom(-2)
intdiv(-1)
add(-5)           # n%8 blah blah blah blah n//8 k^(n//8) k^(n%8) (n//8+n%8)
go(1)
makeneg1()
exptarget(-1)
go(1)
ifnonpositive("drawtest")
go(1)
makenum(-4,-4)    # n%8 blah blah blah blah n//8 k^(n//8) k^(n%8) n//8+n%8 (-1)^(n//8+n%8) 4 1/2 I k^(-4I) -1 (-4-4I)
go(1)
multiply(-4,-11)   # n%8 blah blah blah blah n//8 k^(n//8) k^(n%8) n//8+n%8 (-1)^(n//8+n%8) 4 1/2 I k^(-4I) -1 -4-4I (nI//8)
add(-16)          # n%8 blah blah blah blah n//8 k^(n//8) k^(n%8) n//8+n%8 (-1)^(n//8+n%8) 4 1/2 I k^(-4I) -1 -4-4I nI//8 k^(nI//8) k^(n%8) (n%8+nI//8)
add(-4)           # n%8 blah blah blah blah n//8 (-1)^(n%8) 4 1/2 I k^(-4I) -1 -4-4I nI//8 k^(nI//8) k^(n%8) n%8+nI//8 k^(n%8+nI//8) k^(-4-4I) ((n%8-4)+I(n//8-4))
output()
endif("drawtest")
go(1)
endloop("main")
writetofile("chessboard4")

즉, (-1) ^ (n // 8 + n % 8)이 아닌 경우 (n % 8-4) + (n // 8-4) i에 사각형을 그리면서 n을 0에서 63 사이로 반복합니다. 양.


그건 정말 골프가 아니에요 : p?
Bruno

작업을 수행하는 가장 짧은 프로그램인지 확신 할 수 없습니다. 그러나이 언어 와이 언어에서 가능한 최상의 솔루션 간의 차이가 프로그램의 전체 길이와 비교하여 중요하지 않다는 것을 확신합니다. 더 짧거나 짧을 수도 있다는 생각이 하나 더 있습니다. 나는 곧 언젠가 그것을 시도 할 것이다.
quintopia

0

자바 스크립트 (ES6), 147

for(i=0;++i<72;)document.write(`<div style="${i%9?'':(++i,'clear:both;')}float:left;width:50px;height:50px;background:#${i&1?'fff':'000'}"></div>`)


0

파이썬, 57 바이트

c=50*"1"+50*"0"
print"P1 400 400 "+4*(200*c+200*c[::-1])

c50 개의 흰색 픽셀과 50 개의 검은 색 픽셀의 선이며 200*c, 앞면에 흰색이있는 행입니다 200*c[::-1].

PPM으로 출력, 사용법 :

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