制作棋盘


23

在PHP挑战中看到了这一点。目的是用最少的代码制作具有64个方格(8 * 8)的棋盘。很简单,我用356字节的PHP代码制作了我的代码(我知道这并不令人印象深刻),我希望看到其他一些方法。只要保持原样,就可以用您选择的语言来完成,因此不会导入。最小字节数获胜。

输出应如下所示:

屏幕截图

而我的代码:

<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 '02

2
因此,某些ASCII魔术是不允许的吗?:(
Denker

4
基本有多基本?“进口”的定义是什么?
门把手

6
它不必是图像,但每个正方形必须至少为50px?在我看来,这是自相矛盾的。
彼得·泰勒,

4
这里的编程语言非常多样化,包括一些专门为打高尔夫球而设计的语言,并且具有许多内置功能。因此,我建议删除对非库函数的限制,并改用默认值(所有导入均以字节数计;发布质询后不编写库)。
lirtosiast '02

Answers:


13

八度,20 18字节

感谢@Bruno削减 2个字节。

imshow(invhilb(8))

结果:

在此处输入图片说明

此答案使用此处找到的技术。它还依赖于图形窗口的大小,以八度为单位自动缩放图像。


1
@AlexA。我也不完全相信正方形必须精确地为50x50像素,因为接下来的规则是“输出格式或大小不相关...”。人们要求在评论中进行澄清,但问题尚未更新。
烧杯'02

编辑了问题。测试了您的代码并且它可以正常工作,因此当前您的字节数最少:)
Bruno

还删除了> 0,它仍然有效,因此您可以在那里剃2个字节
Bruno

@布鲁诺什么?那太疯狂了。因此,显然是将矩阵的值(全部为<< 0或>> 1)限制为0和1。感谢您的技巧,我将进行更新!:D
烧杯

恭喜2k!
NoOneIsHere

26

vim,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)的输出:

输出


2
我喜欢您可以使用文本编辑器完成图形输出挑战。还有其他来自高尔夫vim的PBM的例子吗?
ankh-morpork '02

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三角形角以外,大多数渐变都是透明的。(请参见下面的代码段)。添加偏移量为50x50像素的第二个渐变会填充正方形的缺失部分。然后,增加身体的大小可以使生成的图案重复出现,以填满整个棋盘。


整洁的解决方案。如果删除最后一个,它也应该工作}
insertusername此处

您能解释一下发生了什么吗?
瑕疵的

@flawr我添加了第二个片段,显示了部分效果,希望对您有所帮助。
Neil

太棒了。
并非查尔斯

您真的需要html{background:#fff}吗?默认情况下,有99%的浏览器将背景设置为白色afaik
Downgoat

15

Mathematica,34个字节

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

输出是矢量图像,并被包围在一帧中。

除了正确定位32个矩形,我们还可以生成一个二进制矩阵并ArrayPlot为我们工作:

在此处输入图片说明


真好!感谢您发布。
西蒙斯(Simmons)

看起来不错。能否请您解释一下您将每个正方形定义为50px的位置?另外,是否有一个在线模拟器可以在其中进行测试?
布鲁诺

@Bruno输出是矢量图形,因此没有象素大小之类的东西(图像没有固有大小-可以缩放为任意大小并以任何大小显示)。这就是为什么我问。
Martin Ender

4
等一下,GenerateChessBoardWithColorsAsParameters[ColorBlack, ColorWhite, 8, 8, 50, 50]行不通吗?;)
Conor O'Brien

3
@CᴏɴᴏʀO'Bʀɪᴇɴ它确实可以,但这是73个字节。
马丁·恩德

10

Mathematica,81 72 55字节

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

输入输出

该图像是先前版本的评估,但看起来仍然相同。


8

八度,48字节

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

这与我的Matlab答案完全相同,但是spiralOctave中没有。取而代之的是,我们使用Matlab所不具备的功能:我们可以将t已经分配的值用作表达式,以后t再在同一表达式中使用。

