আমেরিকা আরোহণ


11

এখন যেহেতু অন্যান্য ব্যবহারকারীরা ট্রাম্পটিকে প্রাচীরটি তৈরি করতে সহায়তা করেছেন , আপনার সময় এটির উপরে উঠার।

এটি একটি আসকি শিল্প চ্যালেঞ্জ যেখানে আপনাকে এলোমেলোভাবে স্থাপন করা হোল্ডগুলি সহ একটি আরোহণ প্রাচীর আউটপুট করতে হবে।

একটি আরোহণ প্রাচীর প্রতিটি প্যানেল দ্বারা তৈরি করা হয় যার প্রতিটি 3 থেকে 10 এর অধিক হোল্ড এবং 5 টি প্যানেল উঁচু। প্রতিটি প্যানেল 4 অক্ষর উচ্চ এবং 10 অক্ষর জুড়ে

আমরা |প্রাচীরের দিকটি (আর্ট) এবং -প্যানেলের প্রান্তগুলি উপস্থাপন করতে একটি ব্যবহার করি। প্যানেলগুলির কোণগুলি দ্বারা প্রদর্শিত হয় +এবং হোল্ডগুলি হিসাবে প্রদর্শিত হয় o

অবশেষে, প্রাচীর অবশ্যই America!শীর্ষে এবং Mexicoনীচে থাকতে হবে।

আপনার প্রোগ্রামটি কোনও ইনপুট গ্রহণ করা উচিত নয় যতক্ষণ না ইনপুট চালানোর প্রয়োজন হয় এবং নীচের মতো দেখতে এমন কিছু আউটপুট দেয়

এটি একটি উদাহরণ আউটপুট:

  America!
+----------+
|  o       |
|    o o   |
| o    o   |
|  o    o  |
+----------+
|  o       |
|    o o   |
| o    o   |
|  o    o  |
+----------+
|  o       |
|    o o   |
| o    o   |
|  o    o  |
+----------+
|  o       |
|    o o   |
| o    o   |
|  o    o  |
+----------+
|  o       |
|    o o   |
| o    o   |
|  o    o  |
+----------+
   Mexico

এটি বিভ্রান্তিকরভাবে সেট করা যেতে পারে তাই এটি আরও সুস্পষ্টভাবে নীচে গঠনযুক্ত

ইনপুট

Zilcho। আপনার কোনও একেবারে ইনপুট নেওয়া উচিত নয়।

আউটপুট

5 টি প্যানেল দিয়ে তৈরি একটি আসকি-আর্ট ক্লাইমিং প্রাচীর, America!শীর্ষে Mexicoকেন্দ্রীকৃত এবং নীচে কেন্দ্রে প্রতিটি 12 টি কলাম দ্বারা প্রতিটি 6 লাইন । প্রতিটি প্যানেলে একটি অভিন্ন প্যাটার্ন থাকে যা এলোমেলোভাবে প্রোগ্রাম দ্বারা উত্পাদিত হয়। প্যানেল প্যাটার্নটিতে 3 থেকে 10 এর মধ্যে একটি এলোমেলোভাবে বিতরণ করা এলোমেলো সংখ্যক হোল্ড থাকে।

বিধি

  • কোনও ইনপুট অনুমোদিত নয়
  • আমি "কোনও বিল্টিনস" বলব না তবে আপনার ভাষার যদি এর জন্য বিল্টিন থাকে তবে আমি স্বয়ংক্রিয়ভাবে এটিকে বিজয়ী হিসাবে গ্রহণ করব accept
  • এটি তাই সংক্ষিপ্ততম কোড (বাইটে) জয়।
  • হোল্ড ব্যতীত আউটপুট অবশ্যই হোল্ড ছাড়াই উপরের মত ঠিক একই হতে হবে।
  • র্যান্ডম এখানে র্যান্ডম সংজ্ঞায়িত করা হয়

5
এলোমেলো অর্থ কি অভিন্নভাবে এলোমেলো, বা প্রতিটি সম্ভাব্য বিন্যাসের কেবল ঘটনার একটি ননজারো সুযোগ প্রয়োজন, বা আমার কি কমপক্ষে দুটি সম্ভাবনা থাকা দরকার?
পাভেল

