एक बिसात बनाएँ


23

एक PHP चुनौती में यह देखा। उद्देश्य 64 वर्गों (8 * 8) के साथ कोड की न्यूनतम राशि के साथ एक शतरंजबोर्ड बनाना है। पर्याप्त सरल, मैंने 356 बाइट्स में PHP में खान बनाया (प्रभावशाली नहीं, मुझे पता है) और मैं कुछ अन्य aproaches देखना चाहूंगा। यह आपकी पसंद की भाषा में बनाया जा सकता है, जब तक आप इसे वेनिला रखते हैं, इसलिए कोई आयात नहीं करता है। सबसे छोटी बाइट गिनती जीतती है।

आउटपुट इस तरह दिखना चाहिए:

स्क्रीन टोपी

और मेरा कोड:

<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 से कोई लेना-देना नहीं है, इसलिए मैंने आपके टैग बदल दिए हैं। इसके अलावा, मेरा मानना ​​है कि आपका संदर्भ कार्यान्वयन आपके प्रश्न में नहीं, उत्तर के रूप में है। जैसा कि स्टीवी लाया गया था, आपको छवि आउटपुट के आवश्यक आकार, साथ ही साथ रंग की बारीकियों और क्या एक हानिपूर्ण छवि की अनुमति दी जानी चाहिए।
FryAmTheEggman 17

2
तो कुछ ASCII- जादू की अनुमति नहीं है? :(
डेनकर

4
कितना बुनियादी है? "आयात" की परिभाषा क्या है?
दरवाज़े

6
यह एक छवि होने की जरूरत नहीं है, लेकिन प्रत्येक वर्ग कम से कम 50px होना चाहिए? यह मेरे लिए आत्म-विरोधाभासी लगता है।
पीटर टेलर

4
यहां प्रोग्रामिंग भाषाएं बहुत विविध हैं, जिनमें कुछ विशेष रूप से गोल्फ के लिए बनाई गई हैं और कई बिलियन फ़ंक्शन हैं। इसलिए, मैं सलाह देता हूं कि गैर-पुस्तकालय कार्यों पर प्रतिबंध हटा दिया जाए, और यह प्रश्न इसके बजाय डिफ़ॉल्ट का पालन करें (सभी आयात बाइट गिनती में गिना जाता है; चुनौती पोस्ट किए जाने के बाद लिखे गए कोई पुस्तकालय नहीं)।
lirtosiast

जवाबों:


13

ऑक्टेव, 20 18 बाइट्स

2 बाइट्स बंद करने के लिए @Bruno को धन्यवाद ।

imshow(invhilb(8))

परिणाम:

यहाँ छवि विवरण दर्ज करें

यह उत्तर यहां मिली एक तकनीक का उपयोग करता है । यह आंकड़ा विंडो के आकार के आधार पर ऑक्टेव में छवियों के स्वचालित स्केलिंग पर भी निर्भर करता है।


1
@AlexA। मुझे यह भी पूरी तरह से यकीन नहीं है कि वर्गों को बिल्कुल 50x50 पिक्सल होना चाहिए, क्योंकि अगले नियम में कहा गया है "आउटपुट प्रारूप या आकार प्रासंगिक नहीं है ..."। लोगों ने टिप्पणियों में स्पष्टीकरण मांगा है, लेकिन सवाल अपडेट नहीं किया गया है।
बीकर

प्रश्न संपादित किया। अपने कोड का परीक्षण किया और यह काम कर रहा है, इसलिए वर्तमान में आपके पास सबसे कम बाइट गिनती है :)
ब्रूनो

> 0 को भी हटा दिया और यह अभी भी काम करता है ताकि आप वहाँ 2 बाइट्स शेव कर सकें
ब्रूनो

@ ब्रूनो क्या? वह जंगली है। तो यह जाहिरा तौर पर मैट्रिक्स के मूल्यों को जकड़ रहा है (जो सभी << 0 या >> 1 हैं) से 0 और 1. टिप के लिए धन्यवाद, मैं अपडेट करूंगा! : D
बीकर

2k पर बधाई!
NoOneIsHere

26

विम, ४ 47 ४६ ४४ ४३

