এএসসিআইআই-আর্টে একটি সাধারণ ঘর তৈরি করুন


15

একটি ঘর সংযুক্ত আয়তক্ষেত্রগুলি দিয়ে তৈরি করা যেতে পারে, উদাহরণস্বরূপ একটি এল-আকৃতির ঘর। এই জাতীয় ঘর প্রতিটি আয়তক্ষেত্রের আকার বর্ণনা করে মাত্রাগুলির একটি তালিকা দ্বারা বর্ণনা করা যেতে পারে।

ধরে নিন আপনার দুটি ইনপুট তালিকা রয়েছে। প্রথমটিতে একে অপরের উপরে উল্লম্বভাবে স্ট্যাক করা আয়তক্ষেত্রগুলির প্রস্থ রয়েছে। দ্বিতীয়টিতে আয়তক্ষেত্রগুলির উচ্চতা রয়েছে।

উদাহরণ হিসাবে, ইনপুটটি [4 6][3 2]6-বাই -2 আয়তক্ষেত্রের শীর্ষে 4-বাই-3 আয়তক্ষেত্র হবে। নীচের চিত্রটি এই আকারটি দেখায়। নোট করুন যে দেয়ালগুলি "পাতলা" হিসাবে বিবেচিত হয়, সুতরাং এটি দেয়ালের মধ্যে ফাঁকা স্থানগুলি যা ইনপুট দ্বারা নির্ধারিত হয়।

[4 6][3 2]
 ____
|    |
|    |
|    |_
|      |
|______|

চ্যালেঞ্জটি হ'ল ইনপুট হিসাবে মাত্রাগুলির একটি তালিকা নিন এবং ঘরের আকৃতিটিকে ASCII- আর্ট হিসাবে আউটপুট করুন। ফর্ম্যাটটি অবশ্যই নমুনার চিত্রগুলির মতো হওয়া উচিত:

  • সমস্ত অনুভূমিক দেয়াল আন্ডারস্কোর ব্যবহার করে দেখানো হয়েছে
  • সমস্ত উল্লম্ব দেয়াল বার ব্যবহার করে দেখানো হয়েছে
  • আয়তক্ষেত্রগুলি সংযুক্ত যেখানে কোনও প্রাচীর থাকবে না
  • বাম প্রাচীর সোজা is
  • আরও তথ্যের জন্য, পরীক্ষাগুলির কেসগুলি দেখুন

অনুমান আপনি করতে পারেন:

  • সমস্ত মাত্রা সীমার মধ্যে রয়েছে [1 ... 20]
    • সমস্ত অনুভূমিক মাত্রা সমান সংখ্যা
  • আয়তক্ষেত্রের সংখ্যা সীমার মধ্যে থাকবে [1 ... 10]
  • কেবল বৈধ ইনপুট দেওয়া হয়
  • .চ্ছিক ইনপুট ফর্ম্যাট (আপনি ইনপুট মাত্রাগুলির ক্রম স্থির করতে পারেন, দয়া করে উত্তরে নির্দিষ্ট করুন)।

পরীক্ষার কেস:

[2][1]
 __
|__|

---

[4][2]
 ____
|    |
|____|

---

[2 6 2 4][2 2 1 3]
 __
|  |
|  |___
|      |
|   ___|
|  |_
|    |
|    |
|____|

---

[2 14 6 8 4 18 2 10 4 2][1 2 3 1 2 1 1 1 2 1]
 __
|  |___________
|              |
|       _______|
|      |
|      |
|      |_
|     ___|
|    |
|    |_____________
|   _______________|
|  |______
|     ____|
|    |
|   _|
|__|

আপনি ইনপুট মাত্রাগুলির ক্রম স্থির করতে পারেন , এর অর্থ কি আমরা সারি এবং কলামগুলিকে অদলবদল করতে এবং সেগুলি বিপরীত করতে পারি? এটি পছন্দ করুন: আপনার উদাহরণের ইনপুট ফর্ম্যাট: [2 14 6 8 4 18 2 10 4 2][1 2 3 1 2 1 1 1 2 1]-> (অদলবদল এবং বিপরীত) -> আমার ইনপুট ফর্ম্যাট:[1 2 1 1 1 2 1 3 2 1][2 4 10 2 18 4 8 6 14 2]
ডাভকো

হ্যাঁ, এটি ঠিক আছে: :-)
স্টিভি গ্রিফিন

ধন্যবাদ। পরিণত হয়েছে আমার সম্ভবত তাদের বিপরীত করার দরকার নেই, কেবল অদলবদল করুন।
দাভকো

উত্তর:


1

রেটিনা, 169 150 113 বাইট

বাইট গণনাটি আইএসও 8859-1 এনকোডিং ধরেছে।

