একটি খালি স্ক্র্যাবল বোর্ড অঙ্কন করুন


28

একটি স্ট্যান্ডার্ড স্ক্র্যাবল বোর্ড হরফ টাইলস রাখার জন্য স্পেসের 15 × 15 গ্রিড। বেশিরভাগ স্পেস ফাঁকা তবে কয়েকটি ডাবল ওয়ার্ড স্কোর (গোলাপী), ট্রিপল ওয়ার্ড স্কোর (লাল), ডাবল লেটার স্কোর (হালকা নীল) এবং ট্রিপল লেটার স্কোর (নীল)। খুব কেন্দ্রের মধ্যে সাধারণত একটি তারা থাকে (যা ডাবল ওয়ার্ড স্কোর হিসাবে গণনা করা হয়)।

স্ক্র্যাবল বোর্ড

এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা ASCII আকারে একটি স্ট্যান্ডার্ড, খালি স্ক্র্যাবল বোর্ডকে আউটপুট করে:

  • . একটি খালি স্থান প্রতিনিধিত্ব করে

  • D একটি ডাবল শব্দ স্কোর প্রতিনিধিত্ব করে

  • T একটি ট্রিপল ওয়ার্ড স্কোর উপস্থাপন করে

  • d একটি ডাবল লেটার স্কোর প্রতিনিধিত্ব করে

  • t ট্রিপল লেটার স্কোর উপস্থাপন করে

  • X কেন্দ্রের তারা প্রতিনিধিত্ব করে

যে, আপনার সঠিক আউটপুট হতে হবে

T..d...T...d..T
.D...t...t...D.
..D...d.d...D..
d..D...d...D..d
....D.....D....
.t...t...t...t.
..d...d.d...d..
T..d...X...d..T
..d...d.d...d..
.t...t...t...t.
....D.....D....
d..D...d...D..d
..D...d.d...D..
.D...t...t...D.
T..d...T...d..T

allyচ্ছিকভাবে একটি অনুসরণযোগ্য নিউলাইন new

বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী।


কেন Xএবং *তারার প্রতিনিধিত্ব না? : ও
17

6
*খুব উচ্চ এবং শক্তিশালী।
ক্যালভিনের শখ 17

কেন হবে না ? : ডি
mbomb007

5
@ mbomb007 একটি ASCII- শিল্প চ্যালেঞ্জে নন-এএসসিআইআই চর? পাগল !
লুইস মেন্ডো 22

উত্তর:


16

এমএটিএল , 59 54 52 বাইট

