উদাহরণস্বরূপ সংগীত বীট


24

আপনি জানেন — এগুলি দেখতে দেখতে:

সূত্র

লক্ষ্যটি হ'ল নিম্নলিখিতটির মতো একটি সঙ্গীতকে মারার চিত্র অঙ্কন করা:

=     =      =
=  =  =      =          =
== = ==   =  ==     = ====
== ====  == ===   = = =======
======== == ====  = ========= =
=================================

বিধিগুলি হ'ল:

  • চিত্রের প্রস্থটি 33 টি প্রতীক, তবে আপনার যদি প্রয়োজন হয় - এই প্রস্থের বেশি হওয়া কোনও পিছনের স্থান অনুমোদিত।
  • প্রতিটি কলাম সমান চিহ্ন ( =) দিয়ে তৈরি ।
  • প্রতিটি কলামের একটি এলোমেলো উচ্চতা থাকে (পরবর্তী কলামের উচ্চতাটি আগের কলামের উচ্চতার কোনও উপায়ে নির্ভর করে না), এটি 1 থেকে 6 এর মধ্যে পৃথক It's এটিও ঠিক আছে যদি কোনও কঠোর কোনও ইনপুট পাওয়া কমপক্ষে সম্ভব হয় তবে এটিও ঠিক আছে গণিতের সম্ভাবনা (যেমন কিছু ইনপুট অন্যদের তুলনায় খুব কম দেখা যায়)।
  • একটি কলাম নীচের উপরে ভাসতে পারে না এবং এর মধ্যে ফাঁকও থাকতে পারে।
  • যেহেতু প্রতিটি কলামে সর্বনিম্ন উচ্চতা 1 থাকে তাই শেষ সারিতে কোনও ফাঁক থাকতে পারে না — এটি সর্বদা 33 টি সমান চিহ্ন নিয়ে গঠিত।
  • যেহেতু 6 এর উচ্চতা সহ কোনও কলাম থাকা সম্ভব নয় (এটি সর্বোপরি এলোমেলো): এক্ষেত্রে আপনার স্পেস দিয়ে তৈরি শীর্ষ লাইন থাকা দরকার না। এই প্রকৃতির যে কোনও প্রান্তের ক্ষেত্রে প্রযোজ্য: হঠাৎ যদি আপনার কোড 1 এর চেয়ে বেশি উচ্চতা সহ কোনও কলাম সরবরাহ না করে, আপনার নীচের লাইনের উপরে ফাঁকা ফাঁকা অতিরিক্ত লাইন তৈরি করার দরকার নেই।
  • আপনি কোনও ইনপুট নেন না

@ লিন ওহ, মূলত এটি নির্দিষ্ট করেছে তবে আমি দুর্ঘটনাক্রমে পোস্ট থেকে সরিয়েছি।
নিকেল 18

11
(নিতপিকিং) এটি কোনও তাত্ক্ষণিকের চেয়ে বরং কোনও তাত্ক্ষণিকের বর্ণালী যেমন আমার কাছে লাগে
লুইস মেন্ডো

2
কলামগুলি ফাঁক দিয়ে আলাদা করার অনুমতি দেওয়া হচ্ছে? (অর্থাত্ নীচের সারিটি হবে = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =)
LegionMammal978

2
আউটপুটটির উপরে অতিরিক্ত লাইন রাখা কি ঠিক আছে?
জন ডিভোরাক

1
"পরবর্তী কলামের উচ্চতা কোনওভাবেই পূর্ববর্তী কলামটির উচ্চতার উপর নির্ভর করে না" - বেশিরভাগ ভাষার অন্তর্নির্মিত এলোমেলো সংখ্যার জেনারেটর সিড হয়। এই কারণে Math.random()লিনিয়ার কংগ্রেসিভ জেনারেটরের প্যারামিটারগুলি জানা থাকলে এর মতো কোনও ফাংশন তার পূর্ববর্তী কল থেকে সরাসরি গণনাযোগ্য, যার অর্থ এই মানদণ্ডটি মেটানোর জন্য আপনাকে বেশিরভাগ বিল্ট-ইন এলোমেলো কার্যকারিতা সংশোধন করতে হবে। আমি পরামর্শ দিচ্ছি যে এটি আরও ভাল শব্দযুক্ত।
প্যাট্রিক রবার্টস

