চার রঙের ট্রাইমিনোস দিয়ে দাবার বোর্ডটি টাইল করুন


12

টাস্ক:

সমস্যাটি বিবেচনা করুন: "একটি বর্গ অনুপস্থিত একটি দাবা বোর্ড দেওয়া হয়েছে, এটি 21 এল-ট্রায়মিনোস কেটে দিন"। একটি সুপরিচিত গঠনমূলক প্রমাণ রয়েছে যে এটি কোনও বর্গক্ষেত্রের দাবাবোর্ড আকারের জন্য করা যেতে পারে যা দুটি একটি শক্তি power এটি দাবাবোর্ডটিকে একটি ছোট দাবাবোর্ডের মধ্যে ছিদ্র এবং একটি বড় ট্রায়মিনো বিভক্ত করে এবং তারপরে পর্যবেক্ষণ করে যে ট্রায়মিনোকে চারটি ট্রায়মিনোকে পুনরাবৃত্তভাবে কাটা যেতে পারে obser

এই টাস্কে আপনাকে এল-শেপের ট্রাইমিনোয়াসে একটি 8x8 দাবাবোর্ড কাটতে হবে এবং তারপরে এগুলিকে চারটি রঙের সাথে রঙিন করতে হবে যাতে কোনও দুটি সংলগ্ন ট্রাইমিনোসের রঙ একই থাকে না।

স্পেসিফিকেশন:

আপনার ইনপুটটি গর্তের অবস্থান, পূর্ণ সংখ্যার এক জোড়া হিসাবে দেওয়া হয়। আপনি চয়ন করতে পারেন কোনটি কলাম সূচক এবং কোনটি সারি সূচক। আপনি চয়ন করতে পারেন যদি প্রত্যেকে 0 বা 1 এ শুরু হয় এবং কোন কোণ থেকে তাদের বৃদ্ধি হয় away আপনার 0-7 বা 1..8 এর পরিবর্তে প্রথম স্থানাঙ্ক হিসাবে A..H প্রয়োজন হতে পারে। আপনি উভয় স্থানাঙ্ককে একটি একক পূর্ণসংখ্যায় 0..63 বা 1..64 তে ডিকোসোগ্রাফিকাল ক্রমে (সারি-প্রধান বা কলাম-প্রধান, বাম থেকে ডান বা ডান থেকে বামে, উপরে বা নীচে থেকে উপরে) মেনে নিতে পারেন। আপনি একটি সম্পূর্ণ প্রোগ্রাম, বা একটি ফাংশন লিখতে পারেন।

আপনি টাইলিংটিকে ASCII, রঙিন ASCII হিসাবে বা গ্রাফিকাল আদিম হিসাবে আউটপুট করতে পারেন। আপনি যদি ASCII আউটপুট চয়ন করেন তবে আপনি চারটি রঙের প্রতিনিধিত্ব করতে যে কোনও চারটি মুদ্রণযোগ্য ASCII অক্ষর চয়ন করতে পারেন। যদি আপনি রঙিন ASCII চয়ন করেন তবে আপনি যে কোনও চারটি মুদ্রণযোগ্য ASCII অক্ষর বা স্থান ব্যতীত অন্য একটি অক্ষর চয়ন করতে পারেন। গর্তটি অবশ্যই স্থানের অক্ষর দ্বারা প্রতিনিধিত্ব করতে হবে। আপনার চরিত্রগুলির মধ্যে একটি যদি স্থানের অক্ষর হয় তবে গর্তটির সাথে বা দাবাবোর্ডের প্রান্তে ত্রিওমিনো এই রঙের হতে পারে না।

যদি আপনি রঙিন ASCII বা গ্রাফিকাল আউটপুট চয়ন করেন তবে আপনি আপনার পরিবেশে উপলব্ধ # 000, # 00F, # 0F0, # 0FF, # F00, # F0F, # FF0, #FFF বা তাদের নিকটতম সমতুল্য যে কোনও চারটি রঙ বেছে নিতে পারেন। আপনি যদি গ্রাফিকাল আউটপুট চয়ন করেন, আপনার গ্রাফিকাল আদিমগুলি অবশ্যই কমপক্ষে 32x32 পিক্সেল আকারে স্কোয়ারে পূরণ করতে হবে এবং অন্য রঙের দুটি পিক্সেলের বেশি পৃথক নয়। যদি উপরের অংশটি আপনার পরিবেশের স্ক্রিন রেজোলিউশনকে ছাড়িয়ে যায় তবে সর্বনিম্ন আকারের প্রয়োজনটি স্ক্রিনে ফিট হওয়া বৃহত্তম বর্গাকার আকারে শিথিল করা হয়।

