একটি বাঁকানো "হ্যালো ওয়ার্ল্ড!" তৈরি করুন


31

আপনার কাজটি বেশ সহজ, এমন একটি প্রোগ্রাম লিখুন যা প্রিন্ট করে Hello, world!যে মুচড়ে এমন কোনও প্রোগ্রাম তৈরি করে যা মুদ্রণ করে Twister!

স্ট্রিংগুলি কীভাবে পাকানো হয়

মোচড়ানো অ্যালগরিদম খুব সহজ। প্রতিটি কলামটি তার সূচকে নীচে স্থানান্তরিত হয় (কল 0 টি 0 নীচে সরানো হয়, 1 টি 1 সরানো 1, ...)। শীর্ষে কলাম শিফট মোড়ানো। এটি কিন্ডা এর মতো দেখাচ্ছে:

a
ba
cba
----
 cba
  cb
   c

শীর্ষে মোড়ক লাইনের নীচে সবকিছু সহ। বাস্তব উদাহরণ:

Original:
\\\\\\\\\\\\
............
............
............

Twisted:
\...\...\...
.\...\...\..
..\...\...\.
...\...\...\

(আপনার প্রিয় ভাষার আরও উদাহরণ এবং একটি টুইটারগুলি এখানে রয়েছে )

স্কোরিং

আপনার প্রোগ্রামটি অবশ্যই প্যাডযুক্ত আয়তক্ষেত্র হতে হবে। এটি কোড-গল্ফ তাই সর্বনিম্ন বাইট গণনা জয়!

বিধি

  • আপনার প্রথম প্রোগ্রাম অবশ্যই মুদ্রণ করা উচিত Hello, world!। কেবলমাত্র একটি ট্রেলিং নিউলাইন অনুমোদিত allowed
  • আপনার প্রথম এবং দ্বিতীয় প্রোগ্রামগুলি অবশ্যই একই ভাষায় থাকতে হবে।
  • আপনার দ্বিতীয় প্রোগ্রামটি অবশ্যই মুদ্রণ করবে Twister!। কেবলমাত্র একটি ট্রেলিং নিউলাইন অনুমোদিত allowed
  • আপনার প্রোগ্রামে কমপক্ষে 2 টি সারি এবং 2 টি কলাম থাকতে হবে।

3
জেলির কোড পৃষ্ঠাতে , লাইনফিডটির সাথে সম্পর্কিত চরিত্রটি (এবং, সমস্ত উদ্দেশ্যে, এর মতো কাজ করে) কোড পয়েন্ট 127 (এএসসিআইআই ডেল) রয়েছে। কোড পয়েন্ট 10 (ASCII লাইনফিড) সহ অক্ষরটির গ্লাইফ রয়েছে ½এবং এটি একটি সংখ্যার বর্গমূল গ্রহণ করে। এই চ্যালেঞ্জের জন্য দু'জনের মধ্যে কোন একটিকে নিউলাইন হিসাবে বিবেচনা করা উচিত?
ডেনিস

ডার্ন, আমিই কেবল সেই আশা করি যে "ট্যুইস্টেড হ্যালো ওয়ার্ল্ড" বিকৃত অর্থে "বাঁকানো" ব্যবহার করছিল তাই আমরা এর পরিবর্তে "বিদায় ক্রুয়েল ওয়ার্ল্ড" এর মতো কিছু আউটপুট করবো ..
দাসবিসটো

@ ডেনিস আমি মনে করি এই ক্ষেত্রে আরও ভাল ব্যবহার করা জেলি নিউলাইন হবে।
জে আতকিন

@ জ্যাটিন ঠিক আছে, স্পষ্ট করার জন্য ধন্যবাদ। আমি আমার উত্তর অনুসারে আপডেট করেছি।
ডেনিস

উত্তর:


10

জেলি , 33 31 29 বাইট

মূল

“ɗ⁻%OḶ$“¡¦ḟṠ»Ṫ
“ɗ⁻%OḶ$“¡¦ḟṠ»Ḣ

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

পাকান

“ɗ⁻%OḶ$“¡¦ḟṠ»Ḣ
“ɗ⁻%OḶ$“¡¦ḟṠ»Ṫ

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

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

