*** ল্যান্ডস্কেপ ***


28

উদ্দেশ্য : এমন একটি প্রোগ্রাম লিখুন যা সুন্দর (?) এএসসিআইআই-আর্ট ল্যান্ডস্কেপ এবং স্কাইলাইন তৈরি করে!

আপনার প্রোগ্রামের একটি মাত্র ইনপুট রয়েছে: অক্ষরের কোনও সংমিশ্রণ / পুনরাবৃত্তির সমন্বয়ে একটি স্ট্রিং 0123456789abc

প্রতিটি ইনপুট চরিত্রের জন্য, নীচে উল্লিখিত একটি উল্লম্ব রেখা আউটপুট করুন:

         .
        ..
       ...
      oooo
     ooooo
    OOOOOO
   OOOOOOO
  XXXXXXXX
 XXXXXXXXX
XXXXXXXXXX

0123456789

abcপরিবর্তে অক্ষরগুলি একটি নম্বর এন দ্বারা অনুসরণ করা হয় এবং নীচে যথাক্রমে 1,2 বা 3 টি গর্ত (ফাঁকা স্থান) সহ উল্লম্ব রেখা এন আঁকুন।

উদাহরণ

ক্রিস্টলার বিল্ডিং

ইনপুট: 2479742

   .
   .
  ...
  ooo
  ooo
 OOOOO
 OOOOO
XXXXXXX
XXXXXXX
XXXXXXX

তাজমহল

ইনপুট: 0804023324554233204080

 .                  .
 .                  .
 o                  o
 o        oo        o
 O O     OOOO     O O
 O O  OO OOOO OO  O O
 X X XXXXXXXXXXXX X X
 X X XXXXXXXXXXXX X X
XXXXXXXXXXXXXXXXXXXXXX

আইফেল টাওয়ার

ইনপুট: 011a2b3b5c9c9b5b3a2110

      ..
      ..
      ..
      oo
     oooo
     OOOO
    OOOOOO
   XXX  XXX
 XXX      XXX
XXX        XXX

আপনি ধরে নিতে পারেন ইনপুটটি খালি নয় এবং এটি সুগঠিত। এ + থেকে জেড ++
পর্যন্ত যে কোনও ভাষা গ্রহণযোগ্য ।

এটি কোড-গল্ফ: সংক্ষিপ্ততম সোর্স কোড জিতেছে
যদি নিয়মের কিছু পরিষ্কার না হয় তবে নীচে মন্তব্যে জিজ্ঞাসা করুন।

মজা করুন, এবং কয়েক বাইটে শত মিটার উঁচু কাঠামো ক্যাপচার করুন!

(এবং আপনার সমাধানটিতে আপনার পছন্দসই বিল্ডিং অন্তর্ভুক্ত করতে ভুলবেন না)

পিএস: না, আপনি ইন্টারনেট থেকে ডেটা ডাউনলোড / অ্যাক্সেস করতে পারবেন না, আপনার ফাইলের নাম ডেটা এবং সমস্ত জিনিস হিসাবে ব্যবহার করুন। ন্যায্য হন এবং কেবল আপনার কোড-গল্ফ দক্ষতা ব্যবহার করুন।


আমার কাছে লম্বা 9 বলে মনে হচ্ছে ...: -?
গ্যাব্রিয়েল ডি'আন্টোনা

ওহ, আমি এটি দেখতে পাচ্ছি: শীর্ষটি "সি 9" হিসাবে সংজ্ঞায়িত করা হয়েছে, এর অর্থ: উচ্চতা 9 সহ একটি উল্লম্ব রেখা আঁকুন এবং 3 নীচের অংশটি শেভ করুন। এ কারণেই এটি আপনার কাছে দীর্ঘ 7 বলে মনে হচ্ছে। নিয়মগুলি আবার পড়ুন এবং বলুন ঠিক আছে কিনা।
গ্যাব্রিয়েল ডি'আন্টোনা

ঠিক আছে, আমি আপনার অফসেটের স্পেসিফিকেশন ভুল লিখেছি।
হাওয়ার্ড

উত্তর:



5

রুবি, 88 85

মজার চ্যালেঞ্জ!

9.downto(0){|h|puts$*[0].gsub(/(\D?)(.)/){'XXXOOoo... '[h<$1.hex-9||$2.hex<h ?-1:h]}}

কমান্ডলাইনে ইনপুট নেয়, যেমন:

ruby landscapes.rb 011a2b3b5c9c9b5b3a2110

প্রিন্ট আউট করবে:

      ..      
      ..      
      ..      
      oo      
     oooo     
     OOOO     
    OOOOOO    
   XXX  XXX   
 XXX      XXX 
XXX        XXX

5

পাইথন 2.7 - 186

সম্ভবত খাটো হতে পারে ...

x=[]
l=iter(raw_input())
a="XXX00oo..."
for i in l:
 try:i=int(i);o=0
 except:o=" abc".index(i);i=int(next(l))
 x.append(" "*o+a[o:i+1]+" "*(9-i))