@ নোটস 90 এগুলি একই হওয়া উচিত এবং এলোমেলোভাবে একটি পরিমাণ বাছাই করা উচিত। এটি পোস্টে উল্লেখ করা হয়েছে, তবে এলোমেলোভাবে সংজ্ঞা দেওয়া হয়নি।
পাভেল

2
আমি এখনও মনে করি যদি প্রতিটি প্যানেল আলাদা হতে হয় তবে এটি আরও ভাল চ্যালেঞ্জ হবে।
শেগি

3
এই অধিকারটি এখানে স্যান্ডবক্সে আমার সমস্যা is আমার এক মাসেরও বেশি সময় ধরে এই চ্যালেঞ্জটি ছিল এবং সেখানে আমার পোস্টগুলি সাফ করার সিদ্ধান্ত নিয়েছে। সুতরাং আমি এটিকে পোস্ট করে ভেবেছি যে প্রতিটি ইস্যুটি আয়রিত হয়ে গেছে এবং এটি ঘটে!
ইয়ার 17'17

1
@ ওয়ার্ল্ডলাল জাল খবর! মিথ্যাচার! এলোমেলোভাবে খুব গুরুত্বপূর্ণ। ট্রাম্পসক্রিপ্টটিতে আপনি কখনও দেখেছেন সেরা র্যান্ডম জেনারেটর। (আপনাকে যা করতে হবে তা হ'ল রাষ্ট্রপতির টুইটার ফিডের লিঙ্ক!)
স্তরের রিভার সেন্ট

উত্তর:


5

জেলি , 65 57 বাইট

প্রথমবারের মতো নতুন-ফিঙ্গেল ব্যবহার করুন , একটি দ্বি-কোড-পয়েন্ট পূর্ণসংখ্যার স্ট্রিং আক্ষরিক ( ⁽¥0= 2049)

⁽¥0ṃ⁾+-W
“K2X)»Ṅø40RẊ<8X+3¤s⁵ị⁾o j@€⁾||Yṭ¢µṄ€5¡Ṗ;⁷“Ç€:;#»

সম্পূর্ণ প্রোগ্রাম কোনও ইনপুট নিচ্ছে না এবং প্রাচীর মুদ্রণ করছে।

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

কিভাবে?

⁽¥0ṃ⁾+-W - Link 1, panel separator: no arguments
⁽¥0      - literal 2049
    ⁾+-  - literal "+-"
   ṃ     - convert 2049 to base "+-" as if they were [1,0]
       W - wrap in a list   -> ["+----------+"]

“K2X)»Ṅø40RẊ<8X+3¤s⁵ị⁾o j@€⁾||Yṭ¢µṄ€5¡Ṗ;⁷“Ç€:;#» - Main link: no arguments
“K2X)»                                           - "  America!"
      Ṅ                                          - print with line feed
       ø                                         - niladic chain separation
        40                                       - literal 40
          R                                      - range -> [1,2,...,40]
           Ẋ                                     - random shuffle
                 ¤                               - nilad and link(s) as a nilad:
             8X                                  -   random integer between 1 and 8
                3                                -   literal 3
               +                                 -   add
            <                                    - less than? (vectorises)
                   ⁵                             - literal 10
                  s                              - split into chunks of length 10
                     ⁾o <-- a space              - literal "o "
                    ị                            - index into
                           ⁾||                   - literal "||"
                        j@€                      - join with reversed @rguments
                              Y                  - join with line feeds
                                ¢                - call last link (1) as a nilad
                               ṭ                 - tack left to right
                                 µ               - call that p... (monadic chain separation)
                                    5¡           - repeat five times:
                                   €             -   for €ach (separator & panel)
                                  Ṅ              -     print with trailing line feed(separator and panel):
                                      Ṗ          - pop (just the separator now)
                                        ⁷        - literal line feed
                                       ;         - concatenate
                                                 - unused value printed
                                         “Ç€:;#» - "   Mexico"
                                                 - implicit print

4
এটি আমার দেখা দীর্ঘতম জেলি প্রোগ্রাম।
পাভেল

অস্পষ্টতা পরিবর্তন করা হয়েছে। আপনার থাকার অনুমতি দেওয়ার জন্য আমি 3-10 দিয়ে সিদ্ধান্ত নিয়েছি।
কেয়ার্ড কোইনরিঙ্গিংহিং