প্রতিটি প্রোগ্রামে প্রতিটি লাইন একটি লিঙ্ক সংজ্ঞায়িত করে। শেষটি হ'ল মূল লিঙ্ক, এবং প্রোগ্রামটি শুরু হওয়ার পরে এটি কার্যকর করা হয়। যেহেতু প্রথম লিঙ্কটিতে কোনও রেফারেন্স নেই, তাই এটি সহজভাবে উপেক্ষা করা হয়।

উভয় প্রোগ্রামের জন্য, জেলির স্ট্যাটিক ডিকশনারি সংক্ষেপণ ব্যবহার “ɗ⁻%OḶ$“¡¦ḟṠ»করে তালিকাটি সরবরাহ ['Hello, world!', 'Twister!']করে ।

মূল এবং বাঁকা কোডের মধ্যে কেবলমাত্র পার্থক্যটি মূল লিঙ্কের শেষ অক্ষর। তালিকার প্রথম স্ট্রিং নির্বাচন করে এবং সর্বশেষটি নির্বাচন করে।


2
দেখে মনে হচ্ছে এটা চিত্কার করছে "পবিত্র sh * t"
ফেজ

42

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

print "  Hello, world!"[ 2::]
#rint "T w i s t e r !"[ ::2]

পাক:

print "T weils,twerrd!"[ ::2]
#rint "  H l o   o l !"[ 2::]

মূলত, Twister!স্ট্রিংয়ের বিজোড় সূচকগুলিতে ডেটা রাখে এবং তারপরে প্রথম দুটি (প্যাডিং) অক্ষর অপসারণ থেকে পরিবর্তে প্রতিটি অক্ষর অপসারণে পরিবর্তিত হয়।


এটি আমার পদ্ধতির চেয়ে অনেক বেশি স্মার্ট
wnnmaw

এটি কি হাস্যকর, 40 টি উর্ধ্বে?
জে আতকিন

@ জ্যাটিন আমি লক্ষ্য করেছি যে কিছু পাইথন সলিউশন সেগুলি প্রচুর পরিমাণে পেয়ে থাকে। এমন নয় যে আমি অভিযোগ করছি: ~)
পূর্কাকাডারী

শীতল উপায়:print " Hello, world!" [2::]
এরিক আউটগলফার

@ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ ওয়ার্কস, তবে আমি এটি এখনকার মতো রাখব।
পূর্কাকুডারী

17

বিদারণ , 215 162 56 53 50 বাইট

এখানে একটি সূচনা:

D1
\\
""
TH
we
il
sl
to
e,
r 
!w
"o
1r
;l
1d
;!
 "

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

মোচড় দেওয়া:

D"
\1
"\
T"
wH
ie
sl
tl
eo
r,
! 
"w
1o
;r
1l
;d
 !

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

ব্যাখ্যা

Hello, world!কোড মোটামুটি সহজ:

  • D একটি একক পরমাণু তৈরি করে নিচের দিকে চলে going
  • দুটি \(মিরর) এটি দ্বিতীয় কলামে অপসারণ করে।
  • "Hello, world!" প্রয়োজনীয় স্ট্রিং প্রিন্ট করে।
  • 1একটি পোর্টাল হয়। এটি পরমাণুটিকে 1পড়ার ক্রমে পরের দিকে টেলিপোর করে, দিকটি ধরে রাখে (এটিই এর পাশের একটি r)।
  • পরমাণুটি এখনও নীচে চলে যায়, ;এটিতে পরমাণুটিকে ধ্বংস করে এবং প্রোগ্রামটি সমাপ্ত করে।