4t:g2I5vXdK8(3K23h32h(H14(t!XR+8: 7:Pht3$)'DtdTX.'w)

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

ব্যাখ্যা

কোডটি তিনটি প্রধান পদক্ষেপ অনুসরণ করে:

  1. 8x8 ম্যাট্রিক্স উত্পন্ন করুন

    4 0 0 3 0 0 0 4
    0 1 0 0 0 2 0 0
    0 0 1 0 0 0 3 0
    3 0 0 1 0 0 0 3
    0 0 0 0 1 0 0 0
    0 2 0 0 0 2 0 0
    0 0 3 0 0 0 3 0
    4 0 0 3 0 0 0 5
    
  2. 15x15 ম্যাট্রিক্স এ এটি প্রসারিত করুন

    4 0 0 3 0 0 0 4 0 0 0 3 0 0 4
    0 1 0 0 0 2 0 0 0 2 0 0 0 1 0
    0 0 1 0 0 0 3 0 3 0 0 0 1 0 0
    3 0 0 1 0 0 0 3 0 0 0 1 0 0 3
    0 0 0 0 1 0 0 0 0 0 1 0 0 0 0
    0 2 0 0 0 2 0 0 0 2 0 0 0 2 0
    0 0 3 0 0 0 3 0 3 0 0 0 3 0 0
    4 0 0 3 0 0 0 5 0 0 0 3 0 0 4
    0 0 3 0 0 0 3 0 3 0 0 0 3 0 0
    0 2 0 0 0 2 0 0 0 2 0 0 0 2 0
    0 0 0 0 1 0 0 0 0 0 1 0 0 0 0
    3 0 0 1 0 0 0 3 0 0 0 1 0 0 3
    0 0 1 0 0 0 3 0 3 0 0 0 1 0 0
    0 1 0 0 0 2 0 0 0 2 0 0 0 1 0
    4 0 0 3 0 0 0 4 0 0 0 3 0 0 4
    
  3. 'DtdTX.'পছন্দসই ফলাফল তৈরি করতে সেই ম্যাট্রিক্সের সাথে স্ট্রিংকে সূচক করুন ।

ধাপ 1

4        % Push 4
t:       % Duplicate, range: pushes [1 2 3 4]
g        % Logical: convert to [1 1 1 1]
2I5      % Push 2, then 3, then 5
v        % Concatenate all stack vertically into vector [4 1 1 1 1 2 3 5]
Xd       % Generate diagonal matrix from that vector

এখন আমাদের ননজারো অফ-ডায়াগোনাল এন্ট্রিগুলি পূরণ করতে হবে। আমরা কেবল তির্যক নীচের অংশগুলি পূরণ করব এবং তারপরে অন্যকে পূরণ করার জন্য প্রতিসাম্য ব্যবহার করব।

প্রতিটি মান পূরণ করার জন্য আমরা লিনিয়ার ইনডেক্সিং ব্যবহার করি ( এই উত্তরটি দেখুন , দৈর্ঘ্য -12 স্নিপেট)। তার মানে ম্যাট্রিক্স অ্যাক্সেস করার অর্থ এটির মাত্র একটি মাত্রা রয়েছে। একটি 8 × 8 ম্যাট্রিক্সের জন্য, রৈখিক সূচকের প্রতিটি মান নিম্নলিখিত হিসাবে একটি প্রবেশকে বোঝায়:

1   9         57
2  10         58
3  11
4  
5  ...       ...
6  
7             63
8  16 ... ... 64

সুতরাং, নীচে নীচের বাম এন্ট্রি 4 মান নির্ধারণ:

K        % Push 4
8        % Push 8
(        % Assign 4 to the entry with linear index 8

মান 3 জন্য কোড অনুরূপ। এই ক্ষেত্রে সূচকটি একটি ভেক্টর, কারণ আমাদের বেশ কয়েকটি এন্ট্রি পূরণ করতে হবে:

3        % Push 3
K        % Push 4
23h      % Push 23 and concatenate horizontally: [4 23]
32h      % Push 32 and concatenate horizontally: [4 23 32]
(        % Assign 4 to the entries specified by that vector

এবং 2 এর জন্য:

H        % Push 2
14       % Push 14
(        % Assign 2 to that entry

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

4 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0
3 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0
0 2 0 0 0 2 0 0
0 0 3 0 0 0 3 0
4 0 0 3 0 0 0 5

উপরের অর্ধেকটি পূরণ করতে আমরা প্রতিসাম্য ব্যবহার করি:

t!       % Duplicate and transpose
XR       % Keep the upper triangular part without the diagonal
+        % Add element-wise

ধাপ ২

স্ট্যাকটিতে এখন 8 × 8 ম্যাট্রিক্স রয়েছে যা 1 ম পদক্ষেপের ফলে হয়েছিল 1 এই ম্যাট্রিক্সটি প্রসারিত করতে আমরা সূচিটি ব্যবহার করি, এবার দুটি মাত্রায়।

8:       % Push vector [1 2 ... 7 8]
7:P      % Push vector [7 6 ... 1]
h        % Concatenate horizontally: [1 2 ... 7 8 7 ... 2 1]. This will be the row index
t        % Duplicate. This will be the column index
3$       % Specify that the next function will take 3 inputs
)        % Index the 8×8 matrix with the two vectors. Gives a 15×15 matrix

ধাপ 3

স্ট্যাকটিতে এখন পদক্ষেপ 2 থেকে 15 × 15 ম্যাট্রিক্স রয়েছে।

'DtdTX.' % Push this string
w        % Swap the two elements in the stack. This brings the matrix to the top
)        % Index the string with the matrix

এই সত্যিই সত্যিই, শান্ত.
অ্যাডমবর্কবার্ক

দৈর্ঘ্যের ভেক্টর তৈরি করতে আপনি 8 টি অক্ষর ব্যবহার করার পরে এটি 8 জনের অক্ষরটি খানিকটা 'চুলকায়' বললে আমি সাধারণভাবে এই উত্তরটি পছন্দ করি you আপনি কি গাণিতিক ক্রম অনুসারে সংখ্যাগুলি অর্জন করা বিবেচনা করেছেন? এখনও মিষ্টি কিছু খুঁজে পাইনি তবে বিশেষত শেষ 7 টি তেমন একটি সুন্দর প্যাটার্ন দেখায়। উদাহরণস্বরূপ সিল ((1: 7) ^
4/500

@ ডেনিসজে ধন্যবাদ! হ্যাঁ, এটি খুব বেশি অনুভব করে। আমি এটি পরে ফোনে চেষ্টা করব
লুইস মেন্ডো

8

রুবি, 103 97 বাইট

পুনরাবৃত্তিতে 6 বাইট উন্নতির জন্য মিচ শোয়ার্জকে ধন্যবাদ।

a=(-7..7).map &:abs
a.map{|i|puts a.map{|j|(d=i%7-j%7)%4<1?'X d t DTDdDdDtT d'[i+j+d*d/3]:?.}*''}

নীচে আমার মূল উত্তরের অনুরূপ তবে উল্লেখযোগ্যভাবে পৃথক পদ্ধতি। আগের মতোই, আমরা এই সত্যটি ব্যবহার করি যে i%7-j%70 বা 4 এর সমান হলে একটি চিঠি অবশ্যই মুদ্রিত করা উচিত তবে আমরা এখানে এই পার্থক্যটি সংরক্ষণ করি dএবং i+j+d*d/3সেই নির্দিষ্ট বর্ণের বর্গক্ষেত্রে অনন্য (প্রতিসাম্য অবধি) একটি পূর্ণসংখ্যা দিতে সূত্রটি ব্যবহার করি । তারপরে আমরা এটিকে কেবল ম্যাজিক স্ট্রিংয়ে দেখি।

কেবল মজাদার জন্য: এই পদ্ধতির সি সংস্করণ, 120 বাইট

z,i,j,d;f(){for(z=240;z--;)i=abs(z%16-8),j=abs(z/16-7),putchar(i-8?(d=i%7-j%7)%4?46:"X d t DTDdDdDtT d"[i+j+d*d/3]:10);}

রুবি, 115 113 বাইট

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

(k=-7..7).map{|y|k.map{|x|i=x.abs;j=y.abs
$><<=(i%7-j%7)%4<1?"#{'XdTdT'[(i+j)/3]}dtDDDD"[[i%7,j%7].min]:?.}
puts}

ব্যাখ্যা

উত্স বোর্ডের কেন্দ্র হিসাবে বিবেচিত হয়।

বর্গক্ষেত্রের x এবং y স্থানাঙ্কগুলির চৌম্বকগুলি একই বা 4 দ্বারা পৃথক হলে একটি চিঠি অবশ্যই মুদ্রিত করতে হবে তবে কেবলমাত্র ব্যতিক্রম বোর্ডের বাইরের প্রান্তে রয়েছে তবে এগুলি কেন্দ্রের সারি / কলামের একই প্যাটার্ন অনুসরণ করে বোর্ড, সুতরাং আমরা একই শর্তটি ব্যবহার করতে পারি যদি আমরা এক্স এবং y স্থানাঙ্কগুলি মডিউল 7 গ্রহণ করি।

প্রদর্শিত অক্ষরের পছন্দ ন্যূনতম মাত্রার স্থানাঙ্কের উপর ভিত্তি করে। এইভাবে (1,5) এবং (2,6) এ ডাবল এবং ট্রিপলগুলি (1,1) এবং (2,2) এর একই নিয়ম অনুসরণ করে এবং 7 টি অক্ষরের স্ট্রিং থেকে প্রাপ্ত হয় এটি "#{formula}dtDDDD"সমস্ত প্রকারকে আবরণ করে না প্রান্ত এবং কেন্দ্রবিন্দু বর্গক্ষেত্রের জন্য, সুতরাং স্ট্রিংয়ের প্রথম অক্ষরটি সূত্র থেকে গণনা করা হয় 'XdTdT'[(i+j)/3]

(k=-7..7).map{|y|
  k.map{|x|
    i=x.abs;j=y.abs
    print (i%7-j%7)%4<1?      #IF this expression is true print a letter 
    "#{'XdTdT'[(i+j)/3]       #select 1st character of magic string where [i%7,j%7].min==0 
     }dtDDDD"[[i%7,j%7].min]: #remaining 6 characters of magic string for diagonal
    ?.                        #ELSE print .
  }
  puts                        #at the end of the row print a newline
}

(k=-7..7).map{|y|k.map{...আপনার ডাবল -7.upto(7)কৌশলের চেয়ে 2 বাইট কম sh
মান কালি

6 বাইট সংরক্ষণ করার জন্য কয়েকটি পরিবর্তন:a=(-7..7).map &:abs;a.map{|i|puts a.map{|j|(d=i%7-j%7)%4<1?'X d t DTDdDdDtT d'[i+j+d*d/3]:?.}*''}
মিচ শোয়ার্জ

7

ব্রেনফাক , 598 596 590 বাইট

গল্ফিং টিপস স্বাগত।

>-[++++[<]>->+]<[>++++>+++++>+++>++<<<<-]>[>>>>+>+>+<<<<<<-]<++++++++++[>+>>>>+>-<<<<<<-]>>+>->>-->++.<<..>.<...>>.<<...>.<..>>.<<<<<.>>>.<.>...<<.>>...<<.>>...<.>.<<<.>>>..<.>...>.<.>.<...<.>..<<<.>>>>.<..<.>...>.<...<.>..>.<<<<.>>>....<.>.....<.>....<<<.>>>.<<.>>...<<.>>...<<.>>...<<.>>.<<<.>>>..>.<...>.<.>.<...>.<..<<<.>>>>>.<<..>.<...>>>----.<<<...>.<..>>.<<<<<.>>>..>.<...>.<.>.<...>.<..<<<.>>>.<<.>>...<<.>>...<<.>>...<<.>>.<<<.>>>....<.>.....<.>....<<<.>>>>.<..<.>...>.<...<.>..>.<<<<.>>>..<.>...>.<.>.<...<.>..<<<.>>>.<.>...<<.>>...<<.>>...<.>.<<<.>>>>>.<<..>.<...>>.<<...>.<..>>.

ব্যাখ্যা

টেপ আরম্ভ [10 116 68 46 100 84 92] অর্থাত [nl এর টন ডি। ডি টি \]

>-[++++[<]>->+]<[>++++>+++++>+++>++<<<<-]>[>>>>+>+>+<<<<<<-]<++++++++++[>+>>>>+>-<<<<<<-]>>+>->>-->++

এখানে প্রতিটি লাইন বোর্ডের এক লাইন মুদ্রণ করে।
মাঝের রেখাটিও হ্রাস পায়92 to 88 i.e. \ to X

.<<..>.<...>>.<<...>.<..>>.<<<<<.
>>>.<.>...<<.>>...<<.>>...<.>.<<<.
>>>..<.>...>.<.>.<...<.>..<<<.
>>>>.<..<.>...>.<...<.>..>.<<<<.
>>>....<.>.....<.>....<<<.
>>>.<<.>>...<<.>>...<<.>>...<<.>>.<<<.
>>>..>.<...>.<.>.<...>.<..<<<.
>>>>>.<<..>.<...>>>----.<<<...>.<..>>.<<<<<.
>>>..>.<...>.<.>.<...>.<..<<<.
>>>.<<.>>...<<.>>...<<.>>...<<.>>.<<<.
>>>....<.>.....<.>....<<<.
>>>>.<..<.>...>.<...<.>..>.<<<<.
>>>..<.>...>.<.>.<...<.>..<<<.
>>>.<.>...<<.>>...<<.>>...<.>.<<<.
>>>>>.<<..>.<...>>.<<...>.<..>>.

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


1
বিএফের জন্য টিপস: বিএফ-তে গল্ফকে এশিয়াই করবেন না; যদিও দুর্দান্ত কৌশল।
ম্যাজিক অক্টোপাস উরান

5

পাওয়ারশেল ভি 2 +, 147 বাইট

($x='T..d...T...d..T')
($y='.D...t..','..D...d.','d..D...d','....D...','.t...t..','..d...d.'|%{$_+-join$_[6..0]})
$x-replace'.T.','.X.'
$y[5..0]
$x

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

প্রথম লাইনটি বোর্ডের শীর্ষ লাইনটি আউটপুট দেয় এবং $xপরে এটি ব্যবহারের জন্য এটি স্টোরেজ করে ।

পরের লাইনটি প্রতিটি বাম "অর্ধেক" নিয়ে, তাদের ( -join$_[6..0]বিবৃতি) আয়না করে এবং অ্যারেতে উপাদান হিসাবে সংরক্ষণ করে সমস্ত ডাবল-ওয়ার্ড লাইন উত্পন্ন করে $y

পরবর্তী লাইনটি মাঝারি সারি, একটি Xমাঝখানে সহ, ধন্যবাদ -replace

পরের লাইনটি $yবিপরীত ক্রমে আউটপুট দেয়, আমাদের নীচে ডাবল-ওয়ার্ড লাইন দেয়।

চূড়ান্ত লাইন ঠিক $xআবার।

PS C:\Tools\Scripts\golfing> .\draw-empty-scrabble-board.ps1
T..d...T...d..T
.D...t...t...D.
..D...d.d...D..
d..D...d...D..d
....D.....D....
.t...t...t...t.
..d...d.d...d..
T..d...X...d..T
..d...d.d...d..
.t...t...t...t.
....D.....D....
d..D...d...D..d
..D...d.d...D..
.D...t...t...D.
T..d...T...d..T

5

> <> (ফিশ), 153 বাইট

\!o;!?l
\'T..d...T...d..T'a'.D...t...t...D.'a'..D...d.d...D..'a'd..D...d...D..d'a'....D.....D....'a'.t...t...t...t.'a'..d...d.d...d..'a'T..d...'
\'X/'02p

ভয়ঙ্কর, ভয়ঙ্কর, কাজ করার অদক্ষ উপায়। অনুভূমিকভাবে এবং উলম্বভাবে উভয়ই যথাযথভাবে মিরর দিয়ে এটি সংক্ষিপ্ত করার একটি উপায় অনুসন্ধান করছেন।

এটি অনলাইন চেষ্টা করুন! (আপনি যদি সারাদিন সেখানে থাকতে না চান তা নিশ্চিত করুন যে আপনি হয় এক্সিকিউশন স্পিড সর্বাধিক নির্ধারণ করেছেন বা অ্যানিমেশন ছাড়াই চালাবেন।)


4

সি, 146 145 142 138 বাইট

i,r,c;main(){for(;i<240;)r=abs(i/16-7),c="T..12..0..12..0"[r+7-abs(i%16-7)],putchar(++i%16?c&4?c:"Xd.dd.tt.D..D.dD.dD.tTd."[c%4+r*3]:10);}

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

স্তরের নদী সেন্টকে ধন্যবাদ 1 বাইট 5 বাইট

এটি এনকোডিংয়ের জন্য বোর্ডের তির্যক প্যাটার্নটিকে কাজে লাগায়। বিশেষত, আমরা বোর্ডের শীর্ষ বাম চতুর্ভুজটি নিয়ে এবং তির্যকটি প্রান্তিককরণ করি, তবে আমরা পাই:

       T..d...T
      .D...t..
     ..D...d.
    d..D...d
   ....D...
  .t...t..
 ..d...d.
T..d...X

... অনেকগুলি কলাম এখন লাইন রেখেছে। যদি আমরা এভাবে একটি লাইনে কলামগুলি এনকোড করি:

       0..12..0 y/012/Td./
      .0..12..  y/012/D.t/
     ..0..12.   y/012/D.d/
    2..0..12    y/012/D.d/
   12..0..1     y/012/D../
  .12..0..      y/012/tt./
 ..12..0.       y/012/dd./
T..12..0        y/012/Xd./

... তারপর বোর্ড প্যাটার্ন 15 অক্ষর স্ট্রিং মধ্যে ধসে যেতে পারে: T..12..0..12..0; এবং আমাদের কেবল প্রতিটি সারির জন্য সঠিক ম্যাপিংগুলির প্রয়োজন।

এটি মনে রেখে, এখানে মন্তব্য সহ একটি প্রসারিত সংস্করণ:

i,r,c;
main() {
   for(;i<240;)  // one char per output including new line
   r=abs(i/16-7) // row; goes from 7 to 0 and back to 7.
   , c="T..12..0..12..0"[r+7-abs(i%16-7)] // pattern char
   , putchar(++i%16 // if this is 0 we need a new line
   ? c&4 // hash to distinguish 'T' and '.' from '0', '1', '2'
     ? c // print 'T' and '.' literally
     : "Xd.dd.tt.D..D.dD.dD.tTd."[c%4+r*3] // otherwise look up replacement char
   : 10 // print the new line
   );
}

খুব সুন্দর. 1. আপনি একটি প্রোগ্রামের পরিবর্তে একটি ফাংশন জমা দিতে পারেন, তাই i,r,c;f()ঠিক আছে। ২ (i%16-7)%8- -> i%16-7&7৩. আমার মনে হয় c-48-> c%4কাজ করে, তা হয় না?
স্তর নদী

ওফস, দুঃখিত, ফাংশনগুলি পুনরায় ব্যবহারযোগ্য হতে হবে, সুতরাং ফাংশনের অভ্যন্তরে f()একটি অ্যাডিশনাল প্রয়োজন i=0যাতে এটি কোনও কিছু না সঞ্চয় করে।
স্তর নদী

মন্তব্যের জন্য ধন্যবাদ! 2 %8টিও কাজ করবে না ( % 16 মান 0.15 থেকে -7..7 মানচিত্রের জন্য প্রয়োগের নেতিবাচক মডুলি ব্যবহার করে; &7এটি 0..7,0..7 এ মানচিত্র করবে)। তবে, হ্যাঁ, 3 একেবারে কাজ করবে ... আমি সুযোগ পেলেই আপডেট হবে update
এইচ ওয়াল্টারস

পুনঃটুইট 2 এখনও কঠোরভাবে কাজ করবে না, তবে যাইহোক আমার এই জিনিসগুলির প্রয়োজন হয়নি।
এইচ ওয়াল্টারস

3

05AB1E , 57 53 বাইট

কোড

•jd]31‚ŽÔc¦Ïïì¹Ep.Üì8Ìa;“•6B4ÝJ".TdDt"‡5'.3×:Â'Xý15ô»

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


ব্যাখ্যা (পুরানো)

দ্য •4ç“–šã&$W§ñçvßÖŠ_æá_VFÛÞýi~7¾¬ÏXôc•5Bএই নম্বরে আপনাকে decompresses:

1002000100020010400030003000400040002020004002004000200040020000400000400000300030003000300020002020002001002000

সঙ্গে 4ÝJ".TdtD"‡ , আমরা এই বৃহত সংখ্যায় নিম্নলিখিত প্রতিলিপি:

0 -> .
1 -> T
2 -> d
3 -> t
4 -> D

আমরা স্ট্রিং এবং স্ট্রিংটি স্ট্যাকের বিপরীতে রেখে পুরো স্ট্রিংকে দ্বিখণ্ডিত করি এবং "X"ব্যবহার করে তাদের সাথে যোগদান করি ý। আমরা th স্ট্রিং 15ôকোডটি ব্যবহার করে পুরো স্ট্রিংটি 15 টি টুকরো টুকরো করে বিভক্ত করেছি এবং নিউলাইনগুলি ব্যবহার করে পুরো অ্যারেটিতে যোগদান করি »


û€ûঅন্তর্নির্মিত হওয়া উচিত;)।
ম্যাজিক অক্টোপাস উরান

2

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

d=lambda s:s+s[-2::-1]
print(*d(list(map(d,'T..d...T .D...t.. ..D...d. d..D...d ....D... .t...t.. ..d...d. T..d...X '.split()))),sep='\n')

পরিবর্তন list(map(A))করুন [*map(A)], 3 বাইট সংরক্ষণ করুন (পাইথন 3.5++ প্রয়োজন)।
shooqie

2

05AB1E , 49 44 বাইট

•1nÑ=}íge/Þ9,ÑT‰yo¬iNˆå•6B8ôû€û»5ÝJ".TtdDX"‡

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

ব্যাখ্যা:

পুশ: 1003000104000200004000303004000300004000020002000030003010030005

8 এর অংশে বিভক্ত করুন, প্রতিটিকে প্যালিনড্রাইজ করুন।

আবার Palindromize।

অক্ষরের সাথে সংখ্যাগুলি প্রতিস্থাপন করুন।


অন্যান্য ধারণা (কেউ এমএটিএল এ চেষ্টা করে দেখুন)

সমস্ত কিছুই এর অভ্যন্তরে পিরিয়ড থাকার জন্য স্বেচ্ছাসেবক হিসাবে দেখা হচ্ছে ...

প্রতিটি টুকরো অভ্যন্তরে শূন্যের সংখ্যা গণনা করুন:

1003000104000200004000303004000300004000020002000030003010030005
^  ^   ^ ^   ^    ^   ^ ^  ^   ^    ^    ^   ^    ^   ^ ^  ^   ^

131424334342233135 => w\F6ß¿

শূন্যের সংখ্যা গণনা করা:

23134312344343123 => ì:¼˜¾

তারপরে আপনি ডিক্রিপ্ট করে এগুলি একসাথে স্থানান্তরিত করবেন।

এগুলি 05AB1E এ ব্যবহার করে (ফলাফলগুলি +5 বাইট বৃদ্ধির ফলে):

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

•w\F6ß¿•6BS•ì:¼˜¾•5BS0ׂøJJ

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


মেটা-গল্ফ এন্ট্রি:

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

•G¨J´JÏÍ?»"”Ö3úoÙƒ¢y”vf%¯‚6À°IÕNO’Å2Õ=ÙŠxn®žÑŸ¶¼t¨š,Ä]ÓŽÉéȺÂ/ø‡ŸÖ|e³J—Ë'~!hj«igċ΂wî’©•7BžLR"
.DTXdt"‡

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

মেটা-golfed হওয়া ASCII শিল্প জন্য আমার মেটা-গল্ফ খেলোয়াড় ব্যবহার করছে: https://tio.run/nexus/05ab1e#JY9NSgNBEIWvUo4/qAQxyfi30yAioiAiuBM6M9U9DT3doao7ccBFrhI3ooss3QguJniRXCR2x01RfK9479Xqtf2@XHy2H78/tw/L6aydq8VXr5sPsuX0LeP1jCwbJD3r54v3dp5mFGbZzWp1wXBPyLpE6@GRQj0C1spiCQJ4gjjSVgG@YBG8HiM4KpHAWbgiXYqmA1wF79ONrxCGa5nBOyCUQSEyCFuCi2LEklwNjGO0YAQpNA3cBTa6hsIF60kjd9Y@jAWhF9SAk1C5Gk1yiTSQ9g1MBKcKAp4q7RGuXWCMFlYioS3iKowBhf@9Kh2DNbEHGSIexhSZeDRIUcq4oTDxDS09aAsjZ3TRHGycb25tP@/s7@51e/386Pjk9OzwDw


1

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

_=>(r='',"T2d3T3d2T.D3t3t3D3D3d.d3D2d2D3d3D2d4D5D5t3t3t3t3d3d.d3d2T2d3".replace(/./g,c=>(c=+c?'.'.repeat(c):c,r=c+r,c))+'X'+r).match(/.{15}/g).join`
`

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

স্ট্রিংটি "T2d3T3d2T.D3t3t3D3D3d.d3D2d2D3d3D2d4D5D5t3t3t3t3d3d.d3d2T2d3"বোর্ডের উপরের বাম কোণ থেকে 'X' এর ঠিক আগে স্কয়ার পর্যন্ত বর্ণনা করে, ক্রমাগত খালি স্কোয়ারগুলি অঙ্ক হিসাবে এনকোড করে। replace()ফাংশন উভয় খালি স্কোয়ার unpacks এবং আয়না স্ট্রিং তৈরী করেr বোর্ডের নীচে জন্য। তারপরে উভয় অংশ একসাথে রাখা হয় এবং প্রতি 15 টি অক্ষর riageোকানো হয় গাড়ীর ফেরত।

ডেমো

let f =
_=>(r='',"T2d3T3d2T.D3t3t3D3D3d.d3D2d2D3d3D2d4D5D5t3t3t3t3d3d.d3d2T2d3".replace(/./g,c=>(c=+c?'.'.repeat(c):c,r=c+r,c))+'X'+r).match(/.{15}/g).join`
`
console.log(f())


1

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

f=
_=>(a=[...Array(15)].map(_=>Array(15).fill`.`),r=([c,i,j])=>[a[i][j]=a[k=14-i][j]=a[i][j=14-j]=a[k][j]=c,j,i],[..."TDDDDtdX"].map((c,i)=>r([c,i,i])),"d30t51d62d73T70".replace(/.../g,s=>r(r(s))),a.map(a=>a.join``).join`
`)
;o.textContent=f()
<pre id=o>

যেহেতু আমি এটি তৈরি করতে গিয়ে সমস্যায় পড়েছি আমি ভেবেছিলাম যে এটি স্পষ্টভাবে উন্নততর সমাধান পাওয়া সত্ত্বেও আমি এটি পোস্ট করব।


1

সি 234 বাইট

#define g(t) while(i++<8)putchar(*b++);b-=2;--i;while(--i>0)putchar(*b--);putchar('\n');b+=t;
char*r="T..d...T.D...t....D...d.d..D...d....D....t...t....d...d.T..d...X";i;f(){char*b=r;do{g(9);}while(*b);b-=16;do{g(-7);}while(b>=r);}

এখানে ফলাফল:

T..d...T...d..T
.D...t...t...D.
..D...d.d...D..
d..D...d...D..d
....D.....D....
.t...t...t...t.
..d...d.d...d..
T..d...X...d..T
..d...d.d...d..
.t...t...t...t.
....D.....D....
d..D...d...D..d
..D...d.d...D..
.D...t...t...D.
T..d...T...d..T

1

কাঠকয়লা , 33 বাইট (নন-কেপটিং)

এই উত্তরের সমস্ত ক্রেডিট @DLosc এ যায় ।

T↑↑↘tdd↗→→↖XdtDDDD↓T..d‖O⟦↗→↓⟧UB.

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

বাগাড়ম্বরপূর্ণ

Print("T")
Move(:Up)
Move(:Up)
Print(:DownRight, "tdd")
Move(:UpRight)
Move(:Right)
Move(:Right)
Print(:UpLeft, "XdtDDDD")
Print(:Down, "T..d")
ReflectOverlap([:UpRight, :Right, :Down])
SetBackground(".")

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


এটি তির্যক মুদ্রণ ক্ষমতা সহ এই চ্যালেঞ্জের জন্য নিখুঁত সরঞ্জাম। +1 (এবং ASCII এর মতো পটভূমির পদ্ধতিটি দেখতেও শীতল)
কেভিন ক্রুইজসেন

0

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

g=(++)<*>reverse.init
unlines$g$g<$>words"T..d...T .D...t.. ..D...d. d..D...d ....D... .t...t.. ..d...d. T..d...X"

gএকটি অ-পয়েন্টফ্রি সংস্করণ হয় g x = x ++ (reverse (init x))। এটি প্রতি (অর্ধ) রেখায় একবার এবং আবার ফলাফলের জন্য প্রয়োগ করা হয়।


0

sh + coreutils, 119 বাইট

এটি একটি বাইনারি ফাইল। হেক্সডাম্প হিসাবে দেখানো হয়েছে:

00000000  74 61 69 6c 20 2d 63 39  34 20 24 30 7c 67 75 6e  |tail -c94 $0|gun|
00000010  7a 69 70 0a 65 78 69 74  0a 1f 8b 08 00 2e ec ca  |zip.exit........|
00000020  57 00 03 65 4f c9 0d c0  30 08 fb 7b 18 4f 91 11  |W..eO...0..{.O..|
00000030  fc e8 00 1e a1 fb ab 08  68 a4 90 07 60 d9 98 43  |........h...`..C|
00000040  a4 49 8a 59 05 ae 40 6f  c7 22 98 84 b3 29 10 fc  |.I.Y..@o."...)..|
00000050  13 59 1d 7a 11 9d b1 bd  15 a8 56 77 26 54 c4 b3  |.Y.z......Vw&T..|
00000060  f7 0d fd f6 9f f3 ef fd  e7 7d f3 7e 8d ff 3e 05  |.........}.~..>.|
00000070  57 d9 a0 f0 00 00 00                              |W......|
00000077

এখানে বেস 64 ফর্মটি যাতে আপনি এটি অনুলিপি / পেস্ট করতে পারেন:

begin-base64 755 test.sh
dGFpbCAtYzk0ICQwfGd1bnppcApleGl0Ch+LCAAu7MpXAANlT8kNwDAI+3sY
T5ER/OgAHqH7qwhopJAHYNmYQ6RJilkFrkBvxyKYhLMpEPwTWR16EZ2xvRWo
VncmVMSz9w399p/z7/3nffN+jf8+BVfZoPAAAAA=
====

0

সি 230 228 বাইট

char *s="T.D..Dd..D....D.t...t..d...dT..d...X";
int x,y,a,b;
#define X(N) {putchar(s[a]);N y<=x?1:y;}
#define P for(y=1;y<8;y++)X(a+=)for(y--;y+1;y--)X(a-=)puts("");
main(){for(;x<8;x++){a=b+=x;P}for(x=6;x+1;x--){a=b-=(x+1);P}}

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

এটি মূল সি সংস্করণ পোস্ট করা উন্নত করার একটি প্রচেষ্টা যা একটি সি অ্যারেতে সজ্জিত বোর্ডের চতুর্থাংশ ছিল। আমি যতটা আশা করেছিলাম তত ছোট নয়। এই সংস্করণটিতে বোর্ডের কেবলমাত্র অষ্টম রয়েছে।

Ungolfed:

char *s="T.D..Dd..D....D.t...t..d...dT..d...X";
int x,y,a,b;
main(){
    for(x = 0; x < 8; x++){
        a=b+=x;
        for(y = 1; y < 8; y++){
            putchar(s[a]);
            a += y<=x ? 1 : y;
        }
        for(y--; y >= 0; y--){
            putchar(s[a]);
            a -= y<=x ? 1 : y;
        }
        puts("");
    }
    for(x=6; x >= 0; x--){
        a=b-=(x+1);
        for(y = 1; y < 8; y++){
            putchar(s[a]);
            a += y<=x ? 1 : y;
        }
        for(y--; y >= 0; y--){
            putchar(s[a]);
            a-= y<=x ? 1 : y;
        }
        puts("");
    }
}

0

জিএনইউ সেড, 219 205 বাইট

s/$/T..d...T...d..T/p;h
s/.*/.D...t...t...D./p;G;h
s/.*/..D...d.d...D../p;G;h
s/.*/d..D...d...D..d/p;G;h
s/.*/....D.....D..../p;G;h
s/.*/.t...t...t...t./p;G;h
s/.*/..d...d.d...d../p;G;h
s/.*\n//;s/T/X/2p;g

বোর্ডের আয়না প্রতিসাম্যের সুযোগ নিয়ে, দ্বিতীয়ার্ধটি হোল্ড স্পেসে বিপরীত ক্রমে সংরক্ষণ করা হয়েছিল এমন প্রথমটি।

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