আপনি প্রদত্ত দাবাবোর্ডের কোনও বৈধ টাইলিং চয়ন করতে পারেন। আপনি বেছে নিন টাইলিংয়ের যে কোনও চার রঙিন চয়ন করতে পারেন। চারটি রঙের আপনার পছন্দ অবশ্যই সমস্ত আউটপুট জুড়ে একই হতে পারে তবে আপনাকে প্রতিটি আউটপুটে প্রতিটি রঙ ব্যবহার করার দরকার নেই।

উদাহরণ:

ইনপুট জন্য সম্ভাব্য আউটপুট = [0, 0] (উপরের বাম কোণে)

 #??##??
##.?#..?
?..#??.#
??##.?##
##?..#??
#.??##.?
?..#?..#
??##??##

একই প্রোগ্রামের আর একটি সম্ভাব্য আউটপুট (ইনপুট = [0, 7]):

??#??#?
?##?##??
..xx..xx
.?x#.?x#
??##??##
..xx..xx
.?x#.?x#
??##??##

"ডি 1" এর ইনপুটটির জন্য একটি আলাদা প্রোগ্রামও তৈরি করতে পারে (নন স্ট্যান্ডার্ড কিন্তু অনুমোদিত দাবাবোর্ডের দৃষ্টিভঙ্গি নোট করুন),

AABBCCAA
ACBACBAC
CCAABBCC
 ABBAADD
AABDABDC
BBDDBBCC
BABBACAA
AABAACCA

4
যদি ইনপুট থাকে তবে এটি সত্যিই কোলমোগোরভ জটিলতা নয়
জোনাথন অ্যালান

@ জোনাথান অ্যালান ট্যাগ বিবরণটি ব্যবহার করে যে সেই পোকেমন কে কলমোগোরভ জটিলতার প্রশ্নের উদাহরণ হিসাবে ইনপুট নেয়। আপনি যদি 64 টি ধ্রুবক সমাধানের সেট সংকুচিত করতে চান বা যদি আপনি দাবাবোর্ডটি টাইল করার জন্য কোনও প্রক্রিয়া বাস্তবায়ন করতে চান এবং তা রঙ করতে চান তবে এটি আপনার।
জন ডিভোরাক


1
তিনটি রঙ কি যথেষ্ট নয়?
আর্নৌল্ড

1
@ আরনাউল্ড আমি এটির অনুমতি দেব। আমি সম্পাদনা করব।
জন ডিভোরাক

উত্তর:


22

জাভাস্ক্রিপ্ট (ES6),  184 ... 171  163 বাইট

যেমন ইনপুট লাগে (x)(y), সঙ্গে এবং । 3 টি রঙের স্ট্রিং হিসাবে আউটপুট ( , এবং হিসাবে চিহ্নিত )।0এক্স70Y7012

h=>v=>(a=[...'3232132031021010'],a[5+(v&4|h>3)]^=3,a[v/2<<2|h/2]=v%2*2+h%2,g=x=>y&8?'':(x<8?x-h|y-v?a[y/2<<2|x/2]^y%2*2+x%2?(x^y)&2:1:' ':`
`)+g(-~x%9||!++y))(y=0)

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

পদ্ধতি

আমরা ম্যাট্রিক্সে কাজ করি :4×4

(টি0টি1টি2টি3টি4টি5টি6টি7টি8টি9টি10টি11টি12টি13টি14টি15)

প্রতিটি ট্রায়মিনো একটি:

triominoes

ম্যাট্রিক্সের প্রাথমিক কনফিগারেশনটি নিম্নরূপ:

(3232132031021010)

আমরা যে কোনও দাবাবোর্ডের মতো করে প্রথম 2 টি রঙকে বিকল্পভাবে তৈরি করি যা দেয়:

matrix0