Twister!কোডের জন্য নিয়ন্ত্রণ প্রবাহটি আরও কিছুটা ... বাঁকা ...

  • আবার, Dপরমাণু spawns।
  • \এটি ডানদিকে প্রতিস্থাপন করে 1
  • এখন পোর্টাল পরমাণুর পরেরটিতে প্রেরণ করে 1। পরমাণু আঘাত করে oযা কেবলমাত্র তার ভর পরিবর্তন করে, তবে আমরা এটিকে উপেক্ষা করতে পারি। কোডটি চারপাশে মোড়ানো হয় যাতে পরমাণু 1আবার একইভাবে হিট হয়, দুটি সারি নিচে রেখে যায়। আবার, আমরা এটিকে অগ্রাহ্য করতে পারি l, পরমাণুটি চারদিকে আবৃত হয় এবং 1আবার আঘাত করে । 1কোডে এখন আর কোনও কিছু নেই সুতরাং পরমাণুটি সমস্ত উপায়ে 1শীর্ষে ফিরে যায় ।
  • আরও একবার প্রান্তের চারপাশে মোড়কের পরে, পরমাণুটি আবার বিচ্ছিন্ন হয়ে গেছে \, এখন আবার নীচে নেমে যাচ্ছে।
  • "Twister!" প্রয়োজনীয় কোড মুদ্রণ করে।
  • 1পরমাণুটিকে আরও একবার টেলিফোর্ড করে, প্রথমটি পেরিয়ে যায় ;, তবে ;প্রোগ্রামটি বন্ধ করার জন্য আরও একটি অপেক্ষারত রয়েছে।

বাহ, এখন খুব কাছে! :) আমি নিশ্চিত যে আরও খাটো হওয়ার উপায় আছে ...
ফ্রাইআম দ্য এজম্যান

ছেলেরা কেন বিচ্ছেদ পছন্দ করে?
জে আতকিন

@ জ্যাটিন আমরা কেন করব না? :)
মার্টিন এন্ডার

@ মার্টিনবাটনার আমি বিশেষভাবে ভাবছিলাম কেন এই চ্যালেঞ্জের জন্য?
জে আতকিন

1
@ জ্যাটিন 2 ডি ভাষাগুলি উপযুক্ত বলে মনে হয়েছিল এবং ফিশনটি বিশেষত সহজ বলে মনে হয়েছিল কারণ আপনি প্রোগ্রামে এক বা একাধিক যথেচ্ছ এন্ট্রি পয়েন্ট বেছে নিতে পারেন।
মার্টিন এন্ডার

15

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

বিভাজন পন্থা # 3 (# 4 আমার প্রথম পোস্টটি সম্পাদনা করে এমন একটি গণনা করছে)।

R"Hello, " \"tri"
T;L"!dlrow"/"es!w

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

R;H"ldor w /"er!"
T"Le!ll,o""\"tsiw

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

ব্যাখ্যা

এটি আসলেই ফিশন সমাধানগুলির সবচেয়ে সহজ। উভয় প্রোগ্রামে দুটি এন্ট্রি পয়েন্ট রয়েছে: Rএকটি ডানদিকের পরমাণু এবং Lএকটি বামদিকের পরমাণু তৈরি করে। উভয় ক্ষেত্রেই ;তত্ক্ষণাত্ তাদের একটিটিকে ধ্বংস করে দেয়।

Hello, world!প্রোগ্রামে এখন , পরমাণু প্রথমে অর্ধেকটি স্ট্রিং মুদ্রণ করে "Hello, "তারপরে \এবং /(যা আয়না হয়) বামদিকে যাওয়ার পরে পরমাণুটিকে দ্বিতীয় রেখায় প্রতিবিম্বিত করে। "world!"(চলমান পরমাণুর দিক দিয়ে পড়ুন) বাকী স্ট্রিংটি মুদ্রণ করে। Lএখন কোনও অপ-বিকল্প এবং ;প্রোগ্রামটিকে বন্ধ করে এই অণুটিকেও ধ্বংস করে দেয়।

Twister!প্রোগ্রাম মূলত একই কিন্তু 180 ডিগ্রী দ্বারা আবর্তিত হয়। এবার, Lপরমাণু বেঁচে থাকবে এবং দিয়ে মুদ্রণ শুরু করে "Twist"\এবং /আবার অন্যান্য লাইন সম্মুখের দিকে এটি বদল, এখন ডান যাচ্ছে। "er!স্ট্রিংয়ের বাকী অংশ মুদ্রণ করে, Rএটি কোনও অপশন নেই এবং ;প্রোগ্রামটি সমাপ্ত করে।


অ্যামেজিং! আমি মনে করি এটি যতটা ছোট হিসাবে এটি পেতে পারে, পুনরায় ব্যবহারের পরিমাণটি চিত্তাকর্ষক।
FryAmTheEggman


