ওয়াং টাইলস সহ স্ক্রীনটি পূরণ করুন


24

এটি প্রমাণিত হয়েছে যে নিম্নলিখিত 13 বর্গাকার ওয়াং টাইলগুলি সর্বদা বিমানকে টাইপ করে টাইল করে দেয় । এর অর্থ হ'ল যখন স্কোয়ারগুলি সমস্ত প্রতিবেশী পক্ষগুলি একই রঙের সাথে গ্রিডে সাজানো হয়, তখন প্যাটার্নটির অনুবাদ কখনও নিজের সাথে মেলে না।

ওয়াং টাইলস

আমরা প্রতিটি টাইলকে কেন্দ্র করে এবং কোণে ফাঁকা জায়গাগুলিতে ভরা একটি 3 by 3 গ্রিড এবং প্রান্তে লাল, সবুজ, নীল, হলুদ, ধূসর বর্ণের পরিবর্তে 1 থেকে 5 নম্বর করে টেক্সটলে উপস্থাপন করব:

 2      2      2      1      1      1      4      3      2      2      4      3      2
1 2    1 3    2 3    2 1    3 1    3 2    4 4    4 4    4 5    4 5    5 5    5 5    5 4
 3      2      3      2      3      2      1      2      1      4      1      2      2

লক্ষ্য

আপনার কাজ হ'ল একটি প্রোগ্রাম লিখুন যা প্রস্থ এবং উচ্চতা নেয় এবং সেই মাত্রাগুলি সহ একটি বৈধ ওয়াং টাইল গ্রিড আউটপুট করে। একটি বৈধ টাইলিং হ'ল একটি যাতে সংলগ্ন সমস্ত টাইল প্রান্তের রঙ (বা সংখ্যা) একই থাকে। বাইটের মধ্যে ক্ষুদ্রতম প্রোগ্রামটি জিতল।

আপনার ইনপুটটি স্টাডিন বা কমান্ড লাইন আর্গুমেন্ট থেকে আসা উচিত এবং আউটপুট স্টাডআউটে যাওয়া উচিত। সঠিক ইনপুট ফর্ম্যাটটি যথাযথভাবে সুস্পষ্ট কিছু হতে পারে >>> wangtiler 3 2। প্রস্থ এবং উচ্চতা সর্বদা ইতিবাচক পূর্ণসংখ্যার হয়।

উদাহরণ (প্রস্থ = 3, উচ্চতা = 2)

লক্ষ্য করুন যে আমরা যখন পাঠ্য টাইলগুলি বিন্যাস করি তখন প্রতিবেশী প্রান্তগুলি প্রয়োজনীয় অপ্রয়োজনীয় জোড়া অঙ্ক করে:

 1  2  1 
2 11 22 1
 2  3  2 
 2  3  2 
4 55 55 4
 1  2  2 

(এটি সঠিক আউটপুট ফর্ম্যাট নয়))

আমরা এইগুলি আনুভূমিকভাবে এবং উল্লম্বভাবে সংকোচিত করতে পারি:

 1 2 1 
2 1 2 1
 2 3 2 
4 5 5 4
 1 2 2 

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

গ্রাফিকাল বোনাস

কোনও পাঠ্য আউটপুট থাকার পরিবর্তে, আপনার প্রোগ্রামটি টাইল্ড গ্রিডের একটি চিত্র আউটপুট করতে পারে। গ্রাফিকাল টাইলগুলি অবশ্যই চার স্কোয়ারে সাজানো চার 45-45-90 ত্রিভুজ দ্বারা গঠিত এবং উপরের টাইলগুলির মতো পাঁচটি সহজেই আলাদা আলাদা রঙ ব্যবহার করতে হবে। কালো সীমানা প্রয়োজন হয় না। গ্রাফিকাল টাইলগুলি অবশ্যই কমপক্ষে 32 × 32 পিক্সেলের আকারের হতে হবে। তাদের জন্য কোনও "সংক্ষেপণ" প্রয়োগ করা হয় না।

উদাহরণ বোনাস চিত্র: (উপরের উদাহরণ হিসাবে একই গ্রিড)

বোনাস উদাহরণ

বোনাসের মূল্য বিয়োগ 150 বাইট।