জন্য +1 )o <-- a space। সত্যই আমাকে হাসিয়ে দিয়েছে!
কেয়ার্ড কোইনারিংহিং

@ ফিনিক্স এটি সংক্ষিপ্ত হয়ে গেছে, তবে আমি সাহায্য করতে পারি না তবে মনে করি এটি আরও কম হওয়া উচিত।
জোনাথন অ্যালান

@ শয়তানের সান এটি প্রায় একটি স্পেস হপার!
জোনাথন অ্যালান

4

পিএইচপি, 138 বাইট

<?=($p=str_pad)("  America!",349,strtr("
+----------+
|0|
|1|
|2|
|3|",str_split(str_shuffle($p($p(o,rand(3,10),o),40)),10)))."   Mexico";

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

সম্প্রসারিত

<?=($p=str_pad)("  America!",349, 
#fill the string till a length of 349 with
strtr("
+----------+
|0|
|1|
|2|
|3|",
# before replace the digits with strings in the array
str_split(str_shuffle($p($p(o,rand(3,10),o),40)),10))) 
# make a string with o length 3- 10 fill it with spaces to length 40
# shuffle the resulting string and split it into a array of strings with length 10
."   Mexico"; # add the end

4

জাভাস্ক্রিপ্ট (ES6), 194 160 বাইট

(h=0,g=p=>h>2?p:g(p.replace(/ /g,_=>" o"[(h+=s=Math.random()>.8)<11&s])))=>`  America!
${t=`+----------+
`}${g(`|          |
`.repeat(4)+t).repeat(5)}   Mexico`

এটি চেষ্টা করুন

হোল্ডগুলির প্যাটার্নটি নীচে স্নিপেটে প্রতি 2 সেকেন্ডে পরিবর্তিত হবে।

f=
(h=0,g=p=>h>2?p:g(p.replace(/ /g,_=>" o"[(h+=s=Math.random()>.8)<11&s])))=>`  America!
${t=`+----------+
`}${g(`|          |
`.repeat(4)+t).repeat(5)}   Mexico`
o.innerText=f()
setInterval("o.innerText=f()",2e3)
<pre id=o>


ব্যাখ্যা

  • আমরা একটি বেনামে ফাংশন তৈরি করি, এটি কোনও ইনপুট না নিলেও এর ডিফল্ট মান সহ 2 টি পরামিতি থাকে:
    • h, যার প্রাথমিক মূল্য দেওয়া হয় 0; এটি যখন আমরা যুক্ত করতে যাব তখন এটি প্যানেলে হোল্ডগুলির সংখ্যা গণনা রাখবে।
    • gএটি একটি পুনরাবৃত্ত ফাংশন যা আমরা প্যানেলে হোল্ডগুলির র্যান্ডম প্যাটার্ন তৈরি করতে ব্যবহার করব। আমরা কিছুটা হলেও এদিকে ফিরে আসব।
  • মূল ফাংশন বডিতে আমরা একটি টেম্পলেট আক্ষরিক আউটপুট করি with America!\n
  • এরপরে আমরা প্যানেল বিভাজক তৈরি করি (+----------+\n ) এবং এটিকে নির্ধারণ করি t, এটি প্রক্রিয়াতে আউটপুটে যুক্ত করে।
  • এরপরে, আমরা প্যানেলের একটি একক লাইন তৈরি করি (| |\n ), এটি 4 বার পুনরাবৃত্তি করুন এবং সংযোজন করুন t
  • আমরা কল g , একটি আর্গুমেন্ট হিসাবে উপরে পদক্ষেপ থেকে STRING ক্ষণস্থায়ী, পরামিতি মাধ্যমে p
  • এখন, হোল্ড প্যাটার্ন জন্য। মধ্যেg :
    • আমরা কিনা তা পরীক্ষা করে দেখি h>2 (যেমন, আমাদের কাছে 3 বা তার বেশি হোল্ড রয়েছে) তা ।
    • যদি তা হয় তবে আমরা স্ট্রিংটি ফিরে আসি p
    • যদি তা না হয়, আমরা gআবার কল করব , এবার একটি পরিবর্তিত অনুলিপি পাস করবোp এবার আর্গুমেন্ট হিসাবে ।
    • সংশোধিত কপি pহয়েছে replaceএটা ব্যবহার পদ্ধতি, সব প্রতিস্থাপন <space>একটি দিয়ে অক্ষর <space>অথবা একটি oস্ট্রিং এর চরিত্র ইনডেক্স (0 বা 1) আখ্যা<space>o
    • আমরা এর দ্বারা অক্ষর সূচক নির্ধারণ করি
      1. কল করা হচ্ছে Math.random() , যা একচেটিয়া 0 এবং 1 এর মধ্যে দশমিক সংখ্যা ফেরৎ দেয়।
      2. এর চেয়ে বড় কিনা তা পরীক্ষা করা হচ্ছে .8। তাদের প্যানেলে 40 টি ফাঁকা থাকার এবং সর্বাধিক 10 টি হোল্ড থাকার কারণে এটি করা প্যানেল জুড়ে হোল্ডগুলির বিতরণকে উন্নত করে ( .75আরও সঠিক হবে, তবে, আশা করি, আপনি আমাকে ছাড়ের জন্য ছাড় দেবেন একটি বাইট সংরক্ষণ!)।
      3. সেই চেকটির বুলিয়ানটি ভেরিয়েবলের জন্য বরাদ্দ করা হয় s
      4. sএকটি পূর্ণসংখ্যার সাথে জোর করা হয় (0 বা 1) এবং এতে যুক্ত হয় h
      5. আমরা hএখন 11 এর চেয়ে কম কিনা তা পরীক্ষা করে দেখি (যেমন, বর্তমানে আমাদের কাছে কি 10 টিরও কম হোল্ড রয়েছে) এবং যদি sএটি সত্য হয়।
      6. সেই বুলিয়ানটি পরিবর্তিত হয় কোনও পূর্ণসংখ্যার সাথে জোর করে, স্ট্রিংয়ে আমাদের সূচি দেয়।
  • আমাদের আউটপুট ফিরে! আমরা স্ট্রিংটি g5 বার দ্বারা পুনরাবৃত্তি করি ।
  • এবং তারপরে Mexicoজিনিসগুলি বন্ধ করতে স্ট্রিংয়ের শেষে যুক্ত করুন । রাম রাম!

বিকল্প

এবং, কেবলমাত্র আমি ভেবেছিলাম যে এটি চ্যালেঞ্জটিতে একটি দুর্দান্ত সংযোজন ঘটেছে: কেবলমাত্র 12 টি অতিরিক্ত বাইটের জন্য, প্রতিটি প্যানেলে আমাদের অনন্য প্যাটার্ন থাকতে পারে, তার পরিবর্তে সমস্তগুলি অভিন্ন হবে being

(g=(p=`|          |
`.repeat(4)+t,h=0)=>h>2?p:g(p.replace(/ /g,_=>" o"[(h+=s=Math.random()>.8)<11&s]),h))=>`  America!
${t=`+----------+
`}${g()+g()+g()+g()+g()}    Mexico`

এটি চেষ্টা করুন

আবার হোল্ডগুলির ধরণগুলি প্রতি 2 সেকেন্ডে পরিবর্তিত হবে।


3

পাইথ - 58 57 বাইট, সম্ভবত 47

Ks(b\+*\-T\+*+++b\|*dT\|4)J<.SxdmdK+3O8+*s.e?/Jk\obK5<K13

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

পুরানো সমাধানের ব্যাখ্যা (আমি সময় পেলে আপডেট করব):

J+++b\+*\-T\+K+J*+++b\|*dT\|4=Y<.SxdmdK+3O8+*s.e?/Yk\obK5J
J+++b\+*\-T\+                                                Create the +----------+, and store as J
             K+J*+++b\|*dT\|4                                Create a full panel (minus bottom border, and without holes), store as K
                                  xdmdK                      Get indices of spaces
                                .S                           Create random permutation of these indices
                               <       +3O8                  Get first several indices (a random number from 3 to 10)
                                             s.e?/Yk\obK     Replace space with 'o' at these indices
                                           +*           5J   Create 5 copies, and add bottom border

আমি মনে করি প্রযুক্তিগতভাবে নিয়মগুলি মেনে চলার পরে আমি 47 পেতে পারি:

JhO2Ks(b\+*\-T\+*+++b\|.S+*\oJ*d-TJ\|4)+*K5<K13

এখানে, গর্তের সংখ্যা এখনও এলোমেলোভাবে বেছে নেওয়া হয়েছে (সেটটি {4,8 from থেকে) এবং সেই গর্তগুলির কনফিগারেশনটি এলোমেলোভাবে বেছে নেওয়া হয়েছে (কনফিগারেশনের সেট থেকে যেখানে প্রতিটি সারি অভিন্ন)

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


2

গণিত, 201 বাইট

c=Column;s=RandomSample[Tuples[{" ",o," "," "},10],4];t="+----------+";w=c[{t,c[Row/@Table[AppendTo[s[[i]],"|"];PrependTo[s[[i]],"|"],{i,Length@s}]]}];c[Flatten@{"  America!",Table[w,5],t,"   Mexico"}]

এমন ভাষা ব্যবহারের জন্য +1 যা আমি পরীক্ষা করতে পারি না?

@ Satan'sSon তাহলে আরো ম্যাথামেটিকাল প্রোগ্রাম বিনামূল্যে জন্য চালাতে পারেন এখানে উল্ফর্যাম স্যান্ডবক্স করেন। (এটিতে আটকান এবং শিফট-এন্টার টিপুন))
একটি গাছ নয়

এটি যখন মুদ্রণের কথা আসে তখন এই সাইটটি মজার উপায়ে প্রিন্ট করে। আউটপুটটি বিকৃত করা হয়েছে কারণ এটি বিশেষ
চর্যাটার

1

পাওয়ারশেল (255 বাইট)

echo "  America!"
for($l=0;$l-lt4;$l++){$a=," "*12;$a[0]="|";$a[11]="|";$i=get-random -Max 10 -Min 6;$j=get-random -Max 5 -Min 1;$a[$i]=$a[$j]="o";$b+=($a-join"")}
for($k=0;$k-lt5;$k++){echo +----------+($b-join"`n")} 
echo +----------+`n"   Mexico" 

1

পাইথন 2 , 259 224 221 218 বাইট

from random import*
b=[' ']*40
for x in sample(range(40),randint(3,10)):b[x]='o'
a=["+"+"-"*10+"+"]+['|'+''.join(o)+'|'for o in[b[x*10:x*10+10]for x in 0,1,2,3]] 
print'\n'.join(['  America!']+a*5+[a[0]]+['   Mexico'])

এটি repl.it এ চেষ্টা করুন

-35 @ শয়তানসন থেকে কিছু ইঙ্গিত সহ - ধন্যবাদ!

@ ওয়ানড্রক্রিটের জন্য ধন্যবাদ


আপনি কি কেবল tকোনও চলকটিতে সংরক্ষণের চেয়ে আউটপুট আউটপুট দ্বারা বাটগুলি সংরক্ষণ করতে পারেন এবং যদি আপনি America!এবং পরে স্পেসগুলি সরিয়ে ফেলেন Mexico? print" America!" <NEWLINE> d,a,b,c=[" Mexico"],["+"+"-"*10+"+"],[" "]*40,0?
ইয়ার 17'15 এ 15 এ 12 এয়ারড coinheringaahing

ধন্যবাদ @ শয়তানের সন। এটি একটি "মধ্যাহ্নভোজ বিশেষ" ছিল এবং আমি সময় পেলে সম্ভবত এটি আরও কিছুটা বন্ধ করে দিতে পারি। ইঙ্গিতগুলির জন্য আবার ধন্যবাদ।
এলপেড্রো

আপনি আপনার আমদানিটি পরিবর্তন করে from random import*এবং r.ফাংশনগুলি থেকে অপসারণ করে কয়েকটি বাইট সংরক্ষণ করতে পারেন
ওয়ানড্রক্রিট

ধন্যবাদ @ ওয়ানড্রক্রিট নিশ্চিত যে আমি কীভাবে এটি মিস করেছি :)
সেটিকে

শয়তান সহায়ক ছিল! (সব কিছুর জন্য প্রথম এবং শেষ সময়> :(
কায়ার্ড কোইনারিংহিং

0

পাইথন 2, 197 বাইট

from random import*
n=randint(3,10)
s=list('o'*n+' '*(40-n))
shuffle(s)
t=10
S='+'+'-'*t+'+'
print'\n'.join(['  America!']+([S]+['|'+''.join(s[x:x+t])+'|'for x in range(0,40,t)])*5+[S,'   Mexico'])
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.