पार किया 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
मुझे लगता है कि आप एक पाठ संपादक के साथ एक ग्राफिकल आउटपुट चुनौती को पूरा कर सकते हैं। क्या गोल्फ विम से पीबीएम के कोई अन्य उदाहरण हैं?
आख-मोर्पोर्क

1
@ dohaqatar7 मुझे पता नहीं है, लेकिन मैंने पहले विम के साथ TikZ किया है, इसलिए विम में ग्राफिक्स सुनिश्चित करने के लिए एक बात है।
दरवाज़े

2
वाह, मैंने कभी भी <C-p>एक शब्द टाइप करना शुरू किए बिना विम में कोशिश करने के बारे में नहीं सोचा ... यह वास्तव में आसान है!
डेस्टिनेशन

16

सीएसएस, 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 ऑफसेट भरता के साथ दूसरा ढाल जोड़ना। शरीर के आकार को बढ़ाना तब परिणामी पैटर्न को पूरे शतरंज की बिसात को दोहराने की अनुमति देता है।


नीट समाधान। यदि आप अंतिम ड्रॉप करते हैं तो यह भी काम करना चाहिए }
आवेषण

क्या आप बता सकते हैं कि यहाँ क्या हो रहा है?
दोष

@flawr मैंने आंशिक प्रभाव दिखाते हुए एक दूसरा स्निपेट जोड़ा है, मुझे आशा है कि इससे मदद मिलेगी।
नील

यह पूर्ण है।
नहीं कि चार्ल्स

क्या आपको वास्तव में जरूरत है html{background:#fff}? डिफ़ॉल्ट रूप से 99% ब्राउज़र पृष्ठभूमि को सफ़ेद, एफैक पर सेट करते हैं
एफएक

15

गणितज्ञ, 34 बाइट्स

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

आउटपुट एक वेक्टर छवि है और एक फ्रेम में घिरा हुआ है।

32 आयतों को सही ढंग से स्थान देने के बजाय, हम केवल एक बाइनरी मैट्रिक्स उत्पन्न कर सकते हैं और बना सकते हैं ArrayPlot हमारे लिए काम कर सकते हैं:

यहाँ छवि विवरण दर्ज करें


अच्छा! इसे पोस्ट करने के लिए धन्यवाद।
एक सीमन्स

फब लगीं। क्या आप मुझे समझा सकते हैं कि आप प्रत्येक वर्ग को 50px के रूप में कहाँ परिभाषित करते हैं? इसके अलावा, क्या कोई ऑनलाइन एमुलेटर है जहां मैं इसका परीक्षण कर सकता हूं?
ब्रूनो

@ ब्रूनो आउटपुट एक वेक्टर ग्राफिक है, इसलिए पिक्सेल आकार जैसी कोई चीज नहीं है (छवि का कोई आंतरिक आकार नहीं है - इसे किसी भी आकार में बढ़ाया और प्रदर्शित किया जा सकता है)। इसीलिए मैंने पूछा।
मार्टिन एंडर

4
रुको, GenerateChessBoardWithColorsAsParameters[ColorBlack, ColorWhite, 8, 8, 50, 50]काम नहीं करता है? ;)
कोनोर ओ'ब्रायन

3
@ C @O'Bʀɪᴇɴ यह करता है, लेकिन यह 73 बाइट्स है।
मार्टिन एंडर

10

गणितज्ञ, atic१ 81२ 55 बाइट्स

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

इनपुट आउटपुट

छवि पिछले संस्करण के मूल्यांकन की है, लेकिन फिर भी वही दिखता है।


8

ऑक्टेव, 48 बाइट्स

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

यह ठीक वैसे ही काम करता है जैसे मेरे मतलूब जवाब देते हैं , लेकिन वहाँ कोई नहीं हैspiral ऑक्टेव में है। इसके बजाय हम एक ऐसी सुविधा का उपयोग करते हैं, जिसमें मतलाब नहीं है: हम tपहले से ही एक अभिव्यक्ति के रूप में असाइनमेंट का उपयोग कर सकते हैं , और बाद tमें उसी अभिव्यक्ति में फिर से उपयोग कर सकते हैं ।

(यह पुनर्विकसित संस्करण है, मैं यहाँ उत्तरों को अव्यवस्थित नहीं करना चाहता हूँ =)


1
ऊपर का बायां कोना सफेद होना चाहिए, काला नहीं।
दरवाज़े