নোট

  • আপনার অবশ্যই 13 টি টাইলের এই সেটটি ব্যবহার করা উচিত।
  • টাইলগুলি ঘোরানো যাবে না।
  • টাইলসটি বেশ কয়েকবার প্রদর্শিত হতে পারে (কিছুই নয়)।
  • আপনি ধরে নিতে পারেন যে কোনও মাত্রা সহ একটি বৈধ টাইলিং সম্ভব।

আমি মনে করি টাইলগুলি ঘোরানো যায় না?
মার্টিন এেন্ডার

@ মার্টিনবাটনার ন। আপনার অবশ্যই 13 টি টাইলের সেট যেমন ব্যবহার করা উচিত ঠিক তেমন ব্যবহার করতে হবে।
ক্যালভিনের

আপনি প্রতিটি টাইল কতবার ব্যবহার করতে পারেন তার সীমাবদ্ধতা রয়েছে? আমি আপনার উদাহরণে দেখতে পাচ্ছি আপনি দুবার একটি টাইল ব্যবহার করেছিলেন।
টিউন প্রংক

পুনঃটুইট এগুলি আপনি চান এমন অনেক সময় ব্যবহার করুন (অবশ্যই আপনি প্রান্তগুলি সঠিকভাবে মেলে দেওয়ার জন্য কিছু বেশি ব্যবহার করতে বাধ্য হতে পারেন)।
ক্যালভিনের

@ ক্যালভিনের শখগুলি সবসময়ই কোনও সম্ভাব্য সমাধান রয়েছে তা ধরে নেওয়া কি নিরাপদ?
টিউন প্রংক

উত্তর:


12

গল্ফস্ক্রিপ্ট, 200 টি অক্ষর

~\:W*):R;1,{)\:C"=QCy_~{MTKAis]?OyJE?~WvM"[64 2400]{base}/@{>}+,{:T;[C,W<!{C W~)=T 64/^8/8%}*C,W%0>{C-1=64/T^8%}*]0-!},1<.!!{1,+}*+.,R<}do);W/.0={' '\512/8%`}%n@{.[.0=8%\{' '\64/8%}/n]\{' '\8/8%`}%n}/

কোনও গ্রাফিক আউটপুট ছাড়াই ASCII সংস্করণ। STDIN এ ইনপুট দিন - এখানে চেষ্টা করুন । কোডটি একটি সরল ব্যাকট্র্যাকিং পদ্ধতির ব্যবহার করে এবং স্পেস লাইনটি লাইনে পূরণ করে।

উদাহরণ:

> 3 2
 1 2 1
2 1 2 1
 2 3 2
5 4 4 5
 2 2 1

> 8 5
 1 2 1 2 1 2 1 2
2 1 2 1 2 1 2 1 2
 2 3 2 3 2 3 2 3
5 4 4 5 5 4 4 5 5
 2 2 4 2 2 2 4 2
5 4 5 5 4 5 4 4 5
 2 1 1 2 1 2 1 1
1 3 2 1 2 1 3 2 1
 2 2 2 3 2 2 2 2
5 4 5 4 4 5 4 5 4
 2 1 2 2 1 2 1 2

গ্রাফিকাল বোনাস, স্কোর 122, 272 টি অক্ষর - 150 বোনাস