for i in zip(*x)[::-1]:print''.join(i)

নমুনা রান:

08040233245542332040800000247974200000011a2b3b5c9c9b5b3a2110
                             .              ..
 .                  .        .              ..
 .                  .       ...             ..
 o                  o       ooo             oo
 o        oo        o       ooo            oooo
 0 0     0000     0 0      00000           0000
 0 0  00 0000 00  0 0      00000          000000
 X X XXXXXXXXXXXX X X     XXXXXXX        XXX  XXX
 X X XXXXXXXXXXXX X X     XXXXXXX      XXX      XXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX        XXX

সিডনি হারবার ব্রিজ

a1a13443a1a2a3a4a5a6a6a7a7a8a8a8a8a9a9a9a9a9a9a8a8a8a8a7a7a6a6a5a4a4a3a2a13443a1a1
                   ......
               ..............
             ..................
           oooooooooooooooooooooo
          oooooooooooooooooooooooo
   00    000000000000000000000000000    00
  0000  00000000000000000000000000000  0000
  XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  XXXX                                 XXXX

সোনার গেট ব্রিজ / সিসকো লোগো

a2a0a0a4a0a06a0a0a4a0a0a2a0a0a4a0a06a0a0a4a0a0a2



      o           o
      o           o
   0  0  0     0  0  0
   0  0  0     0  0  0
X  X  X  X  X  X  X  X  X
X  X  X  X  X  X  X  X  X
      X           X

দারুণ প্রশ্ন!


দুর্দান্ত স্মৃতিস্তম্ভ! :)
গ্যাব্রিয়েল ডি'আন্টোনা

5

সি B৪ বেসিক, ২E6 পিইটিএসসিআইআই চার্স

আমার নিজস্ব সমাধান, গলফ ডাউন 276 টি অক্ষর এবং বেসিক ভি 2.0 এর 10 লাইন!

0inputa$:dIc$(10):fOi=0to9:rE c$(i):nE:fOr=0to9
1z=1
2c=aS(mI(a$,z,z+1))
3ifc>57tHgO8
4ifc>=57-r tH?c$(9-r);:gO6
5?" ";
6z=z+1:ifz<=len(a$)gO2
7?:nE:eN
8z=z+1:w=aS(mI(a$,z,z+1)):ifw>=57-r aNc<=73-r tH?c$(9-r);:gO6
9?" ";:gO6:dA"x","x","x","o","o","W","W",".",".","."

(ফলাফলটি দেখতে একটি এমুলেটরটিতে অনুলিপি করুন এবং আটকান)।

এবং অবশেষে, আমার প্রিয় স্মৃতিস্তম্ভ, ব্রুকলিন ব্রিজ :)

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


5

সি, 130 126 অক্ষর

কিন্ডা দীর্ঘদিনের প্রতিযোগিতার সাথে তুলনা করলেও আমি ভাষাটিকে দোষ দিই ...

char*p,b[99];r=10,q;main(o){for(gets(&b);r--;puts(""))
for(p=b;q=*p++;)o=q<60?putchar("XXXOOoo... "[o<r&r<q-47?r:10]),-1:q-97;}

আমি পছন্দসই বিল্ডিং সম্পর্কে জানি না , তবে আশেপাশের আরও একটি স্বীকৃত গ্লোবেন , সুতরাং এখানে এটির একটি খারাপ উপস্থাপনা দেওয়া হল।

% ./a.out <<<24556667777776665542


       ......       
    oooooooooooo    
  oooooooooooooooo  
 OOOOOOOOOOOOOOOOOO 
 OOOOOOOOOOOOOOOOOO 
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX

char b[99],*p;এটি পড়ার ঘোষণার ক্রমটি পরিবর্তন করে আপনি কোনও অক্ষর কেটে ফেলতে পারেন char*p,b[99];। এছাড়াও putsনতুন লাইনটি মুদ্রণের জন্য ব্যবহার করা আরও কম হতে পারে ।
C0deH4cker

@ C0deH4cker সুন্দর, ধন্যবাদ! এটি আমার চার অক্ষর বাঁচায়।
ফায়ারফ্লাই

@ ফ্রিউল ওহ, আমি মোটেও এরকম বোঝাতে চাইনি, আমার প্রিয় বিল্ডিংটি আমি কী বিবেচনা করব তা ঠিক জানি না। : পি
ফায়ারফ্লাই

3

এপিএল ( 69 66)

' XXXOOoo...'[1+⌽⍉⌽↑{z×(z<' abc'⍳⍵)<(1+⍎⍺)≥z←⍳10}/↑2↑¨I⊂⍨⎕D∊⍨I←⌽⍞]