(这是重新缩放的版本,我不想在这里弄乱答案=)


1
左上角应该是白色,而不是黑色。
门把手

2
输出应为棋盘格,未指定方向。
瑕疵的

2
抱歉,骗子,输出应该是棋盘。棋盘总是“颜色为女王,右边为白色”(意味着每个玩家的右手都有一个白色的角正方形)。
corsiKa 2016年

5
然后想象一个坐在右边的玩家,一个坐在左边的玩家。再说一次:挑战并没有说明,这只是您的解释。
瑕疵的

8

纯Bash(无外部公用程序),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实用程序进行查看:

在此处输入图片说明

这种图像格式很不错,因为它不仅是纯文本,而且仅是所有像素(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格式,以便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而节省了六个字节

1..8与提供的PHP示例类似,它使用两个for循环来生成big-ol'HTML字符串,并将其输出到管道中。每次通过,我们;background:#000通过以2为模在木板上的当前位置来计算是否添加黑色背景。

要使用,请将输出重定向到您选择的文件中(例如使用> chessboard.htm),然后在您选择的浏览器中启动它。对于下面的屏幕截图,我使用了“ c.htm”和Firefox。

火狐


这是一个没被忽视的,但我有点喜欢它:)
Bruno

white并且black可以#fff#000......但为什么还要指定白色的?
并非查尔斯

试一试(";background:#000","")[($a+$_)%2]
并不是说查尔斯

@NotthatCharles Durr,让我的白色和黑色人字拖翻转,所以它只输出白色方块。更正了额外的4个字节。
AdmBorkBork '16

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作为第一个for参数使其正常工作,最终结果为144个字节。
布鲁诺

1
@Bruno如果您参考警告,则此处忽略警告。但是,有成千上万种禁用它们的方法。其中之一是替换++$i<9@++$i<9。另外,要使其不使用<?php,则必须具有指令short_open_tags=On,这在某些环境中是默认设置。在stackoverflow.com/a/2185331/2729937
Ismael Miguel

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字节)

在此之前的最新果冻解释器无法x正确向量化。在最新版本中,可以另外保存2个字节。

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

唯一的区别是x50产生一个平面列表(每个原始元素重复50次),因此F不再需要。


1
看来您在写Java答案,并且在键入;...的同时略微入睡了;;)
Conor O'Brien

1
@CᴏɴᴏʀO'BʀɪᴇɴJava?您必须使用Java 10.0,Golfing Edition,因为它看起来与我见过的任何Java都不一样
。...– BalinKingOfMoria

5

MATL,11(27)个字节

8:t!+Q2\TYG

这将产生下图。它没有内在的大小。它会根据图形窗口的大小自动缩放。挑战似乎允许这样做。

在此处输入图片说明

说明

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

相当于Python

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

在这里尝试(只需颜色值)

输出:

输出量


在字节数上做得很好,但我需要有效的输出并带有可见的正方形:)
Bruno

@Bruno输出已添加!我为您安装了PIL:O(我之前从未进行过实际测试)
蓝色

@muddyfish麻烦您了,谢谢。董事会必须以白色正方形tho开头和结尾:)
Bruno

4

Matlab,47(24)字节

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

这和我的Octave答案完全一样,但是我可以使用spiral它保存一个字节。spiral(n)制作一个nxn矩阵,并以第一个n^2整数螺旋形式填充它。

如果允许矢量图形,我们可以在24个字节中完成:

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

(这是重新缩放的版本,我不想在这里弄乱答案=)


4

FFmpeg,78 82100字节

终于到处清洁木板。

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>▚▚▚▚

▚是实体&#9626的简称utf

Unicode字符“ QUADRANT左上和右下”(U + 259A)

愚蠢的我,一直在寻找1 utf-8 char解决方案-本来应该... 1b!


2
好像fontsize是错误的。
Qwertiy

1
您应该改用左上角的正方形,就像在标准棋盘上一样。另外,请使用<pre>代替,<div>以便您可以使用换行符代替<br>
尼尔

