পাওয়ারশেল v3 +, 55 বাইট
param($a,$b)1..$b|%{"|$((' ','-')[$_-in1,$b]*($a-2))|"}
ইনপুট নেয় $aএবং $b। থেকে loops 1জন্য $b। প্রতিটি পুনরাবৃত্তি, আমরা একটি একক স্ট্রিং নির্মাণ। মাঝখানে দুটি একক দৈর্ঘ্যের স্ট্রিংগুলির একটি অ্যারে থেকে নির্বাচিত হয়, তারপরে স্ট্রিং-দ্বারা বহুগুণ হয় $a-2, যখন এটি পাইপ দ্বারা বেষ্টিত থাকে। ফলস্বরূপ স্ট্রিংগুলি পাইপলাইনে ফেলে রাখা Write-Outputহয় এবং প্রোগ্রামের সমাপ্তির পরে ডিফল্ট নিউলাইন বিভাজক সহ আউটপুট ঘটে।
বিকল্পভাবে, 55 বাইটেও
param($a,$b)1..$b|%{"|$((''+' -'[$_-in1,$b])*($a-2))|"}
এইটি সম্পর্কে এলো কারণ আমি তার পরিবর্তে একটি স্ট্রিং ব্যবহার করে মাঝপথে অ্যারে নির্বাচনকে গল্ফ দেওয়ার চেষ্টা করছিলাম। যাইহোক, [char]সময়গুলি [int]সংজ্ঞায়িত না হওয়ায় আমরা পেরেনস এবং স্ট্রিং হিসাবে স্ট্রিং হিসাবে কাস্ট করার প্রয়োজনে সঞ্চয়গুলি হারাতে পারি ''+।
দুটি সংস্করণ -inঅপারেটরের জন্য v3 বা আরও নতুন প্রয়োজন require
উদাহরণ
PS C:\Tools\Scripts\golfing> .\draw-an-ascii-rectangle.ps1 10 3
|--------|
| |
|--------|
PS C:\Tools\Scripts\golfing> .\draw-an-ascii-rectangle.ps1 7 6
|-----|
| |
| |
| |
| |
|-----|
Ị:) এর দুর্দান্ত ব্যবহার