একটি চেকবোর্ড তৈরি করুন


20

এই চ্যালেঞ্জের জন্য আপনি চেকারদের একটি গেম শুরু করার সময় প্রতিটি পিসের স্থানাঙ্ক এবং রঙ মুদ্রণ করবেন।

পরীক্ষার বোর্ডে প্রতিটি স্কোয়ারের জন্য x এবং y (কমা বিচ্ছিন্ন) লিখুন, তার পরে একটি "আর" বা "বি" (লাল বা কালো জন্য) যেখানে বোর্ডের শীর্ষ (y = 0 এর কাছাকাছি) থাকবে ) লাল এবং নীচে কালো is টুকরোগুলির মধ্যে নতুন লাইনগুলি প্রয়োজনীয় এবং কোনও ফাঁকা স্থানের প্রয়োজন নেই।

এটি তাই উত্তরগুলি কম বাইটের সাথে আরও ভাল হওয়ার সাথে স্কোর করা হয়।

ট্রেলিং করা নতুন লাইনের অনুমতি রয়েছে তবে প্রয়োজনীয় নয় এবং অর্ডারটি অবশ্যই নীচের দিকের হতে হবে।

পছন্দসই আউটপুট:

0,0r
0,2r
0,4r
0,6r
1,1r
1,3r
1,5r
1,7r
2,0r
2,2r
2,4r
2,6r
5,1b
5,3b
5,5b
5,7b
6,0b
6,2b
6,4b
6,6b
7,1b
7,3b
7,5b
7,7b

3
আপনি এড়িয়ে যাওয়ার কোনও বিশেষ কারণ আছে x=3এবং x=4?
হাইপারনিউটারিনো

1
@ হাইপার নিউট্রিনো কারণ একটি চেকারবোর্ডে কেবল উপরের এবং নীচের 3 টি সারি ভরা আছে (গেমের শুরুতে)
জাস্টিন

3
সুতরাং এটি মূলত চেকারদের শুরু করার জায়গা , ওরফে ইংলিশ খসড়া। এটা কি ঠিক?
আর্নৌল্ড

2
পিপিসি.এসই তে স্বাগতম! এই সাইটের একটি বৈশিষ্ট্য যা আমাদের মধ্যে কেউ কেউ ব্যবহার করতে পছন্দ করে তা হ'ল স্যান্ডবক্স । আপনি না আছে এটি ব্যবহার করতে, কিন্তু এটা একটি দরকারী চ্যানেল, যার মাধ্যমে পুরো downvote / closevote দুর্বিপাক মধ্য দিয়ে যেতে না করেও কোনো নতুন চ্যালেঞ্জ ধারনা আপনি সম্পর্কে আপনার মতামত পেতে হয়।
ডিজিটাল ট্রমা

1
স্থানাঙ্কগুলি কি নতুন লাইন ব্যতীত কোনও ডিলিমিটার দ্বারা পৃথক করা যায়? আই 0,0r;0,2r;0,4r;0,6r;1,1r;1,3r;1,5r;1,7r;2,0r;2,2r;2,4r;2,6r;5,1b;5,3b;5,5b;5,7b;6,0b;6,2b;6,4b;6,6b;7,1b;7,3b;7,5b;7,7b?
কেভিন ক্রুইজসেন

উত্তর:


8

05 এ বি 1 ই , 26 বাইট

2ÝD5+«v4Fy',N·yÉ+„bry3‹èJ,

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

2Ý                           # push [0,1,2]
  D5+                        # duplicate and add 5: [5,6,7]
     «                       # concatenate
      v                      # for each y in [0,1,2,5,6,7] do:
       4F                    # for each N in [0 ... 3] do:
         y                   # push y
          ',                 # push ","
            N·yÉ+            # push N*2+isOdd(y)
                 „br         # push "br"
                    y3‹è     # index into the string with y<3
                        J,   # join everything to a string and print

আমার মনে হচ্ছে [0,1,2,5,6,7]কম বাইটে ঠেলাঠেলি করা যেতে পারে ... তবে আমি যা ভাবতে 7Ý34SKপারি তাই তাই অনুমান করি না।
যাদু অক্টোপাস উরন

7

জাভাস্ক্রিপ্ট (ES6), 66 বাইট

একটি পিছনের নিউলাইন অন্তর্ভুক্ত।

f=(n=24)=>n--?f(n)+[2*(x=n>11)+(y=n>>2),n%4*2+y%2+'rb'[+x]]+`
`:''

ডেমো



7

সি (জিসিসি) , 83 81 79 78 বাইট

x;main(){for(;x<24;)printf("%d,%d%c\n",x/4+x++/12*2,x*2%8+x/4%2,114-x/12*16);}