您的字节数似乎是错误的,应该为98字节,因为使用UTF-8编码的3字节计数。将来,您可以使用来检查您的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个字节-在这里感谢@insertusername
  • 剃光了10个字节-感谢@ msh210
  • 剃光了30个字节-感谢@Ismael Miguel

1
也许可以打更多的球,但是这里您可以使用(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;}}
insertusername此处

虽然我没有删除最初的任务(工作,个人怪癖不会让我这样做),谢谢您
Shaun H

1
即使是HTML 4 的严格版本也可以跳过的结束标记TR
msh210 '16

1
替换++$i<65@++$i<65,因为您担心警告。这意味着您可以减少$m=$i=0到just $m=0,从而节省2个字节。相反echo 'a'.'b'.'c';,您可以这样做echo 'a','b','c';。这意味着您echo可以echo'<td style="width:50px;height:50px;background:#',($i+$m)%2?'':'000','">';节省更多的2个字节。另外,HTML属性不需要引号。删除它们并保存2个字节。此外,还有一个更短的bgcolor属性,它减少了更多的字节!您可以print()在中使用for来保存更多字节!
Ismael Miguel

1
为了节省更多,我用代替($i+$m)%2$i+@$m&1它,使我可以删除它$m=0。提前,我已经可以删除您的if,并通过进行三步操作将其替换。为了节省更多,我删除了您style并添加了属性widthheight。为了更深入了解hacker方面,我发现如果Chrome浏览器48.0.2564.103 m的背景色为0,则使用属性使用黑色bgcolor。那使我能够减少更多!减价越多越好!
伊斯梅尔·米格尔

1

JavaScript,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
never,我从不知道JavaScript中的模板字符串。凉。
Cheezey '16

1

iKe,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

Ruby with Shoes,97个字符

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

样本输出:

Ruby用鞋子画的棋盘


应该以白色开头和结尾。否则好工作:)
布鲁诺

哎呀。谢谢@布鲁诺。固定。
manatwork '16

好极了:)
Bruno

1

LUA +爱,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绘制的棋盘


r!Lua 5.3具有//整数除法运算符,但显然还没有使用LuaJIT构建它的LÖVE。☹
manatwork

1

GIMP,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脚本-

(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(我们使用#:原始函数来获取它)。图元将$这个二进制数字数组整形为指定尺寸的矩阵8 8。并且viewmat仅仅是一个系统库。 窗口是完全可调整大小的。
在此处输入图片说明

感谢@FrownyFrog将其缩短为:

   load'viewmat'
   viewmat#:8$170 85

viewmat 8$#:170 85是短1个字节
FrownyFrog

1
viewmat#:8$170 85
FrownyFrog

1

Excel VBA,82字节

匿名VBE立即窗口函数,不输入任何内容,并将棋盘输出到A1:H8ActiveSheet对象上的范围

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

Perl 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在下一行创建表单,并将其widthheight设置为450。请注意,这不是50*8,因为这些数字与表单窗口的边框到边界相对应,包括标题栏,关闭按钮等。

下一行$g通过调用空构造函数来创建画布。默认情况下,表单的非系统区域的左上角等于0,0并向右和向下递增,非常适合我们的需求。

下一行是使用绘制图形的实际调用$f.add_paint({...})。我们通过从每个外部循环中0..7进行两次for循环并携带一个辅助变量$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从0循环到63,在(n%8-4)+(n // 8-4)i处绘制一个正方形正。


那不是真的高尔夫吗:p?
布鲁诺

我不确定这是执行任务的最短程序,不是。但是,我可以肯定的是,与该程序的总长度相比,此语言与最佳解决方案之间的区别不大。我想到的另一个想法是,可能会或可能不会更短。我会尽快尝试的。
quintopia'2

0

JavaScript(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

Python,57个字节

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

c 是50个白色像素和50个黑色像素的线, 200*c的行是一行在前面(200*c[::-1]反向)带有白色的行。

输出为PPM,用法:

python golf_chess.py > chess.ppm
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.