ট্রান্সপোজ কুইন


10

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

আপনার প্রোগ্রাম
চালু
চার লাইন

আউটপুট

 yof
 ono
 u u
 r r
    
 p l
 r i
 o n
 g e
 r s
 a
 m

আউটপুট মধ্যে শ্বেত স্পেস নির্বিচারে নয়। স্পেস দুটি পরিস্থিতিতে উপস্থিত হয়: যেখানে মূলতে একটি স্থান থাকে (উদাহরণস্বরূপ rএবং lচতুর্থ কলামের মধ্যে) এবং যেখানে অক্ষরগুলি প্যাড করা প্রয়োজন (যেমন প্রথম কলামের সমস্ত স্থান। আউটপুট অন্যথায়।

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

আপনার দ্রষ্ট্রে অবশ্যই কমপক্ষে দুটি লাইন প্রতিটি কমপক্ষে দুটি অ-নিউলাইন অক্ষরের সাথে থাকতে হবে এবং এর নিজস্ব ট্রান্সপোজ হওয়া উচিত নয় (আউটপুট উত্সটির সাথে অভিন্ন হতে পারে না cannot)

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

এটি কোড গল্ফ: বাইট জেতে সংক্ষিপ্ততম কোড।


এটি কি সত্যিকারের কুইন হওয়া দরকার?
lirtosiast

2
@ থমাসকওয়া বিরোধিতা করেছেন?
মার্টিন এন্ডার

@ মার্টিনবাটনার সম্ভবত এমন একটি ভাষা আছে যেখানে আক্ষরিক প্রতিস্থাপন প্রতিধ্বনিত হয়। শুধু ক্ষেত্রে।
lirtosiast

@ থমাসকওয়া যতক্ষণ তা নির্দিষ্ট করে দেওয়া সমস্ত বিধি অনুসরণ করে ততক্ষণ ঠিক।
লুক

বাহ্যিক গ্রন্থাগারগুলির ব্যবহার (যেমন জাভাস্ক্রিপ্টে লোডাশ) নিষিদ্ধ?
মামা ফান রোল

উত্তর:


5

সিজেম, 14 বাইট

{`"_~".+N*}
_~

এটি এখানে পরীক্ষা করুন।

সংক্ষিপ্ততর হওয়ার পরে, সম্ভবত ফিশন সমাধানের চেয়ে কিছুটা কম আকর্ষণীয়।

ব্যাখ্যা

{       e# Quine framework. Runs the block while another copy of it is on the stack.
  `     e# Stringify the block.
  "_~"  e# Push the remaining code as a string.
  .+    e# Element-wise append... essentially puts the two strings in a grid and 
        e# transposes it.
  N*    e# Join with linefeeds.
}_~

10

বিদারণ , 17 বাইট

এখনও কুইন্সের জন্য আমার প্রিয় ভাষা ...

'"
!0
0+
;!
DN
"!

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

ব্যাখ্যা

এটি বেসিক ফিশন কুইনের সাথে বেশ মিল । বস্তুত, যদি তার জন্য ছিল না রুল "অন্তত দুটি অ সম্পর্কে newline অক্ষর সাথে অন্তত দুই লাইন থাকতে হবে", আমি কেবল পক্ষান্তরিত পারতেন যে এবং প্রতিস্থাপন Rসঙ্গে D। এই নিয়মটি যদিও কিছুটা আকর্ষণীয় করে তোলে কারণ আমাদের অন্য একটি লাইন মুদ্রণ করা দরকার।

নিয়ন্ত্রণ প্রবাহ Dদক্ষিণে একক পরমাণু দিয়ে শুরু হয় । যেহেতু এটি আঘাত করে "এটি চারপাশে মোড়ানো এবং মুদ্রণ করবে

'!0;D

STDOUT এর মতো, এটি কীভাবে স্বাভাবিক কুইনে হবে to '!তারপরে পরমাণুর ভরকে অক্ষরের কোডে সেট করে !0টেলিপোর্টার যা দ্বিতীয় কলামে, যেখানে এটি এখনও দক্ষিণ চলন্ত এর থেকে পরমাণু transports হয়।

সঙ্গে +আমরা মান বাড়ায় পরমাণু ভরের "!N!মুদ্রণ উদ্ধৃতি, লাইনফিড, উদ্ধৃতি। STDOUT এখন এর মতো দেখাচ্ছে:

'!0;D"
"

চারপাশে মোড়ানো পরে, পরমাণু অন্য একটি আঘাত "এবং এখন দ্বিতীয় লাইন ভারব্যাটিম মুদ্রণ:

'!0;D"
"0+!N!

আমরা এখন সম্পন্ন করেছি। পরমাণু আবার টেলিপোর্টার ব্যবহার করে এবং এর মধ্যে অবতরণ করে ;যা এটি ধ্বংস করে এবং এর ফলে প্রোগ্রামটি সমাপ্ত করে।

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


3

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

$=_=>[...(_=`$=${$};$()`.split`
`)[0]].map((x,y)=>_.map(v=>[...
v][y]).join``).join`
`;$()

খারাপ না.

ব্যাখ্যা

এখানে স্ট্যান্ডার্ড কোয়েন ফ্রেমওয়ার্ক:

$=_=>`$=${$};$()`;$()

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



2

বেফুঞ্জ -৩৩ , 57 বাইট

^
_^
,@
+,
5*
52
,+
*9
28
+|
9
8#
|!
 ,
##
!:
,^
#
:
^
""

এটি প্রতিটি অক্ষরকে স্ট্যাকের প্রথম কলামে রেখে দেওয়া হয়েছে (উদ্ধৃতি নিজেই বাদে), তারপরে প্রতিটি আইটেমটি স্ট্যাকের বাইরে মুদ্রণ করে। এর পরে, এটি উদ্ধৃতিটি মুদ্রণ করে, একটি নতুন লাইন প্রিন্ট করে এবং তারপরে দ্বিতীয় কলামে চলে যায়। এটি একই কাজ করে একটি নতুন লাইন প্রিন্ট করে।

আপনি এটি শিরোনামের লিঙ্কে পরীক্ষা করতে পারেন, তবে আপনার নিজের কোডটি উইন্ডোতে অনুলিপি করতে হবে। আপনি যদি 'ধীর' বোতামটি আঘাত করেন তবে এটি আপনাকে পয়েন্টারটির যে পথটি এবং এটি স্ট্যাকটি প্রদর্শন করবে।


দ্বিতীয় স্তম্ভের উক্তিটি আমার ফিশন উত্তরে যেমন করা হয়েছিল তেমনি শীর্ষে স্থানান্তর করা কি আরও ছোট হতে পারে?
মার্টিন এন্ডার

আমি উদ্ধৃতিটি শীর্ষে স্থানান্তর করতে এবং দ্বিতীয় কলামটি পুনরায় সাজিয়ে তুলতে এবং এটি এখনও কাজ করতে পারি, তবে এটি এখনও শেষ হয় 57 বাইট থেকে যেহেতু প্রথম কলামটি এখনও একই উচ্চতা হতে পারে
কেভিন ডাব্লু।

এইচএম ঠিক আছে, আমি বুঝতে পেরেছি এটি সম্ভবত আপনাকে "একবারে উত্পন্ন করার অনুমতি দেয় , যাতে আপনি প্রথম কলাম থেকে দ্বিতীয়টিতে কিছু কোড স্থানান্তর করতে পারেন।
মার্টিন এেন্ডার

1

পাইথন 2, 91 75 69 বাইট

s='#%r;print"s#\\n="+"\\n".join(s%%s)';print"s#\n="+"\n".join(s%s)
##

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

ব্যাখ্যা:

এটি স্ট্যান্ডার্ড কুইনের একটি পরিবর্তন ব্যবহার করে:

s='s=%r;print s%%s';print s%s

পরিবর্তনের পরে:

s='s=%r;print"\\n".join(s%%s)';print"\n".join(s%s)

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

এখনই এটি সঠিকভাবে মুদ্রণের জন্য, আমাকে #প্রথম দুটি লাইনের শেষে মুদ্রণ করতে হবে। সুতরাং আমি প্রথম দুটি অক্ষরটি স্ট্রিং থেকে সরিয়ে নিয়েছি sএবং মুদ্রণের #আগে যাদের মুদ্রণ করেছি s%s। আমি একটি নতুন লাইনের আক্ষরিক অপসারণ করে কিছু বাইট সংরক্ষণ করার #শুরুতে একটি রেখেছিলাম s

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