উত্তর:


12

পাইথ , 13 বাইট

আর আমি জেলিকে ছাড়িয়ে গেলাম

j_.tm*hO6\=33

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

j_.tm*hO6\=33
    m      33  for 33 times:
       O6          yield a random number in [0,1,2,3,4,5].
      h            add one.
     *   \=        repeat "=" that number of times.
  .t           transpose, filling with whitespace
 _             reverse
j              join by newlines.

কেন এই কাজ করে না এখানে ?
উন্মাদ

@ ইনসান পাইথ টিআইও-তে বেশ পুরানো।
ডেনিস

@ ডেনিস তবে আমি টিআইও পছন্দ করি: '(
উন্মাদ

13

ডায়ালগ এপিএল , 14 বাইট

⊖⍉↑'='⍴¨⍨?33⍴6

ব্যাখ্যা

33⍴6 33 টি পুনরাবৃত্তি 6

?33 6s এর প্রত্যেকটির জন্য পরিসীমা এলোমেলো পূর্ণসংখ্যা [1, n ]

'='⍴¨⍨ সমতা প্রতীক সেই সংখ্যার প্রত্যেকটির পুনরাবৃত্তি করে

তালিকাগুলির তালিকাটিকে সারি সারণিতে রূপান্তর করুন

সারিগুলিকে কলামগুলিতে, কলামগুলিকে সারিগুলিতে স্থানান্তর করুন

উল্টে উল্টানো

উদাহরণ রান

ইনপুটটি ছয়টি স্থান ফাঁকা হয়:

      ⊖⍉↑'='⍴¨⍨?33⍴6
=          ==        =      ==   
= =    =   ==      ====     ==   
= = = ===  ==  === ==== =  ===  =
= = ===== ==== === ==== = ====  =
=== ============== ==== ====== ==
=================================
      ⊖⍉↑'='⍴¨⍨?33⍴6
         =  =  =    =    =       
  =      =  =  ==  == == =  =    
 === == ==  =  === =======  =    
==== == ==  ====== ==========   =
==== ============= ========== = =
=================================
      ⊖⍉↑'='⍴¨⍨?33⍴6
             =    =   =  =       
         =   =    =   = == =     
=      = =   =    ==  = ==== === 
= = =  = =   =    ==  = ==== ====
=====  = == ==  ============ ====
=================================


9

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

(a=Array(33).fill``.map(_=>[,,,,,,].fill` `.fill('=',Math.random()*6)))[0].map((x,i)=>a.map(x=>x[i]).join``).join`
`

স্নিপেট পূর্বরূপ

এটি নীচে অ্যানিমেটেড স্নিপেটে দেখুন:

F = () => (a=Array(33).fill``.map(_=>[,,,,,,].fill` `.fill('=',Math.random()*6)))[0].map((x,i)=>a.map(x=>x[i]).join``).join`
`

var interval;
G = () => output.innerHTML = F().split('\n').map((r, i) => `<span id="row-${6-i}">${r}</span>`).join('\n');
A = () => {
  clearInterval(interval);
  if (auto.checked) {
    speed.disabled = false;
    interval = setInterval(G, speed.value);
  } else {
    speed.disabled = true;
  }
}
S = () => {
  if (stylized.checked) {
    output.classList.add('stylized');
  } else {
    output.classList.remove('stylized');
  }
}

generate.onclick = G;
auto.onchange = speed.onchange = A;
stylized.onchange = S;

G();
A();
S();
#output {
  background: #000;
  color: #9fff8a;
  overflow: hidden;
  padding: 1em;
  line-height: 1;
}

#output.stylized {
  line-height: 0.25;
  font-size: 2em;
  margin: 0.5em 0 0 0;
  padding: 0.5em;
}