পরবর্তী পদক্ষেপগুলি হ'ল:

  1. কোয়াড্র্যান্ট অনুসারে যেখানে গর্তটি অবস্থিত, আমরা 180 4 টি সেন্টার ( , , বা ) এর মধ্যে একটি ঘোরান °টি5টি6টি9টি10
  2. আমরা যে ট্রায়োমিনোতে গর্তটি অবস্থিত তা ঘোরান (এটি ধাপ # 1 এর মতো একই ট্রায়োমিনো হতে পারে), যাতে এটি গর্তটি notেকে না ফেলে।
  3. আমরা তৃতীয় রঙ দিয়ে গর্তগুলি পূরণ করি ('বাস্তব' গর্ত ব্যতীত)।

উদাহরণস্বরূপ, ধরে নিলাম যে গর্তটি এ অবস্থিত , এটি দেয়:(3,0)

ম্যাট্রিক্স 1

এবং এটি সেই ক্ষেত্রে, চূড়ান্ত ম্যাট্রিক্স হ'ল:

(3132102031021010)

মন্তব্য

h => v => (                       // (h, v) = hole coordinates
  a = [...'3232132031021010'],    // a[] = flat representation of the 4x4 matrix
  a[5 + (v & 4 | h > 3)] ^= 3,    // first rotation, achieved by XOR'ing with 3
  a[v / 2 << 2 | h / 2] =         // second rotation according to the
    v % 2 * 2 + h % 2,            // position of the hole within the triomino's square
  g = x =>                        // g is a recursive function that converts the 4x4
                                  // matrix into a 8x8 ASCII art
    y & 8 ?                       // if y = 8:
      ''                          //   stop recursion and return an empty string
    :                             // else:
      ( x < 8 ?                   //   if this is not the end of the row:
          x - h | y - v ?         //     if this is not the position of the hole:
            a[y / 2 << 2 | x / 2] //       if this part of the triomino located at this
            ^ y % 2 * 2 + x % 2 ? //       position is 'solid':
              (x ^ y) & 2         //         use either color #0 or color #2
            :                     //       else:
              1                   //         use color #1
          :                       //     else:
            ' '                   //       the hole is represented with a space
        :                         //   else:
          `\n`                    //     append a linefeed
      ) + g(-~x % 9 || !++y)      //   append the result of a recursive call
)(y = 0)                          // initial call to g with x = y = 0

গ্রাফিকাল আউটপুট

গর্তের অবস্থান নির্ধারণ করতে ছবিতে ক্লিক করুন।


গঠনমূলক প্রমাণ যে তিনটি রঙ সর্বদা যথেষ্ট, খুব সুন্দর!
জন ডিভোরাক

6
ক্লিকযোগ্য গ্রাফিকাল আউটপুট পছন্দ!
কেভিন ক্রুইজসেন

3

কাঠকয়লা , 78 বাইট

NθNη”{⊞⊟¦≦⁶q×fΣ\⊙t×_⊟✳-Y⁴℅=⁶υ”≔›θ³ζ≔›η³εFζ≦⁻⁷θFε≦⁻⁷ηJ⊕÷θ²⊕÷粧#$⁺ⅈⅉJθη Fζ‖Fε‖↓

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। #$%অক্ষর ব্যবহার করে আউটপুট । ব্যাখ্যা:

NθNη

ফাঁকা স্কোয়ারের সমন্বয়গুলি ইনপুট করুন।

”{⊞⊟¦≦⁶q×fΣ\⊙t×_⊟✳-Y⁴℅=⁶υ”

একটি সংকীর্ণ স্ট্রিং আউটপুট। এটিতে নিউলাইনগুলি রয়েছে যাতে এই ব্যাখ্যাটির প্রবাহটি না ভাঙতে আপনি উত্তরটির শেষে স্ট্রিংটি খুঁজে পাবেন।

≔›θ³ζ≔›η³εFζ≦⁻⁷θFε≦⁻⁷η

উভয় সমন্বয় যদি এর চেয়ে বেশি হয় 3তবে সেই বাস্তবটি মনে রাখুন এবং 7 থেকে সমবায়টি বিয়োগ করুন।

J⊕÷θ²⊕÷粧#$⁺ⅈⅉ

S এর %উপরের-বাম স্কোয়ারের নিকটতম স্থানে যান %এবং এটি যথাযথ #বা $যথাযথভাবে ওভাররাইট করুন । (তবে এটি ইতিমধ্যে এই স্কোয়ারে থাকলে ফাঁকা দিয়ে ওভাররাইট করা হবে))

Jθη Fζ‖Fε‖↓

বর্ধিত কম-অর্ডিনেটে স্কোয়ারটি ফাঁকা করুন এবং তারপরে খালিটি মূল অবস্থানে পাওয়ার জন্য প্রয়োজনীয় ফলাফলকে প্রতিফলিত করুন।

##$$##$$
#%%$#%%$
$%%#$$%#
$$##%$##
##$%%#$$
#%$$##%$
$%%#$%%#
$$##$$##

আমি %কেন্দ্রের বর্গক্ষেত্রের সাথে শুরু করে কাঙ্ক্ষিত সমন্বয়কাগুলির দিকে কাজ করার চেষ্টা করেছি তবে এটি 90 বাইট নিয়েছে।

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