2
आउटपुट एक बिसात होना चाहिए, अभिविन्यास निर्दिष्ट नहीं किया गया था।
20

2
क्षमा करें, त्रुटिपूर्ण, आउटपुट एक शतरंजबोर्ड होना चाहिए। एक शतरंजबोर्ड हमेशा "उसके रंग पर रानी, ​​दाईं ओर सफेद होता है" (जिसका अर्थ है कि प्रत्येक खिलाड़ी के दाहिने हाथ में एक सफेद कोने वाला वर्ग है)।
corsiKa

5
फिर एक खिलाड़ी को दाईं ओर बैठा, एक को बाईं ओर। फिर से: यह चुनौती द्वारा निर्दिष्ट नहीं किया गया था, यह सिर्फ आपकी व्याख्या है।
21

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 प्रारूप में है । ध्यान दें यह शुद्ध बैश है। इस आउटपुट को उत्पन्न करने के लिए न तो Imagemagick और न ही किसी अन्य बाहरी उपयोगिताओं को जन्म दिया गया है। हालाँकि, आउटपुट को .txt फ़ाइल पर पुनर्निर्देशित किया जा सकता है और ImageMagick displayउपयोगिता के साथ देखा जा सकता है :

यहाँ छवि विवरण दर्ज करें

यह छवि प्रारूप अच्छा है क्योंकि न केवल यह शुद्ध पाठ है, यह सभी पिक्सेल (x, y और रंग मान), प्रति पंक्ति एक सूची की तुलना में थोड़ा अधिक है। एक बड़े लूप में अंकगणित के सभी पिक्सेल मूल्यों को प्राप्त करना काफी सरल मामला है।


पिछला उत्तर, १६ answer

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 + ब्राउज़र, 149 143 बाइट्स

आयात का उपयोग करने में असमर्थता वास्तव में कठिन है, क्योंकि 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 एक बड़ा-ol 'HTML स्ट्रिंग उत्पन्न करने के , जो प्रदान किए गए PHP उदाहरण के समान है, और इसे पाइपलाइन पर आउटपुट करता है। हर बार जब हम गणना करते हैं कि क्या जोड़ना है;background:#000 बोर्ड मोडुलो 2 पर हमारी वर्तमान स्थिति को देखते हुए काली पृष्ठभूमि के ।

उपयोग करने के लिए, आउटपुट को अपनी पसंद की फ़ाइल (जैसे कुछ के साथ > chessboard.htm) में पुनर्निर्देशित करें और फिर अपनी पसंद के ब्राउज़र में लॉन्च करें। नीचे स्क्रीनशॉट के लिए, मैंने "c.htm" और फ़ायरफ़ॉक्स का उपयोग किया।

फ़ायरफ़ॉक्स


यह एक नहीं था, लेकिन मुझे यह किसी भी तरह पसंद है :)
ब्रूनो

whiteऔर blackहो सकता है #fffऔर #000... लेकिन सफेद को परेशान करने के लिए परेशान क्यों?
नहीं कि चार्ल्स

(";background:#000","")[($a+$_)%2]इसके बजाय प्रयास करें ।
चार्ल्स

@ नोथरचर्ल्स ड्यूर, मेरे सफेद और काले फ्लिप-फ्लॉप थे, इसलिए यह केवल सफेद वर्गों का उत्पादन कर रहा था। सहेजे गए अतिरिक्त 4 बाइट्स के लिए ठीक किया गया।
AdmBorkBork

5

PHP + CSS + HTML, 136 बाइट्स

तालिका aproach को उच्च स्तर पर ले जाना:

<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 को शामिल करना था? और 144 बाइट्स का अंतिम परिणाम देते हुए, इसे ठीक से काम करने के लिए पैरामीटर के रूप में $ i = 0 शामिल करें।
ब्रूनो

1
@Bruno यदि आप इसके द्वारा दी गई चेतावनी का उल्लेख करते हैं, तो चेतावनियाँ यहाँ अस्वीकृत हैं। हालाँकि, उन्हें अक्षम करने के ट्रिलियन तरीके हैं। उनमें से एक के ++$i<9साथ प्रतिस्थापित करना है @++$i<9। इसके अलावा, इसके बिना काम करने के लिए <?php, किसी के पास निर्देश होना चाहिए short_open_tags=On, जो कुछ वातावरणों पर डिफ़ॉल्ट है। पर और अधिक पढ़ें stackoverflow.com/a/2185331/2729937
इस्माइल मिगुएल