~\:W*):R;1,{)\:C"=QCy_~{MTKAis]?OyJE?~WvM"[64 2400]{base}/@{>}+,{:T;[C,W<!{C W~)=T 64/^8/8%}*C,W%0>{C-1=64/T^8%}*]0-!},1<.!!{1,+}*+.,R<}do);W["P3\n"32W*" "3$,32*n 1n]\{{:^;512:X;16,{[^8%]1$*[^X/8%]31*@.+>[^64/8%]31*++32<}:F%8:X;16,-1%{F}%+}%zip{{+}*{8+2base(;~}%' '*n}/}/

ভিন্ন আউটপুট বিন্যাসক সহ একই বেসিক কোড। আউটপুটটি পিপিএম ফর্ম্যাটে একটি চিত্র (অর্থাত্ কেবল কোনও ফাইলে আউটপুট পুনর্নির্দেশ image.ppm)। প্রশ্নের প্রশ্নে টাইলগুলির তুলনায় রঙগুলি কিছুটা আলাদা তবে স্পষ্টত পৃথকযোগ্য (1-> নীল, 2-> সবুজ, 3-> সায়ান, 4-> লাল, 5-> ম্যাজেন্টা)।

16x12 উদাহরণ:

16x12 ওয়াং উদাহরণ


16

পাইথন (565 - 150 = 415)

বিটিডব্লু ... মনে হচ্ছে আমরা কেবল নির্লিপ্তভাবে তার টানা বাম এবং উপরের টাইল দিয়ে ঠিক করতে পারি না। টাইলগুলির কিছু সংমিশ্রণ রয়েছে যা একে অপরের সাথে মাপসই হবে।
এই সমাধানটি যদি কোনও টাইল ফিট না করতে পারে তবে সমস্ত সম্ভাব্য সংমিশ্রণ এবং ব্যাকট্র্যাকগুলি বামে> ডানদিকে, উপরে -> নিচে ব্রুট ফোর্সগুলিতে পূরণ করে।

13 টাইল প্রমাণ সম্পর্কে আরও তথ্যের জন্য: 13 ওয়াং টাইলগুলির একটি এপরিওডিক সেট

প্রস্থ এবং উচ্চতা দ্বারা নির্দিষ্ট করা হয় WএবংH

লাল, সবুজ, নীল, হলুদ এবং নোয়ের নিদিষ্ট দ্বারা R, G, B, YএবংN

import Image,sys
W,H=map(int,sys.argv[1:])
R=99
G=R<<8
B=G<<8
Y=G+R
N=0
s="RGB";u=32;g=[[0,0]]*W*H;k=f=0
def t(c):i=Image.new(s,(2,2));k=i.load();q=16;k[1,0],k[1,1],k[0,1],k[0,0]=c;return i.resize([64]*2).rotate(45).crop((q,q,q+u,q+u))
while k<H*W:
 z=g[k][1];v=-1;j=k/W;i=k%W
 while z<13:
    l=map(eval,"GGGRRRYBGGYBGGBBRRGYYNNNNYBGBGBGRGRYRGGRRGGBBYYYYNNN"[z::13])
    if(j<1or g[(j-1)*W+i][0][2]==l[0])and(i<1or g[j*W+i-1][0][1]==l[3]):g[k]=[l,z+1];v=1;z=99
    z+=1
 g[k][1]*=(v>0);k+=v
m=Image.new(s,(W*u,H*u))
for e in g:m.paste(t(e[0]),(f%W*u,(f/W)*u));f+=1
m.show()

আউটপুট। আসল রঙের স্কিম নয় ... খুব চমকপ্রদ। এটি কিছু আকর্ষণীয় অভ্যন্তর সজ্জা নিদর্শন তৈরি করতে পারে ...:

এখানে চিত্র বর্ণনা লিখুন


14
নিওপলিটন মাইনক্রাফ্ট ...
ক্যালভিনের

আপনি একটি বড় ছবি যোগ করতে পারেন? এটি দেখতে কেমন আগ্রহী আমি
গর্বিত হাসেলেলার

1
@ প্রফেসহেসকিলার বৃহত্তর চিত্র: ইমগুর । ওয়ালপেপার নির্মাতা: লিংক
ভেক্টরাইজড

1
এটি নিশ্চিতভাবে পর্যায়ক্রমিক দেখায় - আমি কী মিস করছি?
গর্বিত হাসেলেলার

প্রায় পর্যায়ক্রমিক .. উদাহরণ এখানে আরও বৈপরীত্য সহ: ইমগুর
অগস্ট

2

হাস্কেল, 208 বাইট

p x|x<2/3=(3!x)3"3212"3
p x=(0.5!x)1"45423"2
f=floor
(k!x)l s m=do{i<-[0,x..];[' ',s!!(2+f(i+x)-f i)]}:do{i<-[0,l*x..];s!!mod(f i)m:" "}:p(k*x)
t n=take$2*n+1
main=do(w,h)<-readLn;putStr.unlines.t h$t w<$>p 1

কোন অনুসন্ধান, শুধু গণিত। উদাহরণ রান: (8,5)স্টিডিন, আউটপুট উপর দেওয়া

 2 2 2 2 2 2 2 2 
4 5 4 5 4 5 4 5 4
 1 2 1 2 1 2 1 2 
3 2 3 2 3 2 3 2 3
 2 3 2 3 2 3 2 3 
4 5 5 4 4 5 5 4 4
 4 2 2 2 4 2 2 2 
4 4 5 4 5 5 4 5 4
 1 1 2 1 1 2 1 2 
3 2 1 3 2 1 3 2 3
 2 2 2 2 2 2 2 3 

আইডিয়নে অনলাইনে চালান

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