.stylized #row-1 { color: #9fff8a; }
.stylized #row-2 { color: #c5ff8a; }
.stylized #row-3 { color: #e0ff8a; }
.stylized #row-4 { color: #ffe88a; }
.stylized #row-5 { color: #ffc28a; }
.stylized #row-6 { color: #ff8a8a; }
<button id="generate">Generate</button>
<label>Auto: <input id="auto" type="checkbox" checked/></label>
<label>Speed: <select id="speed">
  <option value="25">25</option>
  <option value="50">50</option>
  <option value="100" selected>100</option>
  <option value="200">200</option>
  <option value="400">400</option>
  <option value="600">600</option>
  <option value="800">800</option>
  <option value="1000">1000</option>
</select></label>
<label>Stylized: <input id="stylized" type="checkbox" checked/></label>
<pre id="output"></pre>


1
বাহ, এটা সত্যিই দুর্দান্ত!
নিকেল

8

সি, 87 বাইট

f(x,y){for(y=6;y--;){srand(time(0));for(x=33;x--;)putchar("= "[rand()%6<y]);puts("");}}

যেমন কল f();। এই উত্তরটি time(0)একই ফলাফল (সেকেন্ডে) ফেরত পাঠানোর জন্য টানা ছয়টি কল করার উপর নির্ভর করে । এটি কার্যত সর্বদা সত্য, তবে সম্ভবত উল্লেখযোগ্য।


আপনি তাদের হিসাবে ঘোষণা xএবং yএড়াতে int। কোনও ইনপুট না থাকায় এটি কি অনুমোদিত? হ্যাঁ, এটি একটি দুর্দান্ত ধারণা!
অ্যালোইসডজি বলেছেন মোনিকা

2
শুধু আপনার কোড চেষ্টা করে। আপনি এটি ভাল সঙ্গে চালাতে পারেন f();! আমি জানতাম না যে সি এটি করতে পারে।
অ্যালোইসডজি বলেছেন মনিকা পুনরায় স্থাপন

আমি সত্যিই আপনার কোড পছন্দ। আমি 117 বাইটের ফলাফলের জন্য এটি সি # তে পোর্ট করেছি it আমি এটি পোস্ট করার বিষয়ে নিশ্চিত নই কারণ এটি আক্ষরিকভাবে আপনার কোড।
অ্যালোসডজি বলেছেন মনিকা পুনরায় ইনস্টল করুন

1
যতক্ষণ আপনি আমাকে জমা দেন ততক্ষণ এটিকে পোস্ট করতে নির্দ্বিধায় নাও। :)
লিন

8

চেডার, 68 65 বাইট (প্রতিদ্বন্দ্বী)

->(1:33).map(->IO.sprintf("%6s","="*Math.rand(1,7))).turn().vfuse

ও_ও ছদ্দার আসলে ভাল করছে! ব্যবহার sprintfএবং turnবেশিরভাগ কাজ করতে। vfuseউল্লম্ব-ফিউজ মানে এটি অ্যারেতে যোগ হয় তবে উল্লম্বভাবে। এটি খুব গোলাপী তবে দ্রুতও। সংস্করণটি প্রিরিলিজ v 1.0.0-beta.10 , যা চ্যালেঞ্জের পরে-তারিখের।

ব্যাখ্যা

->           // Anonymous function
  (1:33)     // Range 1-33 inclusive
  .map(->    // Loop through the above range
    IO.sprintf("%6s",       // `sprintf` from C/C++
      "="*Math.rand(1,7)    // Repeat `=` a random time from [1,7)
    )
  ).turn().vfuse     // Turn it 90deg, and fuse it vertically

কিছু উদাহরণ চলে:

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


5

05 এ বি 1 ই , 22 বাইট

কোনও স্বয়ংক্রিয় যোগদান নয়, ট্রান্সপোস করার সময় কোনও স্বয়ংক্রিয় ফিলিং নেই, ওসাবি এইটির জন্য ডুমড হয়। কোড:

33F6ð×6L.R'=×ðñ})ø€J¶ý

সিপি -1222 এনকোডিং ব্যবহার করে । এটি অনলাইন চেষ্টা করুন!


5

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

from random import*
x=map(randrange,[6]*33)
for y in range(6):print''.join('= '[z>y]for z in x)

4

পাইথন 3, 115 বাইট

পাইথন এমনকি কখনও সুযোগ ছিল না ...

from random import*
for k in zip(*[[' ']*(6-len(j))+j for j in[randint(1,6)*['=']for i in[0]*33]]):print(*k,sep='')

কিভাবে এটা কাজ করে

from random import*    Import everything in the random module
randint(1,6)*['=']     Create a list containing a random number in [1,6] of '='...
...for i in[0]*33      ...33 times...
[...]                  ...and store in a list X
for j in...            For all lists j in X...
[' ']*(6-len(j))+j     ...create a list containing j padded with the correct number of
                       spaces to give a height of 6...
[...]                  ...and store in a list Y

Y now contains a list for each output line, but transposed.

for k in zip(*...):...  For all lists k in the transpose of Y...
print(*k,sep='')        Print all elements in k with no separating space

আইডিয়নে চেষ্টা করে দেখুন



3

স্পেকবাবাস - 76 বাইট

1 FOR x=1 TO 33: r=1+INT(RND*6): FOR y=7-r TO 6: ?AT y,x;"=": NEXT y: NEXT x

প্রাসঙ্গিক স্ক্রিন স্থানাঙ্কে একটি সমান চিহ্ন মুদ্রণ করে।

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

রঙিন স্পট এবং একটি GOTOলুপ দিয়ে এটি হয়ে যায়

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



2

সি #, 200 117 বাইট

()=>{var s="";int x,y=6;for(;y-->0;){var r=new Random();for(x=33;x-->0;)s+="= "[r.Next(6)<y?1:0];s+='\n';}return s;};

আমি @ লিন অ্যালগরিদম এ চলেছি এবং 83 বাইট সংরক্ষণ করি!

সি # ল্যাম্বদা ইনপুট ছাড়াই এবং যেখানে আউটপুট একটি স্ট্রিং। এটি অনলাইনে চেষ্টা করুন

কোড:

()=>{
    var s="";int x,y=6;
    for(;y-->0;){
        var r=new Random();
        for(x=33;x-->0;)
            s+="= "[r.Next(6)<y?1:0];
        s+='\n';
    }return s;
};

2

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

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

import System.Random
import Data.List
f r n|r>n=' '|0<1='='
s=do
g<-newStdGen
mapM_ putStrLn$transpose$map(\n->map(f$mod n 6)[0..5])(take 33(randoms g)::[Int])

ব্যবহার:

s

ব্যাখ্যা:

import System.Random

ব্যবহার করতে সক্ষম হতে newStdGenএবংrandoms

import Data.List

ব্যবহার করতে সক্ষম হতে transpose

f r n|r>n=' '|0<1='='

প্রথম ফাংশনটি যদি দ্বিতীয়টির চেয়ে বড় হয় এবং =অন্যথায় কোনও স্থানকে মুদ্রণ করে এমন একটি ফাংশন সংজ্ঞায়িত করে । এটি map (f m) [0..5]একটি প্রদত্ত নম্বর mএবং তালিকার সাথে কল করা হয় [0,1,2,3,4,5]। (নিচে দেখ)

s=do
g<-newStdGen

একটি নতুন স্ট্যান্ডার্ড এলোমেলো নম্বর জেনারেটর তৈরি করে

(take 33(randoms g)::[Int])

33 এলোমেলো পূর্ণসংখ্যা লাগে takes

map(\n->map(f$mod n 6)[0..5])