5

जेली, 26 बाइट्स

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

चूंकि जेली में निर्मित छवियों के लिए कोई समर्थन नहीं है, इसलिए हम एक पीपीएम छवि प्रिंट करते हैं।

इसे ऑनलाइन आज़माएं!(गति के लिए छोटा बोर्ड, कच्चा पीपीएम)

परिणाम

स्क्रीनशॉट

यह काम किस प्रकार करता है

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
ऐसा लगता है कि आप एक जावा उत्तर लिख रहे थे और सोते समय थोड़ा सा नीचे सो रहे थे ;...;)
कॉनर ओ'ब्रायन

1
@ C @O'Bʀɪᴇɴ Java? आपको जावा 10.0, गोल्फिंग एडिशन पर होना चाहिए, क्योंकि जो मैंने देखा है वह किसी भी जावा जैसा नहीं दिखता है ....
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

पायथ, 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 आउटपुट जोड़ा गया! मैंने आपके लिए सिर्फ पीआईएल स्थापित किया: ओ (मैंने पहले वास्तव में इसका परीक्षण नहीं किया था)
ब्लू

@ मुडफिश को परेशानी और धन्यवाद के लिए खेद है। बोर्ड को एक सफेद वर्ग के साथ शुरू होना चाहिए और समाप्त होना चाहिए :)
ब्रूनो

4

मतलाब, 47 (24) बाइट्स

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

यह मेरे ऑक्टेव उत्तर के समान ही काम करता है , लेकिन मैं उपयोग करने में सक्षम था spiralजिसने एक बाइट को बचाया। 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

सीजेएम, 27 बाइट्स

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

इसे ऑनलाइन आज़माएं! (गति के लिए छोटा बोर्ड, कच्चा पीपीएम)

परिणाम

स्क्रीनशॉट

यह काम किस प्रकार करता है

"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 - 66b के साथ HTML

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

& इकाई के लिए लघु-प्रत्यक्ष utf है & # 9626;

यूनिकोड कैरेक्टर 'QUADRANT UPPER LEFT AND LOWER RIGHT' (U + 259A)

मूर्खतापूर्ण मुझे, एक 1 utf-8 चार समाधान की तलाश में था - 1b गया है ...!


2
फॉण्टाइज़ जैसा लगता है गलत है।
क्वर्टी

1
आपको इसके बजाय उपयोग करना चाहिए ताकि शीर्ष-बाएं वर्ग सफेद हो जैसे एक मानक बिसात। इसके अलावा, उपयोग <pre>के बजाय <div>, ताकि आप के बजाय नई-पंक्तियों का उपयोग कर सकते <br>
नील

आपका बाइटकाउंट गलत प्रतीत होता है, यह 98 बाइट्स होना चाहिए, क्योंकि यूटीएफ -8 एन्कोडिंग का उपयोग करके 3 बाइट्स के लिए मायने रखता है। भविष्य में, आप उपयोग कर सकते हैं इस अपने UTF-8 बाइट गणना की जाँच करने के
टेलर स्कॉट

2

PHP, 166 158 155 बाइट्स

PHP 7.0.2 (शॉर्ट-टैग सक्षम) और Chrome 48.0.2564.97 मीटर में काम करता है

<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, जो कुछ बाइट्स दाढ़ी चाहिए।
इस्माइल मिगुएल

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 बाइट्स - धन्यवाद @ इस्माइल मिगुएल

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;}}
इन्सर्टुसेनमेयर

जब मैंने शुरुआती असाइनमेंट नहीं निकाले (वर्क्स, पर्सनल क्विकर मुझे ऐसा करने नहीं देगा), इसके लिए धन्यवाद
शॉन एच

1
यहां तक कि HTML 4 के सख्त संस्करण के अनुसार , आप के लिए अंतिम टैग को छोड़ सकते हैंTR
msh210