এটি অনলাইন চেষ্টা করুন!


2
আপনি এক্স / 4 + এক্স / 12 * 2 করতে পারেন এবং এর থেকে মুক্তি পেতে পারেন
তাগ

x%8*2%8হতে পারেx*2%8
কেভিন ক্রুইজসেন

আপনাকে ধন্যবাদ
জোনাথন ফ্রেচ


4

জাভা 8, 102 96 95 93 91 বাইট

v->{for(int i=0;i<24;System.out.printf("%d,%d%c%n",i/4+i/12*2,i*2%8+i/4%2,i++<12?114:98));}

@ জোনাথনফ্রেচের সি উত্তর থেকে পোর্ট , তারপরে আমি নিজে 5 বাইট গল্ফ করেছি।

এখানে চেষ্টা করুন।

ব্যাখ্যা:

v->{                    // Method without empty unused parameter and no return-type
  for(int i=0;i<24;     //  Loop from 0 to 24 (exclusive)
    System.out.printf("%d,%d%c%n",
                        //   Print with format:
                        //   (%d=digit; %c=character; %n=new-line)
      i/4+i/12*2,       //    Print first coordinate
      i*2%8+i/4%2,      //    Print second coordinate
      i++<12?114:98)    //    Print either 'r' or 'b'
  );                    //  End of loop
}                       // End of method



3

জেলি , 35 বাইট

8Ḷḟ3ḟ4µḂr7m2ṭ€µ€Ẏµḣ1<3Ḣị⁾rbṭj”,$µ€Y

এটি অনলাইন চেষ্টা করুন!

কোনও যুক্তি না নিয়ে পুরো প্রোগ্রাম

ব্যাখ্যা

8Ḷḟ3ḟ4µḂr7m2ṭ€µ€Ẏµḣ1<3Ḣị⁾rbṭj”,$µ€Y  Main link; no arguments
8                                    8
 Ḷ                                   Push 0 .. 8 - 1
  ḟ                                  Remove all instances of
   3                                 3
    ḟ                                Remove all instances of
     4                               4
                €                    For each in [0, 1, 2, 5, 6, 7]
       µḂr7m2ṭ€µ                     Generate all of the piece coordinates across that row
        Ḃ                            row number % 2
         r                           inclusive range up to
          7                          7
           m                         modular; take every   elements
            2                                            2
              €                      For each column coordinate
             ṭ                       Tack the row coordinate (reverse append)
                 Ẏ                   Tighten; flatten once
                                 €   For each piece coordinate (in the right order now)
                 µḣ1<3Ḣị⁾rbṭj”,$µ    Convert to its final output
                  ḣ                  Head; take the first   element(s)
                   1                                      1
                    <                Less Than; compare each element to
                     3               3
                      Ḣ              Head; take the comparison out of the list
                       ị             Index (1-indexed) into
                        ⁾rb          "rb"
                           ṭ         Tack the color character behind
                            j”,$     The coordinates joined by a comma
                            j        Join with separator
                             ”,      ","
                                  Y  Separate by newlines


3

জাভাস্ক্রিপ্ট (ES6), 64 বাইট

ওয়ারেন্টিং পোস্টিংয়ের চেয়ে এটি @ আরনাউল্ডের থেকে যথেষ্ট আলাদা বলে মনে হচ্ছে:

f=(n=0,y=n>>3,c=y>2)=>y<6?[y+c*2,n%8+y%2+'rb'[+c]]+`
`+f(n+2):''

ব্যাখ্যা:

f=(n = 0,            //the numbered square on checkerboard
   y = n >> 3,       //current row (n / 8 rounded)
   c = y > 2         //false if red pieces, true if black
  ) => 
  y < 6 ?            //if y less than 6 
    [                //  using an array automatically adds the comma
     y + c * 2,      //  0 - 2 if red pieces, 5 - 7 if black
     n%8 + y%2 +     //  n%8 returns 0, 2, 4, or 6.
                     //  y%2 returns 0 or 1.
                     //  added, they return the appropriate position (0 - 7)
     'rb'[+c]        //  'r' if red, 'b' if black.  Plus sign coerces boolean to number.
    ]+`              //  new line
    `+
    f(n+2) :         //  recurse on n+2
    ''               //else return an empty string

স্নিপেট:



3

এপিএল (ডায়ালগ) , 45 44 বাইট *

-1 ngn ধন্যবাদ।

নীলাদিক ফাংশন যা 0-ভিত্তিক সূচক ( ⎕IO←0) ধরে রাখে যা অনেক সিস্টেমে ডিফল্ট। প্রিন্ট করুন STDOUT।