হিসাব করে m = n % 6এবং মানচিত্র (f m)লিস্টে [0,1,2,3,4,5], যার মধ্যে একটি ফলাফল "======", " =====", ..., " ="। এই রেখাগুলি একটি টেবিলের ফলে 33 এলোমেলো পূর্ণসংখ্যার তালিকায় ম্যাপ করা হয়। (হাস্কেলের একটি সারণী তালিকার একটি তালিকা)

transpose$

টেবিলের কলাম এবং সারিগুলি পরিবর্তন করে

mapM_ putStrLn$

টেবিলের প্রতিটি লাইন মুদ্রণ করে



1

গণিত, 78 বাইট

StringRiffle[(PadLeft[Array["="&,#+1],6," "]&/@5~RandomInteger~33),"
",""]&

বেনামে ফাংশন। কোনও ইনপুট নেয় না এবং আউটপুট হিসাবে একটি স্ট্রিং প্রদান করে। ইউনিকোড অক্ষরটি ইউ + এফ 3 সি 7 প্রতিনিধিত্ব করে \[Transpose]


1

আর, 102 বাইট

m=rep(" ",33);for(i in 1:6){n=ifelse(m=="=",m,sample(c(" ","="),33,T,c(6-i,i)));m=n;cat(n,"\n",sep="")}

ব্যাখ্যা

m=rep(" ",33) আসন্ন লুপের জন্য একটি খালি ভেক্টর আরম্ভ করুন

n=ifelse(m=="=",m,sample(c(" ","="),33,T,c(6-i,i)))=উপরের সারিতে যদি একটি থাকে , তবে নিশ্চিত হয়ে নিন যে নীচের জায়গাতেও একটি রয়েছে =; অন্যথায় এলোমেলোভাবে বাছাই। এলোমেলো বাছাইগুলি নিশ্চিত হয়ে ওজন করা হয় যে ক) নীচের সারিটি সমস্ত =এবং খ) আপনি পুরো জিনিসটির জন্য একটি ঝরঝরে আকার পেয়েছেন।

cat(n,"\n",sep="") শেষের দিকে একটি নতুন লাইন দিয়ে কনসোলে সেই সারিটি আউটপুট দেয় এবং উপাদানগুলির মধ্যে কোনও ফাঁক থাকে না!


1

পিএইচপি, 95 92 89 বাইট

<?php for(;++$i<34;)for($j=6,$e=' ';$j--;)$a[$j].=$e=rand(0,$j)?$e:'=';echo join("
",$a);

আসলে এটির সাথে খুব খুশি। কিছুক্ষণের জন্য আমার কাছে একটি সংস্করণ ছিল যা তাত্ত্বিকভাবে কোনও ইনপুট তৈরি করতে পারে তবে বাস্তবে কেবলমাত্র শক্ত ব্লক তৈরি করতে পারে তবে এটি উভয়ই খাটো এবং সমানভাবে বিতরণযোগ্য!
আপনি যখনই এটি চালনা করেন তখন 7 টি অপরিজ্ঞাত কিছু বিজ্ঞপ্তি উত্পন্ন করে তবে এটি ঠিক আছে।

সম্পাদনা: ভাল আমি সবেমাত্র শিখেছি যে যোগদানটি ইমপ্লোডের একটি উপনাম, সুতরাং এটি দুর্দান্ত।


1

জে, 18 বাইট

|.|:'='#~"0>:?33#6

খুব সাধারণ জিনিস। মাইল থেকে একটি বাগফিক্স সঙ্গে!


এটি [0, 6] পরিসীমাটিতে এলোমেলো পূর্ণসংখ্যা বেছে নিয়েছে যেখানে ওপি [1, 6] চেয়েছিল। >:?33#6[1, 6] পরিসীমাটিতে এলোমেলো পূর্ণসংখ্যা পেতে আপনি এটি করতে পারেন । এছাড়াও, একটি র‌্যাঙ্ক 0 অনুলিপি ব্যবহার করে সংক্ষিপ্ত হবে '='#~"0। এর ফলস্বরূপ |.|:'='#~"0>:?33#6কিন্তু দুর্ভাগ্যক্রমে, 2 বাইট সঞ্চয় বৃদ্ধি বর্ধনকারী অপারেটরের অন্তর্ভুক্তি দ্বারা হ্রাস পেয়েছে ।
মাইল

@ মাইলস ওহ, ধন্যবাদ! খুব ঠান্ডা.
কনর ও'ব্রায়ান

1

পার্ল, 64 বাইট

@f=$_="="x33;s/=/rand>.4?$&:$"/ge,@f=($_.$/,@f)while@f<6;print@f

ব্যবহার

perl -e '@f=$_="="x33;s/=/rand>.3?$&:$"/ge,@f=($_.$/,@f)while@f<6;print@f'
  = =           =  ==      =    =
  = =         ===  ==      =    =
= = =         ===  ==      =    =
= = =   = =   ===  ===   = =    =
= = == =====  === ====   ===  = =
=================================

পার্ল, 68 বাইট

বিকল্প সংস্করণ যা এএনএসআই এস্কেপ কোডের উপর নির্ভর করে কার্সারটি চারপাশে সরিয়ে নিয়ে যায়, প্রথমে 6 টি লাইন নিচে ফেলে, তারপরে মূল লাইনটি (সমস্ত =গুলি) লিখতে থাকে , একটি লাইন সরে যায় এবং প্রতিস্থাপিত স্ট্রিং ( s/=/rand>.4?$&:$"/ge) বার বার মুদ্রণ করে যতক্ষণ না এটি কোনও বিকল্প না করে। এটি ছয়টি লাইনের বেশি লেখার অবসান করতে পারে তবে শেষ পর্যন্ত এটি খালি লাইনের সাথে প্রতিস্থাপন করা হয়।

দ্রষ্টব্য: \x1bগুলি আসলে ASCII Escচরিত্র।

print"\x1bc\x1b[6B",$_="="x33;print"\x1b[1A\x1b[33D$_"while s/=/rand>.4?$&:$"/ge

1

রুবি, 102 99 84 83 বাইট

s='
'*203;33.times{|j|a=(' '*rand(6)).ljust 6,'=';6.times{|i|s[i*34+j]=a[i]}};$><<s

নতুন এবং উল্লেখযোগ্যভাবে খাটো পদ্ধতির, যেখানে আমি নতুন লাইনের পূর্ণ স্ট্রিং দিয়ে শুরু করি।

পুরানো সংস্করণ ...

s='';204.times do|i|s+=->i{i%34==0?"\n":i>170?'=':s[i-34]=='='?'=':rand(2)==1?'=':' '}[i]end;puts s

... শীর্ষস্থানীয় নতুন লাইনের সাথে আউটপুট দিয়েছে। @ বার্বারোসা এর মত একই পদ্ধতির ব্যবহার করে রুবিতে আমার প্রথম জমা, তবে একক লুপে।

এই প্রোগ্রামটিতে কাজ করার সময় আমি রুবিতে যা পছন্দ করেছি:

  • .times লুপ
  • rand() যা বেশ সংক্ষিপ্ত
  • প্রথম বন্ধনী ছাড়াই ত্রিনিরি অপারেটরদের স্ট্যাকিং

আমি পছন্দ করি না (মূলত গল্ফিংয়ের ক্ষেত্রে):

  • $গ্লোবাল ভেরিয়েবলের জন্য বাধ্যতামূলক.timesলুপ এতো বাধ্যতামূলক নয়
  • doএবং endকীওয়ার্ড যা একক-লাইন ব্লকের সাথে প্রতিস্থাপন করা যেতে পারে
  • 0 মিথ্যা নয়

0

জাভাস্ক্রিপ্ট, 179 বাইট

এখনও এই কিছুটা গল্ফিং উপর কাজ করে। আমি এটা পছন্দ করি যেহেতু এটি সোজা।

n=>{a=Array(33).fill(0).map(n=>Math.floor(Math.random()*6)+1);r=Array(6).fill("");r.map((e,m)=>{a.map(n=>{if (n<=m+1){r[m]+="="}else r[m]+=" "})});return r.join('\n');}

ব্যবহার:

>q=n=>{a=Array(33).fill(0).map(n=>{return Math.floor(Math.random() * 6)+1});
r=Array(6).fill("");r.map((e,m)=>{a.map(n=>{if (n<=m+1){r[m]+="="}else r[m]+=" "})});return r.join('\n');}
>q();
           = =  =   =    = =     
=   =    = = =  =  == =  = =  =  
= = =  = === ====  ====  = = === 
= = =  = === ==========  ======= 
= === ===========================
=================================

আপনার .map(n=>{return Math.floor(Math.random() * 6)+1})সাথে প্রতিস্থাপন করতে সক্ষম হওয়া উচিত .map(n=>Math.floor(Math.random()*6)+1)
লাম্বদা

if (n<=m+1){r[m]+="="}elseহতে পারেif(n<=m+1)r[m]+="=" else
অ্যালোআইএসডিজি মনিকা

আমাকে নিজের পিআরএনজি করতে হয়েছিল, এবং আমার ফোরাম প্রোগ্রামটি বেশি দীর্ঘ নয় isn't : পি
mbomb007

0

চতুর্থ, 190 বাইট

আমাকে নিজের পিআরএনজি তৈরি করতে হয়েছিল , এখান থেকে নেওয়া একটি জোর-শিফট । শব্দটি fহ'ল শব্দটি আপনি আউটপুটটি দেখতে একাধিকবার কল করবেন।

variable S utime S !
: L lshift xor ;
: R S @ dup 13 L dup 17 rshift xor dup 5 L dup S ! 6 mod ;
: f
33 0 DO R LOOP
1 -5 DO
33 0 DO
I PICK J + 0< 1+ IF ." =" ELSE SPACE THEN
LOOP CR
LOOP
; f

এটি অনলাইনে চেষ্টা করে দেখুন - নোট করুন যে কোডটি কোন সার্ভার (বা কিছু) কোড চালাচ্ছে তার ভিত্তিতে সিস্টেমের সময় দুটি মানগুলির মধ্যে একটি। তা ছাড়া তারা কোনও কারণে অনলাইন আইডিইতে পরিবর্তন করে না। সুতরাং আপনি কেবল দুটি সম্ভাব্য আউটপুট দেখতে পাবেন। আপনিutimeপূর্ণসংখ্যায়পরিবর্তন করে ম্যানুয়ালি বীজ সেট করতে পারেন।

Ungolfed

variable seed                   \ seed with time
utime seed !

: RNG                           \ xor-shift PRNG
seed @
dup 13 lshift xor
dup 17 rshift xor
dup 5 lshift xor
dup seed !
6 mod                           \ between 0 and 6, exclusive
;

: f 33 0 DO RNG LOOP            \ push 33 randoms
    1 -5 DO                     \ for (J = -6; J <  0; J++)
        33 0 DO                 \ for (I =  0; I < 33; I++)
            I PICK J + 0< 1+ IF \ if  (stack[I] < J)
                61 EMIT         \ print "="
            ELSE
                32 EMIT         \ print " "
            THEN
        LOOP
        CR                      \ print "\n"
    LOOP
; f

নিখরচায় অনলাইন


0

জাভাস্ক্রিপ্ট, 165 বাইট

// function that fills a column with a specified number of = signs
m=l=>Array(6).fill``.map((e,i)=>i<l?"=":" ");
// fill an array of 33 length with columns of random number of = signs
a=Array(33).fill``.map(e=>m(Math.ceil(Math.random()*6)));
// transponse the rows and columns and print to console
a[0].map((c,i)=>a.map(r=>r[5-i])).map(r=>console.log(r.join``))

নতুন লাইনগুলি অপ্রয়োজনীয় তবে এগুলি কী চলছে তা দেখতে এটিকে সহজ করে তোলে। সর্বাধিক অনুকূল সমাধান নয়, তবে এটি কমপক্ষে আমার কাছে বোধগম্য।

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