1
के ++$i<65साथ बदलें @++$i<65, क्योंकि आप चेतावनियों के बारे में चिंतित हैं। इसका मतलब है कि आप $m=$i=0सिर्फ $m=02 बाइट्स बचाकर, कम कर सकते हैं । इसके बजाय echo 'a'.'b'.'c';, आप कर सकते हैं echo 'a','b','c';। इसका मतलब यह है कि आपका अधिक 2 बाइट्स बचा echoसकता है echo'<td style="width:50px;height:50px;background:#',($i+$m)%2?'':'000','">';। इसके अलावा, HTML विशेषताओं को उद्धरण की आवश्यकता नहीं है। उन्हें और sabe 2 बाइट्स निकालें। इसके अलावा, एक बहुत छोटी bgcolorविशेषता है, जो अधिक बाइट्स को कम करता है! और भी बाइट्स बचाने print()के forलिए आप इसमें a का उपयोग कर सकते हैं !
इस्माइल मिगुएल

1
और भी अधिक सहेजने के लिए, मैंने उसके ($i+$m)%2साथ प्रतिस्थापित कर दिया है $i+@$m&1, जिसने मुझे इसे हटाने की अनुमति दी है $m=0। आगे, मैं आपके हटाने में सक्षम हूं if, और इसे एक ट्रेनी ऑपरेशन के साथ बदल दिया। और भी अधिक बचाने के लिए , मैंने आपके को हटा दिया है styleऔर गुणों को जोड़ा है widthऔरheight । हैकी पक्ष में और भी अधिक प्राप्त करने के लिए, मुझे लगा कि क्रोम 48.0.2564.103 मीटर का उपयोग करता है यदि पृष्ठभूमि का रंग 0संपत्ति का उपयोग कर रहा है bgcolor। यह मुझे कभी अधिक कम करने की अनुमति देता है! अधिक कटौती बेहतर है!
इस्माईल मिगुएल

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
हुह, मुझे जावास्क्रिप्ट में टेम्प्लेट स्ट्रिंग्स के बारे में कभी नहीं पता था। ठंडा।
Cheezey

1

आइक , 24 बाइट्स

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

मंडल

तकनीक का मूल एक्स निर्देशांक की एक सूची उत्पन्न करना है, उन्हें विभाजित करना है और फिर एक उपयुक्त बिटमैप उत्पन्न करने के लिए एक समानता क्रॉस-उत्पाद लेना है। उदाहरण के लिए छोटे उदाहरणों का उपयोग करना:

  !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 पिक्सेल कैनवस पर काम करता है, लेकिन फुल-स्क्रीन मोड में (डिफ़ॉल्ट रूप से किसी सहेजे गए लिंक का अनुसरण करते हुए) यह 3x से बढ़ जाता है। मुझे लगता है कि यह अभी भी सवाल की भावना का अनुसरण कर रहा है, क्योंकि कार्यक्रम एक ही चरित्र गणना के साथ बहुत बड़े बिटमैप को इकट्ठा कर सकता है; यह सिर्फ एक मनमाना प्रदर्शन सीमा तक नीचे आता है।

अद्यतन करें:

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 फिक्स्ड।
मैनटवर्क

महान, उत्थित :)
ब्रूनो

1

Lua + LuaVE, 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 द्वारा तैयार किया गया


Grr! Lua 5.3 में //पूर्णांक डिवीजन ऑपरेटर है, लेकिन जाहिर है कि LUJIT के साथ निर्मित 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))'

अनप्लग्ड स्कीम स्क्रिप्ट-फू:

(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 और बाहर निकलें।

आउटपुट:

शतरंज की बिसात


1

जम्मू, 33 31 बाइट्स

मैंने बाइनरी के साथ एक चाल का उपयोग किया।

   load'viewmat'
   viewmat 8 8$#:43605

... क्योंकि बाइनरी में 43605 1010101001010101 है (हम #:इसे प्राप्त करने के लिए आदिम का उपयोग करते हैं)। आदिम $बाइनरी अंकों के इस सरणी को आयामों के साथ निर्दिष्ट मैट्रिक्स में आकार देता है 8 8। और viewmatसिर्फ एक सिस्टम लाइब्रेरी है।
यहाँ छवि विवरण दर्ज करें
खिड़की पूरी तरह से आकार बदलने योग्य है।

इसे छोटा करने के लिए @FrownyFrog को धन्यवाद:

   load'viewmat'
   viewmat#:8$170 85

viewmat 8$#:170 851 बाइट छोटा है
फ्रॉन्फ्रोग

1
viewmat#:8$170 85
FrownyFrog

1

एक्सेल 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

पर्ल 5 - 80

एक .PBM फ़ाइल बनाता है:

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

0

पावरशेल + जीडीआई, 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()

(newlines अर्धविराम के रूप में एक ही गणना, पठनीयता के लिए newlines)

मेरे अन्य उत्तर के विपरीत , यह GDI + को कॉल करने के लिए .NET असेंबली का उपयोग करता है फ़ंक्शन कॉल । दिलचस्प बात यह है कि इसकी लंबाई लगभग दोगुनी है।

पहली दो लाइनें लोड होती हैं System.Windows.Formsऔर System.Drawingअसेंबली होती हैं। पहले का उपयोग शाब्दिक खिड़की और कैनवास के लिए किया जाता है, दूसरा ड्राइंग ऑब्जेक्ट (इस कोड, एक ब्रश) के लिए उपयोग किया जाता है जो कैनवास पर ग्राफिक्स बनाते हैं।

फिर हम $fअगली लाइन के साथ अपना फॉर्म बनाते हैं , और उसका सेट widthऔर heightहोना चाहते हैं 450। ध्यान दें कि यह नहीं है 50*8, क्योंकि ये संख्याएँ प्रपत्र विंडो के बॉर्डर-टू-बॉर्डर किनारे से मेल खाती हैं, जिसमें टाइटलबार, क्लोज बटन, आदि शामिल हैं।

अगली लाइन $gखाली कंस्ट्रक्टर को कॉल करके हमारे कैनवास बनाती है। यह फॉर्म के गैर-सिस्टम क्षेत्र के ऊपरी-बाएं को बराबर 0,0और हमारी आवश्यकताओं के लिए सही और नीचे की ओर बढ़ने के लिए डिफॉल्ट करता है ।

अगली पंक्ति वास्तविक कॉल है जो ग्राफिक्स को खींचती है, साथ $f.add_paint({...})। हम ग्राफिक्स कॉल का निर्माण प्रत्येक बाहरी लूप के माध्यम से 0..7सहायक चर को डबल- ले जाने के लिए $yकरते हैं। प्रत्येक आंतरिक लूप, हम .FillRectangle(...,...)अपने वर्गों को खींचने के लिए अपने कैनवास को बताते हैं । पहला पैरामीटर SolidBrushएक रंग के साथ एक नया निर्माण करता है जहां हम बोर्ड पर हैं। यहाँ अन्य विकल्प हो सकता है एक पक्षियों के बच्चे, एक ढाल, आदि दूसरा पैरामीटर एक नया है Rectangleपर निर्दिष्ट एक्स शुरू करने वस्तु $_*50और $y*50निर्देशांक और के लिए विस्तार 50प्रत्येक दिशा में। याद रखें कि 0,0शीर्ष-बाएँ है।

अंतिम पंक्ति सिर्फ आउटपुट को प्रदर्शित करती है .showDialog()पॉवरशेल फॉर्म

ध्यान दें कि जब से हम एक फॉर्म ऑब्जेक्ट बना रहे हैं , और 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")

दूसरे शब्दों में, लूप n से 0 से 63 तक (n% 8-4) + (n // 8-4) पर एक वर्ग आरेखण यदि (-1) ^ (n // 8 + n% 8) नहीं है सकारात्मक।


वास्तव में यह गोल्फ नहीं है: पी
ब्रूनो

मैं निश्चित नहीं हो सकता कि यह सबसे छोटा कार्यक्रम है जो कार्य करता है, नहीं। हालाँकि, मुझे पूरा यकीन है कि कार्यक्रम की कुल लंबाई की तुलना में इस और इस भाषा में सबसे अच्छा संभव समाधान के बीच अंतर नगण्य है। मेरे मन में एक और विचार है जो छोटा हो सकता है या नहीं भी हो सकता है। मैं इसे कुछ समय के लिए बाहर की कोशिश करूँगा।
क्विंटोपिया


0

पायथन, 57 बाइट्स

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

c50 सफ़ेद और 50 ब्लैक पिक्सल्स 200*cकी एक पंक्ति है, सामने की सफ़ेद के साथ एक पंक्ति है, 200*c[::-1]रिवर्स।

पीपीएम के रूप में आउटपुट, उपयोग:

python golf_chess.py > chess.ppm
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.