\ D +
$ *
{+ + R`1 (1 * ¶ [^ |] * (+1 টি))
$ 1¶ | $ 2 |
} `(¶। *) 1+
$ 1
1
: _
(\ |: _ + +) \ | (? = ¶ \ 1: _ (: _ + +))
$ 1 | $ 2
T`w` `(\ | _ +) _? (?? (? = _ * \ |। * ¶ \ 1)
^ ¶
 

কোডটিতে একটি পেছনের স্থানটি নতুন লাইনে রয়েছে iling

ছক পূরণ করা:

উচ্চতা (স্পেস দ্বারা পৃথক)
প্রস্থ (স্পেস দ্বারা পৃথক)

উদাহরণ স্বরূপ:

1 2 3 1 2 1 1 1 2 1
2 14 6 8 4 18 2 10 4 2

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


4

জাভাস্ক্রিপ্ট (ES6) 174

একমাত্র সমালোচক অংশটি হ'ল অনুভূমিক সারিটি বিভিন্ন প্রস্থের 2 টি অংশে যোগদান করে, ডানদিকে উল্লম্ব বারটি যা মাঝখানে বা ডান প্রান্তে থাকতে পারে with

(p,h,q=-1,R=(n,s=' ')=>s.repeat(n))=>[...p,0].map((x,i)=>(x>q?p=x:(p=q,q=x),(~q?`
|`+R(q+(x<p)-!x)+R(x>q,'|'):' ')+R(p+~q+!x,'_')+R(x<p,'|')+R(h[i]-1,`
|${R(q=x)}|`))).join``

পরীক্ষা

f=(p,h,q=-1,R=(n,s=' ')=>s.repeat(n))=>[...p,0].map((x,i)=>(x>q?p=x:(p=q,q=x),(~q?`
|`+R(q+(x<p)-!x)+R(x>q,'|'):' ')+R(p+~q+!x,'_')+R(x<p,'|')+R(h[i]-1,`
|${R(q=x)}|`))).join``

// Less golfed

F=(p,h, q=-1, 
   R=(n,s=' ')=>s.repeat(n)
  )=>
  [...p, 0].map((x,i)=> (
    x>q? p=x : (p=q,q=x),
    (q>=0?`\n|`+R(q+(x<p)-!x)+R(x>q,'|'):' ')
    + R(p+~q+!x,'_') + R(x<p,'|')
    + R(h[i]-1,`\n|${R(q=x)}|`)
  )).join``

console.log=x=>O.textContent+=x+'\n'

;[  
  [[2],[1]],
  [[4],[2]],
  [[2, 6, 2, 4],[2, 2, 1, 3]],
  [[2, 14, 6, 8, 4, 18, 2, 10, 4, 2],[1, 2, 3, 1, 2, 1, 1, 1, 2, 1]]
].forEach(t=>{
  var w=t[0],h=t[1]
  console.log('['+w+'] ['+h+']\n'+f(w,h)+'\n')
})
<pre id=O></pre>


4

পাইথন 3, 230 223 222 217 বাইট

def f(a):b=a[0]+[0];m=' _';print('\n'.join([' '+'_'*b[0]+' ']+['|'+' '*min(b[l],b[l+1])+m[b[l+1]<1]*(b[l]>b[l+1])+m[k]*(b[l]-b[l+1]-1)+'|'+m[k]*(b[l+1]-b[l]-1)for l,i in enumerate(zip(*a))for k in[0]*(i[1]-1)+[1]]))

তাদের সহায়তার জন্য @ স্টিভিগ্রিফিন @ কেভিনলউকে ধন্যবাদ জানাই

ফলাফল

>>> f([[2, 14, 6, 8, 4, 18, 2, 10, 4, 2],[1, 2, 3, 1, 2, 1, 1, 1, 2, 1]])
 __ 
|  |___________
|              |
|       _______|
|      | 
|      | 
|      |_
|     ___|
|    |             
|    |_____________
|   _______________|
|  |_______
|     _____|
|    |
|   _|
|__|

সেমিকোলন! তারা আপনার অ্যাসাইনমেন্টগুলি পৃথক করে এবং আপনাকে অযাচিত ইন্ডেন্টেশন থেকে বাঁচায়! ( a=1;b=2)
ক্যালকুলেটরফলাইন

"solutoin"> সমাধান
ম্যাট

স্ট্রিং ইনডেক্সিং! m=' _'পরিবর্তে m=[' ','_']5 বাইটের মতো সঞ্চয় করে।
মূল্য কালি

3

রুবি 191

প্রথমবারের মতো গল্ফিং, এটিও রুবির সাথে আমার প্রথম দিন, তাই এটি সম্ভবত বিশ্বের সবচেয়ে মার্জিত জিনিস না, তবে তা করবে?

def f(x)
a=x[0]+[0]
puts" #{'_'*a[0]} "
for i in 0..x[1].length-1
n,m=a[i,2].sort
puts"|#{' '*a[i]}|\n"*(x[1][i]-1)+'|'+' '*n+(a[i+1]<1?'_':m>a[i]?'|':' ')+'_'*(m-n-1)+(n<a[i]?'|':'')
end
end
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.