বিশৃঙ্খলা একটি ASCII মই


43

আপনি কিছুই জানেন না আমি " কেওস ইজ একটি মই " এর জন্য যে জিনিসগুলি করি তা টেলিভিশন সিরিজ গেম অফ থ্রোনসের একটি স্মরণীয় লাইন।

এই চ্যালেঞ্জের উদ্দেশ্য হ'ল এএসসিআইআই আর্টে বিশৃঙ্খলা থেকে মই তৈরি করা।

চ্যালেঞ্জ

ইনপুট

  • মই প্রস্থ, W >= 3(পূর্ণসংখ্যা)
  • পদক্ষেপের উচ্চতা, H >= 2(পূর্ণসংখ্যা)
  • রানসের সংখ্যা, N >= 2(পূর্ণসংখ্যা)।

আউটপুট

অনুভূমিক র‌্যাংস এবং উল্লম্ব রেলগুলি সহ একটি মই , সমস্ত 1 টি অক্ষর প্রস্থ। মই প্রস্থ ( W) দুটি রেল অন্তর্ভুক্ত করে এবং পদক্ষেপের উচ্চতা ( H) এর সাথে সম্পর্কিত রঞ্জ অন্তর্ভুক্ত করে।

উপরের এবং নিম্নতম সহ সমস্ত রানের H-1সরাসরি ওপরে এবং নীচে দৈর্ঘ্যের উল্লম্ব রেলের একটি অংশ থাকবে । উদাহরণটি আরও পরিষ্কার করে দেবে।

মই দিয়ে তৈরি করা হবে মুদ্রণযোগ্য, অ-হোয়াইটস্পেস ASCII অক্ষর , যে, থেকে সমেত পরিসীমা !(কোড বিন্দু 33পর্যন্ত) ~(কোড বিন্দু 126) প্রতিযোগী প্রকৃত অক্ষর নির্বাচন করা হবে এলোমেলোভাবে । ইনপুটগুলি দেওয়া, অক্ষরের প্রতিটি এলোমেলো পছন্দগুলির অবশ্যই ননজারো সম্ভাবনা থাকতে হবে। তা ছাড়া সম্ভাবনা বিতরণ স্বেচ্ছাসেবী।

অনুভূমিক বা উল্লম্ব, সাদা বা স্থানের শীর্ষস্থানীয় অনুমোদিত বা অনুমোদিত।

উদাহরণ

প্রদত্ত W=5, H=3, N=2, একটি সম্ভাব্য আউটপুট নিম্নরূপ।

x   :
g   h
q$UO{
t   T
6   <
bUZXP
8   T
5   g

নোট করুন যে মোট উচ্চতা H*(N+1)-1, যেমন Nচালা এবং N+1উল্লম্ব বিভাগ রয়েছে।

অ্যাডিশনাল বিধি

  • ইনপুট অর্থ এবং ফর্ম্যাটটি যথারীতি নমনীয় । উদাহরণস্বরূপ, আপনি যে কোনও ক্রমে তিনটি সংখ্যা ইনপুট করতে পারেন, বা তাদের সমন্বিত একটি অ্যারে।

  • আউটপুট STDOUT এর মাধ্যমে হতে পারে বা কোনও ফাংশন দ্বারা ফেরত যুক্তি। এই ক্ষেত্রে এটি নিউলাইনগুলি, একটি 2D অক্ষরের অ্যারে বা স্ট্রিংগুলির একটি অ্যারে সহ স্ট্রিং হতে পারে।

  • একটি প্রোগ্রাম বা একটি ফাংশন সরবরাহ করা যেতে পারে।

  • স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ।

  • বাইটস মধ্যে সংক্ষিপ্ত কোড।

পরীক্ষার মামলা

প্রতিটি জন্য W, H, Nএকটি সম্ভাব্য আউটপুট প্রদর্শিত হয়।

W=5, H=3, N=2:

\   ~
:   K
ke:[E
5   u
0   _
8Fr.D
#   r
7   X


W=3, H=2, N=2:

$ X
Mb)
0 ]
(T}
j 9


W=12, H=4, N=5:

d          Y
P          `
5          3
p$t$Ow7~kcNX
D          x
`          O
*          H
LB|QX1'.[:[F
p          p
x          (
2          ^
ic%KL^z:KI"^
C          p
(          7
7          h
TSj^E!tI&TN8
|          [
<          >
=          Q
ffl`^,tBHk?~
O          +
p          e
n          j


W=20, H=5, N=3:

G                  %
o                  y
%                  3
-                  7
U'F?Vml&rVch7{).fLDF
o                  }
U                  I
h                  y
a                  g
;W.58bl'.iHm\8v?bIn&
,                  U
N                  S
4                  c
5                  r
F3(R|<BP}C'$=}xK$F]^
'                  h
h                  u
x                  $
6                  5    

আপনি কি আসকি অক্ষরগুলির জন্য (সংখ্যাসূচক) পরিসরটি যুক্ত করতে পারেন?
রড

@ রড ভাল ধারণা। সম্পন্ন
লুইস মেন্ডো

1
এলোমেলো মানের মানের কী ধরনের নিম্ন সীমা আছে? আমি ধরেই নিলাম একটি এলোমেলো পয়েন্ট থেকে শুরু করে এবং বাড়ানো মডুলো (126-33) সংলগ্ন মানগুলির মধ্যে সুস্পষ্ট সম্পর্কের কারণে যোগ্যতা অর্জন করবে না। অথবা এটি প্রতিটি সম্ভাব্য ক্রম উত্পাদন করতে সক্ষম হতে হবে? (সুতরাং একটি 8-বিট লিনিয়ার কংগ্রেসনাল জেনারেটর কাজ করবে না, কারণ একটি চরিত্রটি স্বতন্ত্রভাবে পরবর্তী চরিত্রটি নির্ধারণ করে?)
পিটার

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

1
@ পিটারকর্ডস হ্যাঁ, আমি তাত্ত্বিকভাবে বোঝাতে চাইছি। আরএনজি শক্তি সম্পর্কে চিন্তা করবেন না; আপনি ধরে নিতে পারেন আরএনজি আদর্শ। সে সম্পর্কে কিছু মেটা sensকমত্য রয়েছে। আমি ভেবেছিলাম ছিল আরো কিছু নির্দিষ্ট, কিন্তু আমি খুঁজে পাইনি ছিল এই এবং এই
লুইস Mendo

উত্তর:


6

জেলি ,  24 23  22 বাইট

«þỊoU$ẋ⁵‘¤Ḋ×94X€€+32ỌY

একটি পূর্ণ প্রোগ্রাম তিন আর্গুমেন্ট গ্রহণ W, H, Nএবং ফলাফল মুদ্রণ।

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

কিভাবে?

একটি একক রঙ্গ এবং এর নীচে উল্লম্ব বিভাগগুলির একটি 2 ডি অ্যারের মুখোশ তৈরি করে, N+1বারবার পুনরাবৃত্তি করে এবং শীর্ষস্থানটি সরিয়ে ফেলুন এবং পরে মাস্কের মানের উপর নির্ভর করে এলোমেলো অক্ষর বা ফাঁকা স্থান রাখে।

«þỊoU$ẋ⁵‘¤Ḋ×94X€€+32ỌY - Main link: W, H (N is third input / 5th command line argument)
 þ                     - outer product (build a table using):
«                      -  minimum
                       -  ...note: þ implicitly builds ranges of W and H prior
  Ị                    - insignificant? (abs(z)<=1) - yields a W by H 2-d array,
                       -   all zeros except the left and top edges which are 1s
     $                 - last two links as a monad:
    U                  -   upend (reverse each row)
   o                   -   or (vectorises) - giving us our |‾| shape of 1s
         ¤             - nilad followed by link(s) as a nilad:
       ⁵               -   5th command line argument, N
        ‘              -   increment -> N+1
      ẋ                - repeat list - giving us our ladder-mask plus a top rung)
          Ḋ            - dequeue - remove the top rung
            94         - literal ninety-four
           ×           - multiply (vectorises) - replace the 1s with 94s
              X€€      - random for €ach for €ach - 0 -> 0; 94 -> random integer in [1,94]
                  32   - literal thirty-two
                 +     - add (vectorises) - 0 -> 32; random integers now from [33,126]
                    Ọ  - character from ordinal (vectorises)
                     Y - join with newlines
                       - implicit print

34

অপারেশন ফ্ল্যাশপয়েন্ট স্ক্রিপ্টিং ভাষা, 643 624 বাইট

f={l=["""","!","#","$","%","&","'","(",")","*","+",",","-",".","/","0","1","2","3","4","5","6","7","8","9",":",";","<","=",">","?","@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","[","\","]","^","_","`","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","{","|","}","~"];t=_this;w=t select 0;r={l select random 92};v="";s=v;i=2;while{i<w}do{i=i+1;v=v+" "};p={i=1;while{i<t select 1}do{i=i+1;s=s+call r+v+call r+"\n"}};k=0;call p;while{k<t select 2}do{k=k+1;i=0;while{i<w}do{i=i+1;s=s+call r};s=s+"\n";call p};s}

হাস্যকরভাবে দীর্ঘ কারণ চরিত্র কোডগুলি থেকে অক্ষরগুলি তৈরি করার কোনও উপায় নেই।

সাথে কল করুন:

hint ([5, 3, 2] call f)

আউটপুট:

মই অতিরিক্ত বিশৃঙ্খল কারণ ফন্টটি মনপাস করা হয়নি।

Unrolled:

f =
{
    l = ["""","!","#","$","%","&","'","(",")","*","+",",","-",".","/","0","1","2","3","4","5","6","7","8","9",":",";","<","=",">","?","@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","[","\","]","^","_","`","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","{","|","}","~"];

    t = _this;
    w = t select 0;

    r =
    {
        l select random 92
    };

    v = "";
    s = v;

    i = 2;
    while {i < w} do 
    {
        i = i + 1;
        v = v + " "
    };

    p =
    {
        i = 1;
        while {i < t select 1} do 
        {
            i = i + 1;
            s = s + call r + v + call r + "\n"
        }
    };

    k = 0;
    call p;
    while {k < t select 2} do 
    {
        k = k + 1;

        i = 0;
        while {i < w} do
        {
            i = i + 1;
            s = s + call r
        };
        s = s + "\n";

        call p
    };

    s
}

এটি "\n"কাজ হিসাবে মনে হচ্ছে , "\xa3"কিছু পাওয়ার মতো £কাজ করে না? আপনি যদি ইউনিকোড পলায়ন ব্যবহার করতে পারেন তবে আপনি নিজের সেই অ্যারেটি ছাঁটাইতে সক্ষম হতে পারেন।
স্যাচল্লাকা

আমি কীভাবে এটি চালাতে পারি? : ডি
গিকি আমি

22
এটি দেখে মনে হচ্ছে কোনও স্ক্রিপ্ট লেখা হয়েছিল এবং স্পেস এবং নিউলাইনগুলি সরানো হয়েছিল। কোনও মইয়ের চিত্রের কারণে এটি কি কেবল উচ্ছ্বাস পাচ্ছে বা আমি কিছু চতুর গল্ফ মিস করেছি?
জোনাথন অ্যালান

@ স্টেডিবক্স আপনি কি এখন প্রাসঙ্গিক স্ক্রিনশটগুলি ব্যবহার করছেন আমি যে এক প্রশ্নের এক্সডি-তে নন-গ্রাসল্যান্ডের স্ক্রিনশটটি অনুরোধ করার পরে?
যাদু অক্টোপাস উরন

@ তছল্লাকা \nএকমাত্র পালানো যা স্বীকৃত। (এবং ""একটি উপস্থাপনের ভিতরে কোটসের ভিতরে ")
স্টেডিবক্স

14

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

অর্ডারে নেওয়া ইনপুট N, H, W

>*GNUžQ¦©.RIÍFð®.R«X²Öè}®.RJ,

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

ব্যাখ্যা

>*G                              # for N in [1 ... (N+1)*H)-1] do:
   NU                            # store N in variable X
     žQ                          # push a string of printable ascii
       ¦©                        # remove the first (space) and save a copy in register
         .R                      # pick a random character
           IÍF                   # W-2 times do:
              ð                  # push a space
               ®.R               # push a random ascii character
                  «              # concatenate
                   X²Ö           # push X % H == 0
                      è          # index into the string of <space><random_char> with this
                       }         # end inner loop
                        ®.R      # push a random ascii character
                           J,    # join everything to a string and print

এটি কিছুটা প্রতারণা।
vdegenne

4
@ user544262772 কেন এমন?
জোনাথন অ্যালান

আপনি এই একটু ব্যাখ্যা করতে পারেন?
Mischa

@ মিশাবিহরেন্ড: অবশ্যই, আমি এখন একটি ব্যাখ্যা যুক্ত করেছি।
এমিগিনা

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

13

সি, 95 বাইট

f(w,h,n,i){++w;for(i=0;i++<w*~(h*~n);)putchar(i%w?~-i%w%(w-2)*((i/w+1)%h)?32:33+rand()%94:10);}

8

আর , 138 129 111 98 93 বাইট

-13 বাইট ধন্যবাদ নিল ফুলটজকে!

-1 বাইট ধন্যবাদ রবিন রাইডারকে

function(W,H,N){m=matrix(intToUtf8(32+sample(94,W*(h=H*N+H-1),T),T),h)
m[-H*1:N,3:W-1]=" "
m}

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

বেনামে ফাংশন; ফলাফলকে ম্যাট্রিক্স হিসাবে ফিরিয়ে দেয়।

সেই ওয়ার্ড গ্রিডের প্রশ্নের জন্য ধন্যবাদ , আমি ম্যাট্রিক্স সম্পর্কে স্বাভাবিকের চেয়ে অনেক বেশি ভাবছিলাম। আমি পর্যবেক্ষণ করেছি যে রানগুলি সেই ম্যাট্রিক্স সারিগুলিতে রয়েছে যা ধাপের উচ্চতার একাধিক H(আর 1-ইনডেক্সড) এবং রেলগুলি প্রথম এবং শেষ কলাম 1এবং W। সুতরাং আমি এলোমেলো ASCII অক্ষরগুলির একটি ম্যাট্রিক্স তৈরি করেছি এবং সেই অক্ষরগুলিকে প্রতিস্থাপন করেছি যা শূন্যতার সাথে এই মানদণ্ডের সাথে মেলে না এবং ম্যাট্রিক্সটি ফিরিয়ে আনবে। টিআইও লিঙ্কটি সুন্দরভাবে প্রিন্ট করে।

নিল ফুল্টজ স্পেস অক্ষরগুলির জন্য একটি পৃথক সূচীকরণের পরামর্শ দিয়েছিল [-H*(1:N),3:W-1], যা বহু বর্ণের সারিগুলির ব্যতীত সমস্ত অক্ষরকে প্রতিস্থাপন করে H: -H*(1:N)এবং কিনারায় নয়, 3:W-1<==> 2:(W-1)

আর , 121 বাইট

function(W,H,N)for(i in 1:(H*N+H-1)){for(j in 1:W)cat("if"(!(i%%H&j-1&j-W),sample(intToUtf8(33:126,T),1)," "))
cat("\n")}

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

মূল ম্যাট্রিক্স-ভিত্তিক পদ্ধতির চেয়ে উন্নতি যা দিয়ে শুরু করেছি; এটি একই অ্যালগরিদম তবে forএকটি ম্যাট্রিক্স তৈরি এবং মুদ্রণের চেয়ে লুপগুলি ছোট (তবে আমি এটি প্রিন্ট না করি তবে নয়!)


m[-H*(1:N),3:W-1]=" "কিছুটা খাটো মনে হচ্ছে - আপনি সর্বদা টেস্টিং rowএবং col2-ডি স্লাইস দিয়ে প্রতিস্থাপন করতে পারেন ।
নিল ফুল্টজ

@ নিয়ালফুল্টজ বাহ, এটি বেশ দুর্দান্ত! ধন্যবাদ!
জিউসেপ

-1 বাইট sample(33:126,...)সঙ্গে প্রতিস্থাপন 32+sample(94,...)
রবিন রাইডার


6

কাঠকয়লা , 34 32 বাইট

E…¹×⁺¹NN⪫EIζ⎇∧﹪ιIη﹪λ⁻Iζ¹ §⮌γ‽⁹⁴ω

এটি অনলাইন চেষ্টা করুন! এন, এইচ, ডাব্লু। ভারবোজ অনুমানের ক্রমে ইনপুট নেয় ( Plus(InputNumber(), 1)বর্তমানে টিআইও-তে বিভক্ত)। ব্যাখ্যা:

E…¹×⁺¹NN

পরিসীমা উপর মানচিত্র 1..H*(N+1)। এর অর্থ হ'ল রানগুলি যখন iএকাধিক হয় তখন উপস্থিত হয় H

এর ফলাফলটিতে যোগদান করুন:

EIζ

অন্তর্নিহিত পরিসীমা উপর ম্যাপিং 0..W:

⎇∧﹪ιIη﹪λ⁻Iζ¹ 

যদি কলাম নয় 0বা W-1এবং সারির একটি একাধিক নয় Hতারপর আউটপুট একটি স্থান;

§⮌γ‽⁹⁴

অন্যথায়, পূর্বনির্ধারিত ASCII চরিত্রের পরিবর্তনশীল নিন, এটিকে বিপরীত করুন (স্পেসটি 94 ম স্থানে রাখুন), এবং এখন প্রথম 94 যা থেকে একটি এলোমেলো অক্ষর মুদ্রণ করুন Slice

ω

খালি স্ট্রিং ব্যবহার করে যোগদান করুন। চূড়ান্ত ফলাফল সুস্পষ্টভাবে মুদ্রিত হয়।


নিশ্চিত না যে এটি সহায়ক তবে আপনি মই আঁকতে পারেন এবং তারপরে পিকেল এবং মানচিত্রটি এলোমেলো মুদ্রণযোগ্য মনে করতে পারেন? সম্পাদনা এটি ভাঙ্গা প্রদর্শিত হবে। উফ।
ASCII- কেবল

আমি এটি ঠিক করার চেষ্টা করব (এটি নিশ্চিত যে এটি আগে কাজ করে যাচ্ছিল) তবে আমি কিছুটা ব্যস্ত ছিলাম তাই এটি কিছুটা সময় নিতে পারে
ASCII-only

@ এএসসিআইআই-কেবলমাত্র আমি ধরে নিয়েছি আপনি কী ভাবছেন NθGH↓θ→N↑θ*‖O↓F⁻N¹C⁰θ¿EKA§⮌γ‽⁹⁴«? ঠিক আছে, আমি বাইসাইক্ট করেছিলাম এবং প্রতিশ্রুতিবদ্ধ a0a6316এটি ভেঙে দিয়েছি ।
নিল

@ এএসসিআইআই-প্রকৃতপক্ষে এটি একেবারেই সত্য নয়, Mapযেখানে not is_commandএটি বোঝানো হচ্ছে সেখানে একটি সম্পর্কিত সম্পর্কযুক্ত বাগ ছিল is_command। সুতরাং আপনার লেখার কথা NθGH↓θ→N↑θ*‖O↓F⁻N¹C⁰θUMKA§⮌γ‽⁹⁴ছিল এটি যদি সেই বাগের জন্য না হয়।
নিল

6

সি (জিসিসি) , 141 131 114 109 107 বাইট

এটি কিছুটা নিচে গল্ফ করতে সক্ষম হওয়া উচিত ...

i,j,c;f(w,h,n){for(i=1;i<h*n+h;i+=j==w)printf(i%h?i++,j=0,"%c%*c\n":"%c",++j^w?c^8:10,w-2,c=33+rand()%94);}

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


আমরা i=1কি বিশ্ব ঘোষণায় সম্পাদনা করতে পারি ?
মুকুল কুমার

6

পার্ল 6 , 76 73 বাইট

->\h,\n,\w{map {chrs (roll(w,1..94)Z*1,|($_%%h xx w-2),1)X+32},1..^h*n+h}

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

(এইচ, এন, ডাব্লু) যুক্তি হিসাবে গ্রহণ করে। স্ট্রিংগুলির একটি তালিকা ফেরত দেয়।

ব্যাখ্যা:

-> \h, \n, \w {  # Block taking arguments h, n, w
    map {
        # String from codepoints
        chrs
             # Generate w random numbers between 1 and 94
             (roll(w, 1..94)
              # Set inner numbers on non-rungs to zero
              Z* 1, |($_%%h xx w-2), 1)
             # Add 32 to numbers
             X+ 32
    }
    # Map h*n+h-1 row numbers (1-indexed)
    1..^h*n+h
}

বিকল্প 73 বাইটার ব্যবহার করে xxএবং এর ++$পরিবর্তে map। হয়তো আপনি কোনও বাইট বন্ধ করে গল্ফ করার জন্য একটি জায়গা খুঁজে পেতে পারেন?
জো কিং

5

পাওয়ারশেল , 132 124 বাইট

param($w,$h,$n)-join([char[]]((($a=('#'+' '*($w-2)+"#`n")*--$h)+'#'*$w+"`n")*$n+$a)|%{($_,[char](33..126|Random))[$_-eq35]})

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

আমরা কেবল #প্রথম ( উদাহরণ ) দিয়ে গঠিত একটি মই তৈরি করি , তারপরে |%{...}প্রতিটি চরিত্রের মধ্য দিয়ে লুপ ifকরি এবং এটি -eqইউল হয় 35, আমরা Randomউপযুক্ত পরিসর থেকে একটি নতুন চরিত্রকে টেনে আনি । অন্যথায় আমরা আউটপুট (অর্থাত্ একটি স্থান বা নতুন লাইন)।


5

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

অক্ষর অনুসারে আউটপুট চরিত্র গঠনের একটি পুনরাবৃত্ত ফাংশন।

"মা দেখুন, কোনও আক্ষরিক লাইন-ফিড নেই!"

(w,h,n)=>(g=x=>y<h*n+h-1?String.fromCharCode(x++<w?x%w>1&&-~y%h?32:Math.random()*94+33|0:10)+g(x>w?!++y:x):'')(y=0)

ডেমো


ধুর! ছাই! আমি যখন এটি দেখছিলাম তখন আমার গল্ফ শুরু হয়েছিল । :\ আপনি আবার জিতলেন! : পি
শেগি

আমি আমার উপরের গল্ফিং শেষ করেছি (আপাতত) - আমি সমস্ত টেরিনারিগুলিকে ভিতরে নিয়ে যাওয়ার জন্য লাইনটি আঁকলাম String.fromCharCode, কারণ আমি সত্যই বলতে পারি না যে এটি দেখার পরে আমি নিজেই এটি নিয়ে এসেছি। আপনি যদি আমার কাছে এখন আপনার মতো অনুরূপ হন তবে আমাকে জানান ।
শেগি

@ শেগি কোন উদ্বেগ নেই! (আসলে, আমি আমার উত্তর পোস্ট করার পরে আপনার উত্তরটি দেখেছি earlier আমি যদি এটি আগে দেখতে পেতাম তবে সম্ভবত আমি ছেড়ে দিতাম))
আর্নল্ড

1
আহ, এটাই খেলাটির প্রকৃতি! :) আমাদের সমাধানগুলিকে একত্রিত করে 113 বাইট দেয় , উপায়
শেগি

5

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

lambda w,h,n,e=lambda:chr(randint(33,126)):[e()+[eval(("e()+"*(w-2))[:-1])," "*(w-2)][-~i%h>0]+e()for i in range(h*-~n-1)]
from random import*

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

বাভসকে ওভকে ধন্যবাদ!


@ লুইস মেন্ডো আমার মনে হয় আমি এখনই এটি ঠিক করেছি।
মিঃ এক্সকোডার

@ লুইস মেন্ডো সাবধানতার সাথে পরীক্ষা না করা আমার দোষ।
মিঃ এক্সকোডার


ধন্যবাদ @ ধন্যবাদ! আপনি 1সামনের
কোনওটি



3

এসওজিএল ভি0.12 , 32 31 বাইট

 ~ΔkψR
I{e{R}¶bH{Re⁾⌡@R¶}}¹∑e⌡k

এখানে চেষ্টা করুন!

অর্ডার ইনপুট এন, ডাব্লু, এইচ।

ব্যাখ্যা:

 ~ΔkψR

     R  a function named "R", pushes a random character:
 ~       push "~"
  Δ      get the charasters from " " to "~"
   k     remove the 1st character
    ψ    choose a random character from that

I{e{R}¶bH{Re⁾⌡@R¶}}¹∑e⌡k  main program

I                         increase the 1st input - N
 {                }       N times do
  e                         push the variable e, which is here initialised to the next input - W
   { }                      E times do
    R                         execute R
      ¶                     push a newline
       bH                   push b-1, where b is initialised to the next input - H
         {       }          B-1 times do
          R                   execute R
           e⁾                 push e-2 aka width-2
             ⌡@               push that many spaces
               R              execute R
                ¶             push a newline
                   ¹∑     join the stack together
                     e⌡k  remove the first width characters

এলোমেলো অক্ষর ছাড়া 18 বাইট : /


3

জাভা 8, 203 188 168 133 132 130 128 126 বাইট

W->H->N->{for(double i=0,j,q;++i<H*N+H;)for(j=W,q=10;j-->=0;q=i%H*j<1|j>W-2?33+Math.random()*94:32)System.out.print((char)q);}

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


133 বাইট:W->H->N->{for(int i=0,j;i++<H*N+H-1;){char c=10;for(j=W;j-->0;c=i%H<1|j>W-2|j<2?(char)(Math.random()*94+33):32)System.out.print(c);}}
নেভায়ে

আপনি বর্তমানে ফলাফল মুদ্রণ করছেন W-1, অভ্যন্তরীণ লুপটি একটি অতিরিক্ত পুনরাবৃত্তি করতে হবে ( >=0+1 বাইট)।
নেভায়ে

1
132 বাইট:W->H->N->{for(int i=0,j;i++<H*N+H-1;){char c=10;for(j=W;j-->=0;c=i%H*j<1|j>W-2?(char)(Math.random()*94+33):32)System.out.print(c);}}
নেভায়ে

2
;++i<H*N+H;: -২ বাইট।
অলিভিয়ার

3

হাস্কেল , 226 220 211 190 বাইট

import System.Random
a=mapM id
b=(putStr.unlines=<<).a
c=randomRIO('!','~')
r w=a$c<$[1..w]
s w=a$c:(return ' '<$[3..w])++[c]
(w#h)0=b$s w<$[2..h]
(w#h)n=do{b$(s w<$[2..h])++[r w];(w#h)$n-1}

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

লাইকনি ধন্যবাদ 9 বাইট সংরক্ষণ করা

ওয়াচারগিনকে 21 বাইট সংরক্ষণ করা হয়েছে

গল্ফযোগ্য ( b$(s w)<$[2..h]এবং b$((s w)<$[2..h])++[r w]) হওয়া উচিত। আইও এবং গল্ফ দিয়ে আমি স্বাচ্ছন্দ্য বোধ করি না।


আপনার জন্য পোঁতা স্বরলিপি ব্যবহার করতে পারেন t w h n= ...: (w#h)n= ...pureপরিবর্তে ব্যবহার করা যেতে পারে return। আপনি কাছাকাছি (d ' ')<$এবং কাছাকাছি ড্রপ করতে পারেন (s w)<$
লাইকনি

@ লাইকনি আমি পরের বার ইনফিক্স স্বরলিপিটি ভুলব না! ধন্যবাদ।
jferard

1
এর সাথে একগুচ্ছ বাইট সংরক্ষণ করুন c=randomRIO('!','~'), যা আপনাকে ইনলাইন করতে দেয় d=return। এছাড়াও, mapM idএক বাইট চেয়ে কম sequence
wchargin

1
ধন্যবাদ আমি আজ কিছু শিখেছি!
jferard

2

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

(w,h,n)=>Array(n+1).fill(("#".padEnd(w-1)+`#
`).repeat(h-1)).join("#".repeat(w)+`
`).replace(/#/g,_=>String.fromCharCode(33+Math.random()*94|0))

মই #অক্ষরগুলি তৈরি করে তারপরে প্রতিটি এলোমেলো এএসসিআইআই চর দ্বারা প্রতিস্থাপন করে।

পরীক্ষার স্নিপেট


String.fromCharCodeএবং Math.randomএকটি সমাধানে - জাভাস্ক্রিপ্ট আমাদের ঘৃণা করে কেন ?! নিয়ে এসেছেন এই 137 বাইট, যা খুবই পুলিশের অনুরূপ, শুধু অ্যারে ছাড়া জন্য। আমি এখন ভাবছি যদি একটি পুনরাবৃত্ত সমাধানটি আরও কম হতে পারে; পরে তদন্ত করবে।
শেগি


2

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

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

একটি পিছনের নিউলাইন অন্তর্ভুক্ত।

(w,h,n)=>(g=c=>l?(c++<w?c%w>1&&l%h?` `:String.fromCharCode(94*Math.random()+33|0):`
`)+g(c>w?!--l:c):``)(0,l=h*++n-1)

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

o.innerText=(f=
(w,h,n)=>(g=c=>l?(c++<w?c%w>1&&l%h?` `:String.fromCharCode(94*Math.random()+33|0):`
`)+g(c>w?!--l:c):``)(0,l=h*++n-1)
)(i.value=5,j.value=3,k.value=2);oninput=_=>o.innerText=f(+i.value,+j.value,+k.value)
label,input{font-family:sans-serif;font-size:14px;height:20px;line-height:20px;vertical-align:middle}input{margin:0 5px 0 0;padding:0 0 0 5px;width:100px;}
<label for=i>W: </label><input id=i min=3 type=number><label for=j>H: </label><input id=j min=2 type=number><label for=k>N: </label><input id=k min=2 type=number><pre id=o>



1

কিউবিআইসি , 76 বাইট

[:*:+b-1|G=chr$(_r33,126|)~a%b\[:-2|G=G+@ `]][e|G=G+chr$(_r33,126|)]?_sG,1,e

ব্যাখ্যা

[                       FOR a = 1 TO
 :                         input 1 (Height, now in var b)
  *                        times
   :                       input 2 (# of rungs, now in var c)
    +b-1|                  plus one bottom rung without crossbar
G=chr$(_r33,126|)       Assign to G a random char (_r is the RAND() function, chr$() is BASIC's num-to-char)
~a%b|                   IF we are not at a crossbar (the modulo returns anything but 0), 
  [:-2|G=G+@ `            add to G x spaces, where x is width (input 3, now 'e') - 2
                        Note that G is now either 'X' or 'X   '  (for rnd char X and W=5)
]]                      Close the spacing FOR, close the IF 
[e|                     FOR f = 1 to width
  G=G+chr$(_r33,126|)]     Append to G a rnd char
                        G is now either 'XXXXXX'  or 'X   XXXXX' (for rnd char X and W=5)
?_sG,1,e                PRINT the first w characters of G, and on to the next line

নমুনা রান

Command line: 3 2 5
N   F
M   `
Bj#=y
!   (
S   N
q(.Ho
%   7
g   ,

1

এমএটিএল , 63 50 বাইট

-13 বাইট ধন্যবাদ লুই মেন্ডোকে ধন্যবাদ

Q*qXJ*6Y2HY)wT3$ZrJ3G3$eJ3G&Ol5LZ(J:HG\~3GTX"!+g*c

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

আমি এখনও এমএটিএল-এ গল্ফ করার জন্য নতুন (এবং আমি এই বিষয়ে ম্যাটল্যাব-তে খুব ভাল কিছু করি না), তাই আমি জানি এটি সম্ভবত অনুকূলের কাছাকাছি নয়। টিপস স্বাগত হয়। ক্রমে ইনপুট নেয় N,H,W

এখানে আমরা যাচ্ছি:

Q*qXJ                     # compute H*(N+1)-1, store as J
     *                    # multiply by W
      6Y2HY)              # push printable ASCII
            wT3$Zr        # sample uniformly with replacement
                  J3G3$e  # reshape to make a matrix of the appropriate shape.

আমাদের কাছে এখন এলোমেলো চরের ম্যাট্রিক্স রয়েছে।

J3G                       # push J,W
   &O                     # zero matrix, J x W
     l5LZ(                # assign 1 to first and last columns

এখন রেলগুলির জন্য একটি লজিকাল ম্যাট্রিক্সও রয়েছে।

J:                        # push J, range, so 1...J
  HG                      # take second input (H)
    \~                    # mod and bool negate (so it's 1 for rows of multiples of H)
      3GTX"!              # repmat and transpose so we have 1's for rungs

এখন আমাদের স্ট্যাকের 3 টি ম্যাট্রিক রয়েছে:

  • শীর্ষস্থানীয়: 0 নন-রনগের জন্য, অন্যথায় 1 1
  • মধ্যম: নন-রেলের জন্য 0, অন্যথায় 1
  • নীচে: এলোমেলো অক্ষর, -20

সুতরাং আমরা নিম্নলিখিত:

+                         # add the top two matrices.
 g                        # convert to logical so 0->0, nonzero->1
   *                      # elementwise multiply
    c                     # convert to char, implicit output (0 -> space).

এখানে কয়েকটি দ্রুত টিপস রয়েছে: X"এটি 3$ডিফল্টরূপে। ... এর 6Y2পরিবর্তে কার্যকর হতে পারে । হয় । পরিবর্তে ব্যবহার করা যেতে পারে13:10620+~~gJ3G&Ol5LZ(1F3G2-Y"h1hJT3$X"
লুইস মেন্ডো

@ লুইস মেন্দো আহ, আমি সমস্ত দস্তাবেজের মাধ্যমে এটিকে পুরোপুরি তৈরি করতে পারি নি বা আমি এটি আবিষ্কার করতে পারতাম X"। গত ডগা সালে 5Lহয় [1 0]কিন্তু আমি নই নিশ্চিত কিভাবে যে সাথে ব্যবহার হচ্ছে Z(- আমি এটি বরাদ্দ পেতে 1প্রথম ও শেষ কলামকে কিন্তু আমি কিভাবে পাবেন না 5LZ(যে সম্পাদন করে। আমি সম্ভবত এই সম্পর্কে কিছু পরে আপনাকে ম্যাট চ্যাটে পিং করব তাই আপাতত সে সম্পর্কে চিন্তা করবেন না।
জিউসেপ

1
ইনডেক্সিং মডুলার, তাই 0"শেষ" এর সমান। Z(কলামগুলিকে বরাদ্দ করে। অবশ্যই আড্ডায় আমাকে পিন করতে নির্দ্বিধায়!
লুইস মেন্ডো

1

পাওয়ারশেল, 102 বাইট

param($w,$h,$n)1..(++$n*$h-1)|%{$l=$_%$h
-join(1..$w|%{[char](32,(33..126|Random))[!$l-or$_-in1,$w]})}

কম গল্ফ পরীক্ষা স্ক্রিপ্ট:

$f = {

param($w,$h,$n)
1..(++$n*$h-1)|%{       # for each lines of the ladder
    $l=$_%$h            # line number in a step
    -join(1..$w|%{      # make a line
        [char](32,(33..126|Random))[!$l-or$_-in1,$w]
    })                  # a random character if the line number in a step is a rung line or char position is 1 or width
                        # otherwise a space
}

}

&$f 5 3 2
&$f 3 2 2
&$f 12 4 5
&$f 20 5 3

আউটপুট:

0   {
H   S
']UxR
G   ]
3   t
q^R8O
q   y
t   J
U h
YQZ
_ i
3#D
I #
=          m
&          <
]          6
8nmuyw2'Y7%+
o          l
;          !
D          M
Fn[zGfT";RYt
@          B
$          e
z          @
@J[1|:-IS~y<
(          L
:          [
|          q
zBow0T0FnY8)
/          *
e          B
R          p
9{d2(RacBdRj
u          ~
`          l
J          h
v                  t
T                  -
v                  H
'                  Y
IS7{bx2&k@u7]o}>[Vq?
F                  U
?                  U
|                  Q
}                  T
:wv1wEfc6cS;430sigF|
<                  L
:                  }
*                  `
H                  =
L8k5Q/DQ=0XIUujK|c6|
j                  =
!                  p
V                  :
#                  w

1

রুবি , 71 বাইট

সম্পাদনা: ওফস আমি ভেবেছিলাম টাইপল লোল ঠিক করার সাম্প্রতিক সম্পাদনার কারণে এটি একটি নতুন চ্যালেঞ্জ। আমি এখনও এটি ছেড়ে দিচ্ছি কারণ এর পক্ষে এখনও কোনও রুবির উত্তর নেই।

->w,h,n{(1..h*-~n-1).map{|i|[*?!..?~].sample(x=i%h>0?2:w)*(' '*(w-x))}}

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

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