উদাহরণ:

      'XXXoooo ...' [[1 + ⌽⍉⌽ ↑ {z × (z <'abc'⍳⍵) <(1 + ⍎⍺) ≥z ← ⍳10} / ↑ 2 ↑ ⊂⍨⎕I⊂⍨⎕D∊⍨ আমি ← ⌽⍞]
0804023324554233204080

 । ।
 । ।
 ওও 
 ও ও ও 
 ওও ওওও ওও 
 ওও ওও ওও ওও ওও ওও 
 এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স 
 এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স 
XXXXXXXXXXXXXXXXXXXXXX

      'XXXoooo ...' [[1 + ⌽⍉⌽ ↑ {z × (z <'abc'⍳⍵) <(1 + ⍎⍺) ≥z ← ⍳10} / ↑ 2 ↑ ⊂⍨⎕I⊂⍨⎕D∊⍨ আমি ← ⌽⍞]
011a2b3b5c9c9b5b3a2110
      ..      
      ..      
      ..      
      ওও      
     উহ     
     উহ     
    OOOOOO    
   XXX এক্সএক্স   
 XXX এক্সএক্স 
XXX এক্সএক্স

আমি এপিএলটি খুব ভাল জানি না, তবে আপনি কি নিশ্চিত যে 'XXXOOoo ...' স্ট্রিংয়ের শুরুতে আপনার স্থান প্রয়োজন?
গ্যাব্রিয়েল ডি'আন্টোনা

@ ফ্রিওল: হ্যাঁ, এটি "খালি" স্থান পূরণ করার জন্য ব্যবহৃত হয়
মেরিনাস



2

পিএইচপি ,131 114 বাইট

for($b=10;$b--;print"
")foreach(str_split($argn)as$a)$c=strpos(' abc',$a)?:!print$a<$b|$b<$c?' ':'XXXOOoo...'[$b];

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

$ echo 2479742|php -nF land.php 
   . 
   . 
  ... 
  ooo 
  ooo 
 OOOOO 
 OOOOO 
XXXXXXX 
XXXXXXX 
XXXXXXX 


$ echo 011a2b3b5c9c9b5b3a2110|php -nF land.php 
      .. 
      .. 
      .. 
      oo 
     oooo 
     OOOO 
    OOOOOO 
   XXX  XXX 
 XXX      XXX 
XXX        XXX 


$ echo a2a0a0a4a0a06a0a0a4a0a0a2a0a0a4a0a06a0a0a4a0a0a2|php -nF land.php 



      o           o 
      o           o 
   O  O  O     O  O  O 
   O  O  O     O  O  O 
X  X  X  X  X  X  X  X  X 
X  X  X  X  X  X  X  X  X 
      X           X


1

05 এ বি 1 ই (উত্তরাধিকার) , 34 বাইট

Rvy.ïi"XXXOOoo..."y>£ëðAykÝǝ])ζRí»

2 বাইট সংরক্ষণের জন্য 05AB1E এর উত্তরাধিকার সংস্করণ ব্যবহার করে, যেহেতু ζকেবলমাত্র অক্ষরের তালিকাগুলির পরিবর্তে স্ট্রিংগুলিতেও কাজ করে।

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

ব্যাখ্যা:

R                  # Reverse the (implicit) input-string
 v                 # Loop `y` over each character:
  yi             #  If `y` is a digit:
      "XXXOOoo..." #   Push string "XXXOOoo..."
        y        #   And only leave the first `y`+1 characters as substring
     ë             #  Else (`y` is a letter):
       Ayk         #   Get the index of `y` in the lowercase alphabet
          Ý        #   Create a list in the range [0, alphabet-index]
      ð    ǝ       #   Replace in the string at the top of the stack the characters at
                   #   those indices with a space
 ]                 # Close the if-else statement and loop
  )                # Wrap all strings on the stack into a list
   ζ               # Zip/transpose; swapping rows/columns
    Rí             # Reverse this list, as well as each individual line
      »            # And join the strings by newlines
                   # (after which the result is output implicitly)

আমার প্রিয় 'বিল্ডিং' হিসাবে, এই গাছটি নিয়ে যাই। ;)

b2b3b4b5b6b7898b7b6b5b4b3b2

       .       
      ...      
     .....     
    ooooooo    
   ooooooooo   
  OOOOOOOOOOO  
 OOOOOOOOOOOOO 
XXXXXXXXXXXXXXX
      XXX      
      XXX      

1

জাপট -R , 36 বাইট

óȦnãÒXÌ î"XXXOOoo..."hSpXÎnD)s9Ãz3

চেষ্টা করে দেখুন

óȦnãÒXÌ î"..."hSpXÎnD)s9Ãz3     :Implicit input of string
ó                                 :Partition at
 È                                :Characters that return true when passed through the following function
  ¦                               :  Test for inequality with
   n                              :  Convert to number
    Ã                             :End function
     £                            :Map each X
      Ò                           :  Bitwise increment
       XÌ                         :  Last character of X
          î                       :  Slice the following to that length
           "..."                  :    Literal string
                h                 :    Replace as many characters as necessary at the start of that string with
                 S                :      Space
                  p               :      Repeat
                   XÎ             :        First character of X
                     n            :        Convert from base
                      D           :        14
                       )          :      End repeat
                        s9        :      Slice off the first 9 characters
                          Ã       :End map
                           z3     :Rotate clockwise by 90 degrees 3 times
                                  :Implicit output, joined by newlines
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.