একটি এএসসিআইআই বাড়ি আঁকুন


25

এটি একটি উইন্ডো:

---
| |
---

আসুন কিছু দেয়াল যুক্ত করা যাক |। এর দু'পাশে দুটি স্পেস রাখুন যাতে উইন্ডোতে প্রচুর জায়গা থাকে।

|  ---  |
|  | |  |
|  ---  |

এবার আসুন একটি ছাদ এবং একটি সিলিং যুক্ত করুন। ঘরের মাঝখানে উইন্ডোটি রাখতে, তার উপরে এবং নীচে আরও একটি সারি যুক্ত করুন।

---------
|       |
|  ---  |
|  | |  |
|  ---  |
|       |
---------

এখন, কেবল একটি ছাদ যুক্ত করুন। যথাসম্ভব বাম দিকে একটি স্ল্যাশ এবং যথাসম্ভব ডানদিকে একটি ব্যাকস্ল্যাশ রাখুন এবং আমাদের এটি রয়েছে:

/       \
---------
|       |
|  ---  |
|  | |  |
|  ---  |
|       |
---------

তারপরে স্ল্যাশটিকে এক এবং ডানদিকে সরান। একের উপরে এবং বাম দিকে একটি ব্যাকস্ল্যাশ সরান:

 /     \
/       \
---------
|       |
|  ---  |
|  | |  |
|  ---  |
|       |
---------

দুটি স্ল্যাশ মিলিত না হওয়া পর্যন্ত পুনরাবৃত্তি করুন, তারপরে তারা যেখানে মিলবে একটি নক্ষত্র যুক্ত করুন:

    *
   / \
  /   \
 /     \
/       \
---------
|       |
|  ---  |
|  | |  |
|  ---  |
|       |
---------

এবং তুমি করে ফেলেছ! এটি 1x1 বাড়ি। একটি 2x2 বাড়ির মতো দেখতে হবে:

        *
       / \
      /   \
     /     \
    /       \
   /         \
  /           \
 /             \
/               \
-----------------
|       |       |
|  ---  |  ---  |
|  | |  |  | |  |
|  ---  |  ---  |
|       |       |
|-------|-------|
|       |       |
|  ---  |  ---  |
|  | |  |  | |  |
|  ---  |  ---  |
|       |       |
-----------------

এবং একটি 3x2 ঘর:

            *
           / \
          /   \
         /     \
        /       \
       /         \
      /           \
     /             \
    /               \
   /                 \
  /                   \
 /                     \
/                       \
-------------------------
|       |       |       |
|  ---  |  ---  |  ---  |
|  | |  |  | |  |  | |  |
|  ---  |  ---  |  ---  |
|       |       |       |
|-------|-------|-------|
|       |       |       |
|  ---  |  ---  |  ---  |
|  | |  |  | |  |  | |  |
|  ---  |  ---  |  ---  |
|       |       |       |
-------------------------

চ্যালেঞ্জ

আপনাকে অবশ্যই একটি সম্পূর্ণ প্রোগ্রাম লিখতে হবে যা দুটি এবং দুটি পূর্ণসংখ্যার x এবং y লাগে এবং একটি ঘর প্রিন্ট করে যা X কক্ষ প্রশস্ত এবং Y কক্ষ লম্বা। আপনার প্রোগ্রামটি 10x10 অবধি ঘরগুলি পরিচালনা করতে সক্ষম হওয়া উচিত। আইও যে কোনও যুক্তিসঙ্গত বিন্যাসে থাকতে পারে। প্রতিটি লাইনে ট্রেলিং স্পেসের অনুমতি রয়েছে এবং একটি ট্রেলিং নতুন লাইনের অনুমতি রয়েছে।

বাইট জিতে সংক্ষিপ্ত উত্তর।

উত্তর:


12

ভিম 122 , 89 কীস্ট্রোক