' 'R','⊃,/(8 ¯8↑¨⊂⍕¨⍸∘.=⍨2|⍳8),¨¨'rb'

এটি অনলাইন চেষ্টা করুন!

(),¨¨'rb' প্রথম গ্রুপের আইটেমগুলির প্রত্যেকটিতে "আর" এবং দ্বিতীয়টির প্রত্যেকটিতে "বি" যুক্ত করুন:

⍳8 আট থেকে শূন্য

2| অর্ধেক যখন বিভাগ বাকি

∘.+⍨ উভয় অক্ষ বরাবর নিজেই সঙ্গে টেবিল

 সত্য মান সূচক

⍕¨ প্রতিটি ফর্ম্যাট করুন (প্রতিটি d dযেখানে dডিজিটের সাথে স্ট্রিংয়ে রূপান্তরিত হয় )

 ঘেরযুক্ত (যাতে আমরা এটি প্রতিটি জন্য পুনরায় ব্যবহার করতে পারি ...)

8 ¯8↑¨ প্রথম নয়টি এবং শেষ নয়টি নিন

এখন আমাদের কাছে দুটি d dস্ট্রিংয়ের তালিকা রয়েছে

,/ ক্যাটেনেশন হ্রাস (দুটি তালিকা একত্রিত)

 প্রকাশ (কারণ হ্রাস র‌্যাঙ্ক 1 থেকে 0 এ কমিয়েছে)

' '⎕R',' পিসিআরই আর এপিলেস কমা দিয়ে স্পেস

 মিশ্রণ (সমস্ত তালিকা একক ম্যাট্রিক্সে)


* ডায়ালগ ক্লাসিক হিসাবে , হিসাবে গণনা ⎕U2378


~2|∘.+⍨⍳8হতে পারে∘.=⍨2|⍳8
ngn

আপনি করা উচিত নয় আউটপুট সারি x = 3 ও এক্স = 4
ngn

@ জিএনএন2⍴⊂'Thanks'
অ্যাডম

2

বুবলগাম , 59 বাইট

00000000: 15ca b101 0030 0400 c1de 2c0a 2462 1f23  .....0....,.$b.#
00000010: d8bf 886f ae3a 531b 310d b8f0 465c 1d0e  ...o.:S.1...F\..
00000020: 24d4 48ec 5b02 2eec 4bf5 5e0e 2454 cb53  $.H.[...K.^.$T.S
00000030: 8380 0baf a5d4 e140 42f5 07              .......@B..

এটি অনলাইন চেষ্টা করুন!


এই হেক্সডাম্প, তাই না?
স্ট্যান স্ট্রাম

@ স্ট্যানস্ট্রাম হ্যাঁ এটি আসল উত্সের হেক্সডাম্প। হেক্সডাম্প ব্যবহার করে কোনও অ-প্রিন্টেবল নষ্ট হবে না। আসল উত্স উত্তর আইএমওতে কিছু যোগ করে না।
ovs

ঠিক আছে, আমি ভাবছিলাম। ধন্যবাদ
স্ট্যান স্ট্রাম

2

পাইথ , 37 36 35 বাইট

isaacg গর্বিত হবে না

V+U3}5 7FG4p++N\,+yG?!%N2Z1?<N5\r\b

ব্যাখ্যা:

V+U3}5 7            For in the array [0, 1, 2, 5, 6, 7] as N
 FG4                 For in the array [0, 1, 2, 3] as G
  p                   Print without newline:
   ++N\,+yG?!%N2Z1     N, (2 * G) + 1 if N is even, else 0
  ?<N5\r\b            Output with newline "r" if N < 5 else "b"

এটি একটি সাধারণ প্যাটার্ন ব্যবহার করে আমি কিছুটা কেটে ফেলেছি। নিম্নরূপ:

Xসমন্বয় যদি সমান হয় তবে সমান সংখ্যাটি ব্যবহার করুন 0, 2, 4, 6। অন্যথায়, 1, 3, 5, 7জন্য Y

তাহলে XCOORD 5 চেয়ে কম হয়, রঙ ( rবা b) হল r। অন্যথায়, এটা হয় b

এটি অনলাইন চেষ্টা করুন!

সম্পাদনা করুন : রাতারাতি 3 টি পৃথক উত্তরে ডাব্লু 100 টায় +40 রেপ পেয়েছে



1

জাভাস্ক্রিপ্ট (89 বাইট):

for(x=y=0,r="r";x<7|y<8;console.log(x+","+y+r),y+=2){if(y>7)y=++x%2;if(x==3){x+=2;r="b"}}

রিডেবল:

for(var x = y = 0, red = true; x < 7 || y < 8; y += 2) {
    if(y > 7) { //new row
        x++;
        y = x % 2;
    }
    if(x == 3) { //new color
        x += 2;
        red = false;
    }
    console.log(x + "," + y + (red ? "r" : "b") );
}

এটি অনলাইন চেষ্টা করুন!


4
দয়া করে নোট করুন যে এটি পোস্ট করার পরে আপনার নিজের চ্যালেঞ্জের উত্তর দিতে নিরুৎসাহিত করা হচ্ছে।
আর্নৌল্ড

ঠিক আছে. আমি কি এটিকে নামিয়ে নেব এবং সম্ভবত পরে পোস্ট করব?
জাস্টিন

ঠিক আছে। শীর্ষস্থানীয়দের জন্য ধন্যবাদ
জাস্টিন

এটি বোকা লাগতে পারে তবে আমি কীভাবে মোবাইলে কোনও পোস্ট মুছব?
জাস্টিন

@ Justin আপনি মোবাইলে পোস্ট মুছতে পারবেন না। এটি অনেকেরই বিরক্তি।
গম উইজার্ড

1

জেলি , 27 বাইট

8Ḷµḟ3,4pµSḂ$Ðḟj€”,ż⁾rbx12¤Y

একটি সম্পূর্ণ প্রোগ্রাম যা প্রয়োজনীয় আউটপুট প্রিন্ট করে।

এটি অনলাইন চেষ্টা করুন!

কিভাবে

8Ḷµḟ3,4p⁸SḂ$Ðḟj€”,ż⁾rbx12¤Y - Link: no arguments
8                           - literal eight
 Ḷ                          - lowered range = [0,1,2,3,4,5,6,7]
  µ                         - new monadic chain
    3,4                     - literal list = [3,4]
   ḟ                        - filter discard = [0,1,2,5,6,7]
        ⁸                   - chain's left argument = [0,1,2,3,4,5,6,7]
       p                    - Cartesian product = [[0,0],[0,1],...,[2,7],[5,0],...,[7,6],[7,7]]
            Ðḟ              - filter discard if:
           $                -   last two links as a monad:
         S                  -     sum
          Ḃ                 -     modulo by 2
                ”,          - literal comma character
              j€            - join €ach pair with a comma = [0,',',0],[0,',',2],...,[2,',',6],[5,',',1],...,[7,',',5],[7,',',7]]
                         ¤  - nilad followed by links as a nilad:
                   ⁾rb      - literal list = ['r','b']
                       12   - literal twelve
                      x     - repeat = ['r','r','r','r','r','r','r','r','r','r','r','r','b','b','b','b','b','b','b','b','b','b','b','b']
                  ż         - zip together = [[[0,',',0],'r'],[[0,',',2],'r'],...,[[2,',',6],'r'],[[5,',',1],'b'],...,[[7,',',5],'b'],[[7,',',7],'b']]
                          Y - join with newlines = [[0,',',0],'r','\n',[0,',',2],'r','\n',...,'\n',[2,',',6],'r','\n',[5,',',1],'b','\n',...,'\n',[7,',',5],'b','\n',[7,',',7],'b']
                            - implicit print (smashes the list of lists and characters
                            -                 together and prints the digits)


1

পাওয়ারশেল , 63 বাইট

0..2+5..7|%{$i=$_;0,2,4,6|%{"$i,$($_+$i%2)"+('r','b')[$i-ge5]}}

এটি অনলাইন চেষ্টা করুন!

লুপ শেষ হয়েছে 0,1,2,5,6,7এবং প্রতিটি পুনরাবৃত্তি $iবর্তমান সংখ্যায় সেট করে। তারপরে লুপস 0,2,4,6। প্রতিটি অভ্যন্তরীণ লুপ, আমরা তার সাথে শুরু করে একটি $i,অভ্যন্তরীণ লুপের বর্তমান সংখ্যাটি সমান $iবা বিজোড় (যা আমাদের পায়0,2,4,6 সমান এক সময় এবং 1,3,5,7অন্য সময় পায়) দিয়ে সংযুক্ত করে একটি স্ট্রিং তৈরি করি , তারপরে পুনর্নবীকরণযোগ্য কিনা তার ভিত্তিতে rএড বা bঅভাবের $iসাথে -gসংমিশ্রিত হয় -অর- eযোগ্যতা 5। এই স্ট্রিংগুলি সমস্ত পাইপলাইনে রেখে গেছে এবং Write-Outputপ্রোগ্রাম সমাপ্তিতে অন্তর্ভুক্তটি আমাদের জন্য নিখরচায় নতুন লাইন দেয়।



আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.