4

জাপট, 67 61 57 বাইট

@ জ্যাটকিনকে 6 বাইট ধন্যবাদ সংরক্ষণ করা হয়েছে, @ ইয়ানকে 4 বাইট ধন্যবাদ

"Tzwzizsztzezzzzzzrzzzz!"rz;
"Hzezlzlzoz,z zwzorlzdz!"rz;

পাক:

"Hzezlzlzoz,z zwzorlzdz!"rz;
"Tzwzizsztzezzzzzzrzzzz!"rz;

এটি অনলাইনে পরীক্ষা করুন: আসল , পাকানো

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

"Tzwzizsztzezzzzzzrzzzz!"rz;  // Take this string and remove all "z"s.
"Hzezlzlzoz,z zwzorlzdz!"rz;  // Take this string and remove all "z"s.
                              // Implicit: output *last* expression

যদি এটি কাজ করে যা আমি মনে করি এটি করে তবে আপনি Twister!স্থানগুলি স্থান পরিবর্তন করে পিছনের স্থানটি সরিয়ে ফেলতে পারেন .
জে আতকিন 21

@ জ্যাটকিন এটি আসলে এর মতো কাজ করে না, তবে আমি সেভাবে একগুচ্ছ বাইট সংরক্ষণ করতে পারি। ধন্যবাদ!
ETH প্রোডাকশনগুলি

"T.w.i.s.t.e.r.!. . . . . "k".(newline)"H.e.l.l.o.,. .w.o.r.l.d.!"k".
জে আটকিন 21

ভিন্ন ফিলার চরিত্রের সাথে পড়া আরও সহজ হতে পারে ...
mbomb007

4
@ mbomb007 কখন থেকে একটি সাফল্য "পড়া সহজ"? : ডি
ইয়ো '

4

পাইথন, 398 414 380 456 বাইট *

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

এই সমাধানটি বিধিগুলি অনুসরণ করে না, কারণ এটি অনুমোদিত আউটপুট ছাড়াও ত্রুটি বার্তাগুলি মুদ্রণ করবে।

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

print'Hello, world!'
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     
#rint'Twister!'     

পাকলে পরিণত হয়

print'Twister!'
#rint'Twister!'
#rint'Twister!'
#rint'Twister!'
#rint'Twister!'
#rint'Twister!'
#rint'Hwister!'
#rint'Teister!'
#rint'Twlster!'
#rint'Twilter!'
#rint'Twisoer!'
#rint'Twist,r!'
#rint'Twiste !'
#rint'Twisterw'
#rint'Twister!o
#rint'Twister!'r
#rint'Twister!' l
#rint'Twister!'  d
#rint'Twister!'   !

আমি মনে করি আপনি প্রতিটি লাইনের স্থান সরিয়ে ফেলতে পারবেন, তারপরে শেষ লাইনটি পুরোপুরি সরিয়ে ফেলতে পারেন।
ETH প্রোডাকশনগুলি

আমি এটি করতে ভাবিনি যেহেতু এটি প্রাথমিক পাকানো চ্যালেঞ্জের নিয়মের বিরুদ্ধে ছিল, তবে ধন্যবাদ!
wnnmaw

আপনি কোডটি আপডেট করতে ভুলে গেছেন;)
ইটিএইচ প্রডাকশনগুলি

আমি বুঝতে পেরেছি এটি সত্যিই গুরুত্বপূর্ণ হবে না, তবে আমি এটি ভাল পরিমাপের জন্য করেছি
wnnmaw

1
আমি মনে করি আপনি ভুল বুঝেছেন। কোডটি প্যাডযুক্ত আয়তক্ষেত্র হতে হবে তবে আপনি rint 'প্রতিটি লাইনের স্থানটি সরাতে পারবেন ।
ETH প্রোডাকশনগুলি


1

ব্রেইনফাক, 467 367 285 বাইট

Untwisted

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

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

পাকান

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

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



@ জোকিং এই পরামর্শের জন্য আপনাকে ধন্যবাদ! কোনও ছোট "টুইস্টার!" কীভাবে খুঁজে পাবেন সে সম্পর্কে কোনও ধারণা প্রোগ্রামের পাশাপাশি?
অরথপ্লেক্স

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