"aDJ"bD9i-<esc>Y2pVr <C-v>jr|$.Y4p3l<C-v>jljlr-jR| |<esc>{l<C-v>}d@apjdG@bp}Vr-{YPVr r/$r\qqYPllxx|P@qq@qddr*

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

আমি এই উত্তর পোস্ট করার পরে আমি আমার ভিএম-গল্ফিং দক্ষতার উল্লেখযোগ্যভাবে উন্নতি করেছি, তাই আমি ফিরে গিয়ে পুরো জিনিসটি স্ক্র্যাচ থেকে লেখার সিদ্ধান্ত নিয়েছি। প্রক্রিয়াতে তেত্রিশ বাইট সংরক্ষণ!

ইনপুটটি দুটি পৃথক লাইনে থাকবে বলে ধরে নেওয়া হয়েছে, যাতে আপনি টাইপ করা শুরু করার আগে বাফারটি এরকম দেখায়:

3
4

আমার একটি খুব বিশদ ব্যাখ্যা ছিল, তবে শুরু থেকে এটি আবার লেখার মতো মনে হয় না ...> _ <আপনি যদি এখনও এটি দেখতে চান তবে পুনর্বিবেচনার ইতিহাসটি দেখুন।


9

পাইথন 3.6 (প্রাক রিলিজ), 221 210 203 বাইট

x,y=eval(input())
w=8*x+1;p='-'*w+'\n'
for v in['*',*[f'/{" "*i}\\'for i in range(1,w-1,2)],p+p.join([''.join(f'{"".join([f"|{(a*3)[:3]:^7}"]*x)}|\n'for a in(*' -','| |',*'- '))]*y)+p]:print(v.center(w))

স্ট্যাডিন থেকে 2 টি পূর্ণসংখ্যা (কমা দ্বারা পৃথক) পড়ে, স্টাডাউটে ঘর প্রিন্ট করে।

পঠনযোগ্য সংস্করণ:

x, y = eval(input())
w = 8 * x + 1 # total width (in characters)
p = '-' * w + '\n' # floors
for v in [
    '*', # asterisk
    *[f'/{" "*i}\\' for i in range(1, w-1, 2)], # roof
    p + p.join([''.join(f'{"".join([f"|{(a*3)[:3]:^7}"]*x)}|\n' for a in (*' -','| |',*'- '))]*y) + p # rooms
]:
    print(v.center(w))

2
কোন 3.6.0a0 বৈশিষ্ট্যটি ব্যবহার করে? শুধু f'{name}'স্ট্রিং বিন্যাস?
বিড়াল

@ ট্যাক: কেবল এফ-স্ট্রিংস , হ্যাঁ
ভল্টাহ

1
আপনি কীভাবে 3.6 ইনস্টল করলেন? আমি অধীর আগ্রহে অপেক্ষা করছিলাম এফ-স্ট্রিংয়ের জন্য, তবে কীভাবে এটি নিজে ইনস্টল করা যায় তা বুঝতে পারি না (তারপরে আবার
সাইগউইন সমর্থনটি

@ এসপি 3000: আমি এটি উত্স থেকে তৈরি করেছি
ভোল্টাহ

@ Sp3000 পাইথন ৩.৩++ সাইগউইনে তৈরি করবে না।
মেগো

7

পাইথন 2, 190 181 বাইট

w,h=input();W=w*4
for i in range(~W,h*6+1):print['-'[i%(h*6):]*(W-~W)or['  %s  '%' -|-  - -  -|- '[~i%6::5],'-'*7][i%6<1].join('|'*-~w),' '*~i+['/%*c'%(w*8-~i*2,92),'*'][W<-i]][i<0]

খুব নিশ্চিত যে গল্ফ, বিশেষত উইন্ডোজের আরও অনেক কিছুই আছে তবে আপাতত এখানে কিছু। ইনপুট প্রস্থ এবং উচ্চতা কমা দ্বারা পৃথক, যেমন1,2

দ্রুত এবং রুক্ষ ব্যাখ্যা:

                *          <--- i = ~W = -w*4 - 1.    <---\
               / \         <--\ i = -W = -w*4             | Preceding spaces
              /   \           |                           | are calculated
             /     \          |                           | the same way
            /       \      <--/ i = -1                <---/
   /--->    ---------      <--- i = 0                 
   |        |       |      <--\ i = 1                 <---\
Check       |  ---  |         |                           | Calculate inner string
i%(h*6)     |  | |  |         |                           | and use to join '|'s
is zero     |  ---  |         |                           | (ditto with |-------|)
   |        |       |      <--/ i = h*6 - 1           <---/
   \--->    ---------      <--- i = h*6

            ^       ^
            \-------/

          W-~W = w*8 + 1

3

জাভাস্ক্রিপ্ট (ES6), 292 270 238 215 200 বাইট

এটিকে ছাঁটাতে সাহায্য করার জন্য @ নীলকে ধন্যবাদ!

a=>b=>[(p=(c,d=' ')=>d.repeat(c))(m=4*a)+'*',...[...Array(m)].map((c,i)=>p(--m)+`/${p(i*2+1)}\\‌`),y=p(8*a+1,'-')].join`
`+p(b,`
`+[x=p(a,'|'+p(7)),w=p(a,'|  ---  '),p(a,'|  | |  '),w,x,y].join`|
`)

যেমন কল করুন: F(a)(b)

ছাদ তৈরি করে, তারপরে স্তরযুক্ত স্ট্রিং পুনরাবৃত্তি করে মূল ঘরটি একত্রিত করে।


আমি যখন আপনার উত্তরটি দেখেছি তখন ভাবছিলাম আপনার ব্যবহার করা উচিত ছিল কিনা join`|\n` এবং এখন আমি আশা করি আমি সেই সময়ে মন্তব্য করেছিলাম। আমার আংশিক মন্তব্যে আপনাকে 9*aকোনও সময়ে ব্যবহার করার পরামর্শ দিয়ে যুক্ত করার পক্ষে এটি একটি ভাল অজুহাত হত which
নীল

আপনার সূত্রটি 4*a-1ভুল দেখাচ্ছে, আমার মনে হয় এটি হওয়া উচিত 4*a, এটি ঘটনাক্রমে আপনাকে 4 বাইট বাঁচাতে পারে।
নীল

m-i-1হয়ে --m9*a-aহয়ে 8*a
নীল

1
এখন, আপনি আসলে আপনার স্ট্রিংগুলিতে কোনও টেম্পলেট ব্যবহার করছেন না এবং আপনি `` *\n${[...Array(m)].map(...).join\ n }\n` done করতে পারতেন তবে আপনি আরও ভালভাবে যেতে পারেন এবং একই সাথে আগে এবং পরে স্ট্রিংয়ে যোগ দিতে পারেন:a=>b=>(p=(c,d=' ')=>d.repeat(c),[p(m=4*a)+`*`,...[...Array(m)].map((c,i)=>p(--m)+'/'+p(i*2+1)+'\\'),y=p(8*a+1,'-')].join`\n`+p(b,`\n`+[x=p(a,'| '),w=p(a,'| --- '),p(a,'| | | '),w,x,y].join`|\n`))
নীল

1
এর সাথে আরও একটি বাইট শেভ করুন `/${p(i*2+1)}\\‌`
নীল

3

সি ++, ২৮২ বাইট, পূর্ববর্তী এন্ট্রি সহ সমস্যাগুলি সমাধান করে:

#include<cstdio>
int main(){for(int r=2,c=2,x,y,q,u,h=c*4,w=h*2,i=0;i<h+r*6+2;i++)for(q=0;q<w+2;q++)x=q%8,y=i%8,u=(i-h-1)%6,putchar(q==w+1?10:i<=h?!i&&q==h?42:i==h-q?47:i==q-h?92:32:!u&&x||!u&&(i<h+2||i==h+r*6+1)||(u==2||u==4)&&x>2&&x<6?45:!x||u==3&&(x==3||x==5)?124:32);return 0;}

আউটপুট:

        *
       / \
      /   \
     /     \
    /       \
   /         \
  /           \
 /             \
/               \
-----------------
|       |       |
|  ---  |  ---  |
|  | |  |  | |  |
|  ---  |  ---  |
|       |       |
|-------|-------|
|       |       |
|  ---  |  ---  |
|  | |  |  | |  |
|  ---  |  ---  |
|       |       |
-----------------

3

রুবি, রেভ বি 165 বাইট

w=1-2*r=-4*x=gets.to_i
puts (r-1..h=6*gets.to_i).map{|n|n<0?(n<r ??*:?/+' '*(w+n*2)+?\\).center(w):n%h<1?(?-*w):'|CCBABCC'.tr('CBA','   | \-'[1222>>n%6*2&6,3])*x+?|}

একটি একক লুপ এবং অন্যান্য কয়েকটি গল্ফিং কৌশল ব্যবহার করে।

রুবি, রেভ এ 179 বাইট

w=1+8*x=gets.to_i
y=gets.to_i
b=(0..x*4).map{|n|(n<1??*:?/+' '*(n*2-1)+?\\).center(w)}
a=(2..y*6).map{|n|('|CCBABCC'.tr('CBA','   | \\-'[4888>>n%6*2&6,3]))*x+?|}
puts b,s=?-*w,a,s

Ungolfed

  x=gets.to_i
  y=gets.to_i

  w=x*8+1                                  #calculate width of house

  b=(0..x*4).map{|n|                       #design a roof line by line
    (n<1??*:?/+' '*(n*2-1)+?\\).center(w)  #first line is *, second line is /[spaces]\
  }                                        #centre correctly to the width of the house by padding

  a=(2..y*6).map{|n|                       #design a front facade line by line
    ('|CCBABCC'.                           #template for each row
      tr('CBA','   | \\-'[4888>>n%6*2&6,3])#substitute CBA for 3 characters from the string according to magic number 4888
    )*x+?|                                 #we need x copies, finishing with a |
  }

  puts b,s=?-*w,a,s                        #print a roof, a line of -, a facade and another line of -

আমি মনে করি আপনি স্ট্রিংগুলির মধ্যে একটি ব্যাকস্ল্যাশ ফেলে দিতে পারেন, অর্থাত্ | \-'
Sp3000

@ Sp3000 এটি কাজ করে, ধন্যবাদ। আমি অনুমান \-একটি পালানোর ক্রম হিসাবে কিছুই বোঝায় না, সুতরাং এটি \-2 অক্ষর হিসাবে পার্স করা হয়। তারপরে অবশ্যই -এর একটি বিশেষ অর্থ রয়েছে tr, সুতরাং ' \-'উইন্ডোজগুলি -(ম্যাপিং সি-> স্পেস, বি-> -এবং এ-> এড়ানোর জন্য আমাদের কাছে স্ট্রিং দরকার কারণ -আরও কোনও অক্ষর অবশিষ্ট নেই)) মেঝেগুলির জন্য, আমাদের কেবল স্ট্রিং '-'এবং এক্ষেত্রে trএটি একটি বিশেষ চরিত্রের চেয়ে কেবল আক্ষরিক হিসাবে ব্যাখ্যা করতে পেরে খুশি মনে হয়, সি = বি = এ = নির্ধারণ '-'করে সব মিলিয়ে কাজ করা একটি কৃপণ বিষয়। আমি নিশ্চিত যে আরও গল্ফ করার আছে, পরে সম্পাদনা করব।
স্তর নদী সেন্ট

2

সি ++, 258 বাইট টেস্ট এখানে

#include<cstdio>
int main(){for(int r=10,c=10,x,y,q,u,h=c*4,w=h*2,i=0;i<h+r*8+2;i++)for(q=0;q<w+2;q++)x=q%8,y=i%8,u=(i-(h+1))%8,putchar(q==w+1?10:i<=h?!i&&q==h?42:i==h-q?47:i==q-h?92:32:!u||(u==3||u==5)&&x>2&&x<6?45:!x||u==4&&(x==3||x==5)?124:32);return 0;}

ফলাফল:

                                        *                                        
                                       / \                                       
                                      /   \                                      
                                     /     \                                     
                                    /       \                                    
                                   /         \                                   
                                  /           \                                  
                                 /             \                                 
                                /               \                                
                               /                 \                               
                              /                   \                              
                             /                     \                             
                            /                       \                            
                           /                         \                           
                          /                           \                          
                         /                             \                         
                        /                               \                        
                       /                                 \                       
                      /                                   \                      
                     /                                     \                     
                    /                                       \                    
                   /                                         \                   
                  /                                           \                  
                 /                                             \                 
                /                                               \                
               /                                                 \               
              /                                                   \              
             /                                                     \             
            /                                                       \            
           /                                                         \           
          /                                                           \          
         /                                                             \         
        /                                                               \        
       /                                                                 \       
      /                                                                   \      
     /                                                                     \     
    /                                                                       \    
   /                                                                         \   
  /                                                                           \  
 /                                                                             \ 
/                                                                               \
---------------------------------------------------------------------------------
|       |       |       |       |       |       |       |       |       |       |
|       |       |       |       |       |       |       |       |       |       |
|  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |
|  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |
|  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |
|       |       |       |       |       |       |       |       |       |       |
|       |       |       |       |       |       |       |       |       |       |
---------------------------------------------------------------------------------
|       |       |       |       |       |       |       |       |       |       |
|       |       |       |       |       |       |       |       |       |       |
|  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |
|  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |
|  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |
|       |       |       |       |       |       |       |       |       |       |
|       |       |       |       |       |       |       |       |       |       |
---------------------------------------------------------------------------------
|       |       |       |       |       |       |       |       |       |       |
|       |       |       |       |       |       |       |       |       |       |
|  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |
|  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |
|  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |
|       |       |       |       |       |       |       |       |       |       |
|       |       |       |       |       |       |       |       |       |       |
---------------------------------------------------------------------------------
|       |       |       |       |       |       |       |       |       |       |
|       |       |       |       |       |       |       |       |       |       |
|  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |
|  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |
|  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |
|       |       |       |       |       |       |       |       |       |       |
|       |       |       |       |       |       |       |       |       |       |
---------------------------------------------------------------------------------
|       |       |       |       |       |       |       |       |       |       |
|       |       |       |       |       |       |       |       |       |       |
|  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |
|  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |
|  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |
|       |       |       |       |       |       |       |       |       |       |
|       |       |       |       |       |       |       |       |       |       |
---------------------------------------------------------------------------------
|       |       |       |       |       |       |       |       |       |       |
|       |       |       |       |       |       |       |       |       |       |
|  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |
|  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |
|  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |
|       |       |       |       |       |       |       |       |       |       |
|       |       |       |       |       |       |       |       |       |       |
---------------------------------------------------------------------------------
|       |       |       |       |       |       |       |       |       |       |
|       |       |       |       |       |       |       |       |       |       |
|  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |
|  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |
|  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |
|       |       |       |       |       |       |       |       |       |       |
|       |       |       |       |       |       |       |       |       |       |
---------------------------------------------------------------------------------
|       |       |       |       |       |       |       |       |       |       |
|       |       |       |       |       |       |       |       |       |       |
|  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |
|  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |
|  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |
|       |       |       |       |       |       |       |       |       |       |
|       |       |       |       |       |       |       |       |       |       |
---------------------------------------------------------------------------------
|       |       |       |       |       |       |       |       |       |       |
|       |       |       |       |       |       |       |       |       |       |
|  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |
|  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |
|  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |
|       |       |       |       |       |       |       |       |       |       |
|       |       |       |       |       |       |       |       |       |       |
---------------------------------------------------------------------------------
|       |       |       |       |       |       |       |       |       |       |
|       |       |       |       |       |       |       |       |       |       |
|  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |
|  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |
|  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |  ---  |
|       |       |       |       |       |       |       |       |       |       |
|       |       |       |       |       |       |       |       |       |       |
---------------------------------------------------------------------------------

1
এটি ওপির চিত্রের সাথে মেলে না। স্টোরের পিচগুলি আরও বেশি এবং ওপির চিত্রটিতে কেবল উপরের এবং নীচের তলগুলি শক্ত লাইন -। অন্তর্বর্তী মেঝে আপ ভাঙা হয়|
শ্রেনী নদী সেন্ট

@ স্টেভেভারিল এই নির্দেশের জন্য ধন্যবাদ, আমি আমার জমাতে ঠিক একই ভুলটি করেছি made এফপি
DJMcMayhem

2

সি #, 361 353 বাইট

string b(int w,int h){string m="",s,f,o=m,x,y,n="\n",p="|",q=" ";int i=0,v=w*4;Func<int,string,string>r=(j,c)=>{for(s="";j-->0;)s+=c;return s;};m+=r(v,q)+"*\n";for(;i<v;)m+=r(v-i-1,q)+'/'+r(i++*2+1,q)+"\\\n";f=r(w*8+1,"-");m+=f;x=n+r(w,p+r(7,q))+p;y=n+r(w,"|  ---  ")+p;o=x+y+n+r(w,"|  | |  ")+p+y+x;for(i=1;i++<h;)m+=o+x.Replace(q,'-');return m+o+n+f;}

সম্পূর্ণ প্রোগ্রাম:

using System;
class House
{
    static int Main()
    {
        var x = new House();
        Console.WriteLine(x.b(1,1));
        Console.WriteLine();
        Console.WriteLine(x.b(2,2));
        Console.WriteLine();
        Console.WriteLine(x.b(2,3));
        Console.WriteLine();
        Console.WriteLine(x.b(9,9));
        Console.WriteLine();
        Console.Read();
        Console.WriteLine(x.b(10, 10)); // Looks broken because Bash to small
        Console.Read();
        return 0;
    }

    string b(int w,int h){string m="",s,f,o=m,x,y,n="\n",p="|",q=" ";int i=0,v=w*4;Func<int,string,string>r=(j,c)=>{for(s="";j-->0;)s+=c;return s;};m+=r(v,q)+"*\n";for(;i<v;)m+=r(v-i-1,q)+'/'+r(i++*2+1,q)+"\\\n";f=r(w*8+1,"-");m+=f;x=n+r(w,p+r(7,q))+p;y=n+r(w,"|  ---  ")+p;o=x+y+n+r(w,"|  | |  ")+p+y+x;for(i=1;i++<h;)m+=o+x.Replace(q,'-');return m+o+n+f;}

    // Without extra vars
    string b1(int w, int h)
    {
        string m = "", s, f, o = m, x, y;
        int i = 0, v = w*4;
        Func<int,string,string> r = (j,c) => {
            for(s = ""; j-->0;) s += c;
            return s;
        };
        /// Roof
        m += r(v, " ") + "*\n";
        for (; i < v;) m += r(v - i - 1, " ") + '/' + r(i++ * 2 + 1, " ") + "\\\n";
        /// Ceiling
        f = r(w * 8 + 1, "-");
        m += f;
        /// Room
        x = "\n" + r(w, "|" + r(7, " ")) + "|";
        y = "\n" + r(w, "|  ---  ") + "|";
        o = x + y + "\n" + r(w, "|  | |  ") + "|" + y + x;
        for (i = 1; i++ < h;) m += o + x.Replace(' ','-');
        /// Floor
        return m + o + "\n" + f;
    }

    string build(int width, int height)
    {
        // House, tempStr, floor, room, x/y = room_row1/2
        string house = "", s, ceil, room = "", x, y;
        int i, v = width*4;
        Func<int,string,string> rep = (j,c) => {
            s = "";
            for(; j>0; j--) s += c;
            return s;
        };
        /// Roof
        house += rep(v, " ") + "*\n";
        for (i = 0; i < v;) {
            // LEFT Indent + '/' + Distance + '\'
            house += rep(v - i - 1, " ") + '/' + rep(i++ * 2 + 1, " ") + "\\\n";
        }
        /// Ceiling
        ceil = rep(width * 8 + 1, "-");
        house += ceil;
        /// Room
        x = "\n" + rep(width, "|" + rep(7, " ")) + "|";
        y = "\n" + rep(width, "|  ---  ") + "|";
        room = x + y + "\n" + rep(width, "|  | |  ") + "|" + y + x;
        for (i = 1; i < height; i++) {
            house += room;// + x.Replace(' ','-');
            house += "\n" + rep(width, "|" + rep(7, "-")) + "|";
        }
        /// Floor
        house += room + "\n" + ceil;
        return house;
    }
}

নাইস, সাধারণ টিপ্সের যে এখানে প্রযোজ্য দম্পতি: আপনি অক্ষরের একটি থাবা কিছু পুরো বিষয়টা বিস্তারিত বিবেচনা গ্রহণ করে সংরক্ষণ করতে পারবেন আপনার জন্য-লুপ ( s=""জন্য (ঞ) লুপ (বিবেচনা ভিতরে রেখে দেওয়া যেতে পারে j-->0, এবং অবস্থার জন্য পাশাপাশি i++<hমধ্যে গত লুপ), i=0ঘোষণা একটি বাইট সংরক্ষণ মধ্যে লুপ জন্য আউট সরানো যাবে না। এছাড়াও, আপনি নির্ধারিত খালি স্ট্রিং পুনঃব্যবহার দ্বারা একটি বাইট সংরক্ষণ করতে পারেন (একবার mনির্ধারিত হয়, আপনি ধার্য করতে পারেন o=mসংরক্ষণ ""। প্রতিস্থাপন তাই আপনি এটি করতে পারেন স্ট্রিং লাগে, qপরিবর্তে আপনার ব্যবহার করুন ' ', এবং >ঘোষণার পরে স্থানটির কোনও প্রয়োজন নেই rSmall ছোট জিনিসগুলি;)
ভিজুয়ালমেলন

কখনও কখনও এটি ছোট জিনিস যা পার্থক্য তৈরি করে। ধন্যবাদ: ডি
ডিডব্লিউ.কম 8:48

1

ভিবিএ, 284 বাইট

Function H(W,S)
L=vbLf:H=Space(4*W)&"*"&L
For R=1 To 4*W:H=H &Space(4*W-R)&"/"&Space(2*R-1)&"\"&L:Next
J=".":P=String(W,J)&"|"&L
D=String(8*W+1,"-")&L
E=Replace(P,J,"|       ")
F=Replace(P,J,"|  ---  ")
H=H &Replace(String(S,J),J,D &E &F &Replace(P,J,"|  | |  ")&F &E)&D
End Function

স্ট্রিং ফাংশনটি দুর্ভাগ্যক্রমে চায় না এমনভাবে একাধিক অনুলিপি তৈরির জন্য রিপ্লেস ফাংশন একটি ঝরঝরে সরঞ্জাম।

ভিবিএ সম্পাদকের তাত্ক্ষণিক উইন্ডোতে সর্বোত্তম প্রভাবের জন্য ডাকুন: ?H(8,8)উদাহরণস্বরূপ।

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