জিমি তার প্ল্যাটফর্ম থেকে পড়ে যাবে?


29

গল্পের

আমার বন্ধু জিমির সাথে দেখা করুন:

/o\

জিমি একটি ছোট চরিত্র যিনি প্ল্যাটফর্মে দাঁড়াতে পছন্দ করেন। এখানে জিমি নিরাপদে একটি প্ল্যাটফর্মে দাঁড়িয়ে আছে:

         /o\
  -------------

এখন, জিমির ভারসাম্য সম্পর্কে ভাল ধারণা রয়েছে, তাই তিনি প্ল্যাটফর্মের এক পা দিয়ে নিরাপদে দাঁড়াতে পারেন, যেমন:

   /o\
    -------------------

যদিও তিনি প্ল্যাটফর্মের বাইরে দুটি বা ততোধিক দেহের অংশ নিয়ে দাঁড়িয়ে থাকেন, তবে সে পড়ে যাবে। এই দুটোই উদাহরণ যেখানে জিমি পড়বে:

/o\                                       /o\
  ----------        ----------------------   

চ্যালেঞ্জ

আপনার চ্যালেঞ্জ হ'ল জিমির প্ল্যাটফর্ম এবং অবস্থানের সাথে একটি স্ট্রিং দেওয়া নির্ধারণ করার জন্য একটি প্রোগ্রাম লিখতে, যদি জিমি না পড়েই প্লাটফর্মে দাঁড়াতে পারে।

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

    1. আপনি কোনও যুক্তিসঙ্গত ফর্ম, ইনডাকশন ফাংশন এবং স্ট্যান্ডার্ড ইনপুট দিয়ে ইনপুট নিতে পারেন। যদি আপনার ভাষা অন্যান্য ইনপুট পদ্ধতি সমর্থন না করে তবে কেবলমাত্র হার্ড-কোডিংয়ের অবলম্বন করুন।
  • আউটপুট: বুলিয়ান সত্য এবং মিথ্যা মান দেয় বা যথাক্রমে সত্য / মিথ্যা উপস্থাপন করতে পূর্ণসংখ্যা 1 বা 0 করে।

    1. জিমি প্লাটফর্মে থাকতে পারে কি না - বুঁইয়ের মানটি ভিত্তি করে তৈরি - যদি জিমি প্ল্যাটফর্মে থাকতে পারে তবে সত্য, অথবা মিথ্যা যদি সে পড়ে যায় তবে।
  • প্ল্যাটফর্মের আকারটি নির্বিচারে এবং ইচ্ছামত পরিবর্তন করা যেতে পারে। আপনার প্রোগ্রামটির জন্য অ্যাকাউন্ট করা উচিত।

    1. প্ল্যাটফর্মটি শূন্যের দৈর্ঘ্য হতে পারে না, এবং প্ল্যাটফর্মটি অবশ্যই সম্পূর্ণ হতে হবে (প্ল্যাটফর্মের কোনও গর্ত নেই)।

    2. মনে রাখবেন জিমি তার শরীরের দুটি অংশ প্ল্যাটফর্মটি বন্ধ করে দিলে পড়ে যায়। একটি শরীরের অঙ্গ তার দেহের একটি ASCII চরিত্র।

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

  • নিষিদ্ধ যে স্ট্যান্ডার্ড লুফোলগুলি সম্পর্কে সচেতন হন ।

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

         /o\               ✔️ TRUE
  -------------

/o\                        ✔️ TRUE
 ----------

                    /o\    ❌ FALSE
  ------------------

               /o\         ❌ FALSE
  -------

    /o\                    ❌ FALSE
     -

স্কোরিং

এটি , তাই সর্বনিম্ন বাইট গণনা জয়।

লিডারবোর্ড

আপনি নীচের উইজেট / স্নিপেট প্রসারিত করে এই পোস্টের জন্য লিডারবোর্ডটি দেখতে পারেন। আপনার পোস্টটি র‌্যাঙ্কিংয়ে অন্তর্ভুক্ত করার জন্য, আপনাকে # header textনিম্নলিখিত তথ্য সহ একটি শিরোলেখ প্রয়োজন ( ):

  • ভাষার নাম (কমা ,বা ড্যাশ দিয়ে এটি শেষ করুন -), এরপরে ...

  • বাইট গণনা, আপনার শিরোনামে প্রদর্শিত শেষ সংখ্যা হিসাবে।

উদাহরণস্বরূপ, JavaScript (ES6), 72 bytesবৈধ, তবে Fortran, 143 bytes (8-bit)অবৈধ কারণ বাইট গণনা শিরোনামের শেষ সংখ্যা নয় (আপনার উত্তরটি 8 টি বাইট হিসাবে স্বীকৃত হবে - এর সুবিধা নেবেন না)।

<!-- Run the snippet to see the leaderboard. Report any bugs to @xMikee1 on Github -->    <iframe src="https://xmikee1.github.io/ppcg-leaderboard/?id=187586" width="100%" height="100%" style="border:none;">Oops, your browser is too old to view this content! Please upgrade to a newer version of your browser that supports HTML5.</iframe><style>html,body{margin:0;padding:0;height:100%;overflow:hidden}</style>


আমরা কি জিমির পরে পেছনের সাদা স্থান অনুমান করতে পারি? এছাড়াও যদি আপনি অক্ষরের অ্যারেগুলিকে অনুমতি দিচ্ছেন তবে কিছু ভাষায় সেগুলি সাদা স্থানের সাথে প্যাড করতে হবে।
নিক কেনেডি

@ নিক কেইনডি আপনি শ্বেতক্ষেত্র অনুসরণ করতে হবে না বা হোয়াইট স্পেসের কোনও পিছনে নেই for আমি এ বিষয়ে কঠোর নিয়ম স্থির করিনি।
কানেক্টিওরচার্জার

12
শিরোনামটি হ'ল " প্লাটফর্মের জিমি পতন হবে " এবং আপনার আউটপুট করতে হবে " প্ল্যাটফর্মের উপর জিমি থাকবে "। এই প্রত্যাশিত আচরণ?
tsh

6
দয়া করে আপনার পরীক্ষার কেসগুলি অনুলিপি এবং পেস্ট করা সহজ করার জন্য পুনরায় ফর্ম্যাট করতে পারেন?
শেগি

2
সত্য-মিথ্যা মানগুলি অদলবদল করার অনুমতি রয়েছে কি? (অর্থাত্ জিমি পড়লে সত্য এবং আউটপুট সত্য যখন তা ঘটে না?)
মিঃ এক্সকডার

উত্তর:


20

জেলি , 6 বাইট

n⁶Sċ2Ẓ

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

ব্যাখ্যা:

n⁶Sċ2Ẓ  args: z (e.g. [['/', 'o', '\\'], [' ', '-']] => 0)
        implicit return value: z ([['/', 'o', '\\'], [' ', '-']])
n⁶      dyad-nilad pair ([[1, 1, 1], [0, 1]])
 ⁶       4th command-line argument or space [4th CLA assumed absent] (' ')
n        vectorized inequality ([[1, 1, 1], [0, 1]])
  S     reduction by addition with base case 0 ([1, 2, 1])
   ċ2   dyad-nilad pair (1)
    2    literal (2)
   ċ     number of occurrences of right in left (1)
     Ẓ  primality (0)

26
কখনও কখনও আমি অবাক হয়ে দেখি যে মানবজাতি কতদূর এগিয়ে গেছে 6 বাইটে আপনি এটি পরীক্ষা করতে পারেন যে কেউ তাদের ডুমের কাছে প্ল্যাটফর্ম থেকে পড়ে যাচ্ছে কিনা।
IMustBeSomeone

4
@ আইমস্টবিউমন, আমি যদি আমার ডুমের কাছে একটি প্ল্যাটফর্ম পড়ে যাই, আমি চাইব যে কেউ আমাকে দ্রুত বলতে চান!
শেগি

18
@ শেগি আমি সবসময়ই মজার বিষয় ভাবতাম যখন লোকেরা একটি পরিচিতি দিয়ে চ্যালেঞ্জ জানায়: "যেহেতু আমরা এক্সের উপর খুব বেশি সময় ব্যয় করতে চাই না, কোডটি যতটা সম্ভব সংক্ষিপ্ত হওয়া উচিত।", যদিও কোড-গল্ফ এবং অভিনয় বেশিরভাগ ক্ষেত্রে বিপরীত হয়। যদি আমরা থেকে ( এন এন ) এর দিকে যাওয়া বাইট সংরক্ষণ করতে পারি , যিনি পারফরম্যান্সের প্রতি যত্নশীল হন, আমরা একটি বাইট বন্ধ পেয়ে গেলাম! ; পিO(log(n))O(nn)
কেভিন ক্রুইজসেন

1
আমি জেলিকে চিনি না, তবে Sসারিগুলির পরিবর্তে কলামগুলি কেন যোগ করবে? : এস আমি যদি উইকির দিকে সঠিকভাবে কোডটি দেখি তবে কোডটি করে: n⁶প্রতিটি অক্ষর পরীক্ষা করে দেখুন যে এটি কোনও জায়গার (যেমন ['/o\\', ' -'] -> [[1,1,1],[0,1]]) সমান নয় ; Sযোগফলের তালিকা (তবে কোনও কারণে এই সারিগুলির পরিবর্তে কলামগুলি যোগ করে .. তাই [[1,1,1],[0,1]] -> [1,2,1]); ċ22s পরিমাণ গণনা; ফলাফলটি নিখুঁতভাবে আউটপুট দেওয়ার পরে, এটি কোনও প্রাইম (তাই 2 বা 3) কিনা তা পরীক্ষা করে দেখুন। তবে আমার [[1,1,1],[0,1]]সমষ্টি হবে বলে আশা করা হত [3,1]..
কেভিন ক্রুইজসেন

1
@ কেভিন ক্রুইজসেন প্রাথমিক মান সহ সংযোজন (যা ভেক্টরাইজ করে) কমিয়ে আনার Sসমতুল্য । আপনি যা প্রত্যাশা করেছিলেন তা করে। 0;+/Ɗ0§S
এরিক আউটগল্ফার

19

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

হিসাবে ইনপুট লাগে (a)(b)। ফেরত পাঠায় 0 বা 1

a=>b=>b[a.search`o`]=='-'&/--/.test(b)

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

কিভাবে?

আমরা "o"প্রথম স্ট্রিংয়ে জিমির শরীরের মাঝের অংশের অবস্থানটি অনুসন্ধান করি এবং দ্বিতীয় স্ট্রিংয়ে একই পজিশনে একটি ড্যাশ রয়েছে।

b[a.search`o`] == '-'

একমাত্র ডেস্ক প্ল্যাটফর্মের সাথে জিমি এই পরিস্থিতিতে যেখানে অনিরাপদ হতে পারে কেবল সে ক্ষেত্রে:

/o\
 -

সুতরাং আমরা অতিরিক্তভাবে নিশ্চিত করে নিই যে প্ল্যাটফর্মটির প্রস্থ কমপক্ষে 2 :

/--/.test(b)

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

বিকল্প সংস্করণ যদি আমরা ধরে নিই যে জিমির নীচে সবসময় ড্যাশ বা ফাঁকা স্থান রয়েছে (যেমন ইনপুটটি আয়তক্ষেত্রাকার)।

a=>b=>b[a.search`o`]!=0&/--/.test(b)

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

একটি সংখ্যার মানকে একটি স্থানের জন্য 0 এবং একটি ড্যাশের জন্য NaN হ'ল এই সুবিধাটি গ্রহণ করে ।


কি দারুন. আপনি কিভাবে ব্যাখ্যা করতে পারেন যে কিভাবে কাজ করে?
কানেক্টইউরচার্জার

পছন্দ করেছেন
আর্নল্ড

3
জিনিয়াস! জেএস উত্তরগুলি সাধারণত ছোট হয় না।
কানেক্টিওরচার্জার


@Oliver জন্য ব্যর্থ হবে"/o\\\n__"
TSH

10

এক্সেল, 67 45 44 বাইট

=(MID(A2,FIND("o",A1),1)="-")*(TRIM(A2)>"-")

জিমিকে A1একটি প্ল্যাটফর্মে রাখুন A2

২ টি শর্ত পরীক্ষা করা হয়েছে:

  • oপ্ল্যাটফর্মে জিমির ধড় ( ) কি ?
  • প্ল্যাটফর্মটি কি কেবল আরও বেশি -?

1
@ কিতা সম্পাদনা প্রথম পাঁচ মিনিটের মধ্যে সম্পাদনা ইতিহাসে প্রদর্শিত হয় না।
ফান্ড মনিকার লসুইট

আমি যে সীমাবদ্ধ পরীক্ষা দিয়েছি তা থেকে, আমি মনে করি আপনি বদলে <>যেতে পারেন>
টেলর স্কট

9

পাইথন 3, 88 43 বাইট

ইনপুট দুটি স্ট্রিং সমন্বিত তালিকার আকারে দেওয়া হয়: প্রথম স্ট্রিংটি প্রথম লাইন; দ্বিতীয় স্ট্রিংটি দ্বিতীয় লাইন।

lambda a:sum(1-(" "in i)for i in zip(*a))>1

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

আর একটি সংস্করণ, ৪৩ বাইটের জন্য বেঁধে দেওয়া (আমি এটি ৪৩ এর চেয়ে কম পেতে পারি না):

lambda a,b:b[a.find("/"):][:3].count("-")>1

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

জো কিং এর টিপকে ধন্যবাদ 42 বাইট ডাউন।

পুরনো সংস্করণ:

lambda s:sum((s.split("\n")[1]+" "*len(s))[i]=="-"and s[i]!=" "for i in range(len(s)))>1

-২ বাইটস শ্রীওচিলিজম ও'জাইককে ধন্যবাদ।

এটি দুটি পৃথক ইনপুট নিয়ে কাজ করে, তারপরে সংশ্লিষ্ট বর্ণগুলি যুক্ত করে। এটি এমন জোড়গুলির সংখ্যাকে গণনা করে যেখানে দুটি চরিত্রই কোনও স্থান নয়, তারপরে যদি সেই সংখ্যাটি 1 এর চেয়ে বেশি হয় তবে সত্যটি প্রদান করে।


8

পার্ল 6 , 18 বাইট

{?/''B|Bq/}o&[~^]

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

দুটি প্যারামিটার নেয় এবং জিমি প্ল্যাটফর্মে থাকবে কি না তার একটি বুলিয়ান দেয়। এটি দুটি লাইন এক সাথে জোর করে এবং জিমির কোনও অংশ প্ল্যাটফর্মে রয়েছে কিনা তা পরীক্ষা করে কাজ করে।

ব্যাখ্যা:

             &[~^]   # String XOR operator
{          }o        # Combined with the anonymous function
 ?/       /          # That checks for the regex match
   ''B              # Unprintable, B, which is "/o" ~^ "--"
       |Bq           # Or B, q, which is "o\" ~^ "--"


6

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

a#b=[1|(p,'-')<-zip a b,p>' ']>[1]

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

আমি আমার নীচের কৌশলটি অন্য হ্যাশেল উত্তরের সাথে একত্রিত করে এটি পেয়েছি ।

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

x#'-'|x/=' '=1
x#y=0
(((>1).sum).).zipWith(#)

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

এটি প্লাটফর্মের শীর্ষে থাকা শরীরের অংশগুলি (অ-স্থানের অক্ষরগুলি) গণনা করে এবং তারপরে এটি 1 টির চেয়ে বড় হয় তা পরীক্ষা করে The কারণ দেহের অঙ্গগুলি বন্ধ না করে আমরা প্ল্যাটফর্মে দেহের অঙ্গগুলি গণনা করি that zipWith এটি শীর্ষ লাইনটি কেটে ফেলবে নীচের দৈর্ঘ্য হতে হবে এবং এইভাবে জিমির শরীরের অংশগুলি কেটে ফেলতে পারে। এটি আমাদের cycle" "তালিকার প্যাড করার মতো কিছু করতে বাধা দেয় ।


1
আপনি ইনফিক্সে রূপান্তর করে 2 বাইট কমিয়ে আনতে পারবেন না?
কোল

1
@ কোল ইয়েপ আমি সম্পাদনাটি করছি যখন আপনি মন্তব্য করেছেন :)
গম উইজার্ড

4

MathGolf , 6 14 বাইট

`^@╞^αmÆû-oñ╧╙

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

নিক কেনেডি উপস্থাপিত প্রান্ত মামলার জন্য অ্যাকাউন্টে 8 বাইট যুক্ত করতে হয়েছিল।

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

ব্যাখ্যা

`                duplicate the top two items
 ^               zip top two elements on stack
  @              rrot3
   ╞             discard from left of string/array
    ^            zip top two elements on stack
     α           wrap last two elements in array
      mÆ         explicit map using 5 operators
        û-oñ     push "-o" and palindromize to make "-o-"
            ╧    pop a, b, a.contains(b)
                 map block ends here
             ╙   max of list

ওহ, এটি আমার ম্যাথগল্ফ উত্তরের চেয়ে ভাল পদ্ধতির .. ইন্টারলিভের পরে আমি এটিকে সরাসরি "-o" এর জন্য পরীক্ষা না করে আবার আকারের 2 অংশে বিভক্ত করেছি।
কেভিন ক্রুইজসেন


@ নিক কেনেডি ভাল ক্যাচ! আমি কীভাবে কোডটি ঠিক করতে পারি এবং পোস্টটি পাস হয়ে গেলে তা আপডেট করব। এটি সম্ভবত কয়েকটি বাইট যুক্ত করবে যা দুর্ভাগ্যজনক।
ম্যাক্সবি

3

05 এ বি 1 ই (উত্তরাধিকার) , 9 8 7 বাইট

ζðм2ùgp

-1 বাইট ধন্যবাদ @ মিঃ এক্সকোডার এর সাথে যোগাযোগ করার জন্য ধন্যবাদ ðм2ù

দুটি স্ট্রিংয়ের তালিকা হিসাবে ইনপুট দিন।

কেবল 05AB1E এর উত্তরাধিকার সংস্করণে কাজ করে, কারণ ζস্ট্রিংগুলির একটি তালিকা পাশাপাশি অক্ষরের 2D তালিকাও স্থানান্তর করতে পারে, যখন ζনতুন 05AB1E সংস্করণটিতে কেবল অক্ষরের 2D তালিকার সাথে কাজ করে।

এটি অনলাইনে চেষ্টা করুন বা সমস্ত পরীক্ষার কেস যাচাই করুন

ব্যাখ্যা:

ζ        # Zip/transpose; swapping rows/columns, with space as default filler
 ðм      # Remove all spaces from each string
   2ù    # Only leave strings of size 2
     g   # Count how many there are left
      p  # Check if this is a prime (2 or 3)
         # (after which the result is output implicitly)

1
আপনার শিরোনাম লিডারবোর্ডটি ভেঙে দিয়েছে,
এসএমএইচ

@ সংযুক্তিউর্চার্জ আহ, সম্ভবত আমি bytesকোডটি সর্বদা লিঙ্কটি কোড-পৃষ্ঠায় লিঙ্ক করেছি যাতে আপনি জানেন যে এটি ইউটিএফ -8 এ এনকোড করা হয়নি তবে পরিবর্তে একটি কাস্টম এনকোডিং ব্যবহার করে। ;) আপনি যদি চান তবে আমি শিরোনামের নীচে এনকোডিং রাখার জন্য আমার উত্তর সম্পাদনা করতে পারি, তবে সত্যই লিডারবোর্ড কোডটি ইমো পরিচালনা করতে সক্ষম হবে।
কেভিন ক্রুইজসেন

আমার মনে হচ্ছে আমার 05 এবি 1 ই এর জন্য একটি বিশেষ কেস যুক্ত করা দরকার - কোডপেজ নিয়ে সমস্যা রয়েছে এমন একমাত্র ভাষা এটি। শীঘ্রই আসন্ন ঠিক করুন h
কানেক্টিওরচার্জার

1
একটি সংশোধিত রেইগেক্স নিয়ে আসতে স্ট্রাগলিং। আপাতত এটি একটি স্থায়ী বাগ হবে। আপনি যদি এখানে স্ক্রিপ্টটি অবদান রাখতে চান: github.com/xMikee1/ppcg-leaderboard/edit/master/docs/script.js । আমাকে পুরোপুরি পার্সিংয়ের বাইটগুলি রিফ্যাক্টর করতে হতে পারে।
কানেক্টিওরচার্জার

https://github.com/Adriandmen/05AB1E/wiki/Codepage?7ইউআরএলকে অবৈধ না করে 7 টি সর্বশেষ সংখ্যাটি তৈরি করতে আপনি কি URL টি সংশোধন করতে পারবেন না ?
এলএফ


3

ডায়ালগ এপিএল বর্ধিত, 11 10 8 বাইট

21⊥∧⌿⍤<

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

ব্যাখ্যা:

21⊥∧⌿⍤<  a monadic train
       <  Compare the input with the implicit prototype element - a space.
          Returns a boolean matrix of characters that are greater than 0x20
    ∧⌿⍤   and-reduce that, i.e. places where both Jimmy and a platform is
  1      base 1 decode, aka sum - the amount of body parts over the platform
2        is that greater-or-equal to 2?

-2 আদমকে ধন্যবাদ।



3

এক্সেল, 36 বাইট

=LEN(TRIM(MID(A2,FIND("/",A1),3)))>1

জিমি ইন A1, একটি প্ল্যাটফর্মেA2

জিমির অবস্থান সন্ধান করে এবং প্ল্যাটফর্মের 3 বাইট নেয় এবং স্পেসগুলি ছাঁটাই করে। ফলাফলের প্ল্যাটফর্মের দৈর্ঘ্য যদি দীর্ঘ হয় তবে জিমি দাঁড়িয়ে থাকে।


3

এক্সেল, 94 71 বাইট। ভিবিএ (এক্সেল), 87 বাইট

A1 = জিমি, A2 = প্ল্যাটফর্ম

-23 বাইট। ধন্যবাদ @ ওয়ার্নিশ।

=(FIND("-",A2)-FIND("/",A1)<2)*(FIND("\",A1)-LEN(A2)<2)*(TRIM(A2)<>"-")

?[(FIND("-",A2)-FIND("/",A1)<2)*(FIND("\",A1)-LEN(A2)<2)]*(len(replace([A2]," ",""))>1)


1
আপনি কি trimপরিবর্তে ব্যবহার করতে পারবেন না len(replace?
ওয়ার্নিশ

উহু! যে আমার মাথায় কখনও ডুবে না। হা হা @Wernisch :) ধন্যবাদ
remoel

3

/// , 85 93 87 বাইট

/~/\/\///\/o\\/(o)~ 
/
~
~/ (o) /(o)~ (o)-/(o)~- -/--~(o) - ~/) ~/)-~/o~/(-/1~-~/(~/)~ 

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

জিমি নিরাপদ থাকলে আউটপুট এর 1 টি। অন্যথায় কিছুই আউটপুট। (ইউনিারি 1 এবং 0)

/~/\/\///\/o\\/(o)~ 
/
~
~/ (o) /(o)~ (o)-/(o)~- -/--~(o) - ~/) ~/)-~/o~/(-/1~-~/(~/)~ //<INPUT HERE> 

উদাহরণ স্বরূপ:

/\/o\\/(o)// 
/
//
/// (o) /(o)// (o)-/(o)//- -/--//(o) - ///) ///)-///o///(-/1//-///(///)//         /o\
  ------------- 

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

পরে স্থান নোট করুন <INPUT HERE>

ব্যাখ্যা:

বিঃদ্রঃ! মন্তব্যের কারণে ব্যাখ্যা কোডটি চালানো যাবে না। মন্তব্যগুলি কোঁকড়া ধনুর্বন্ধনী বদ্ধ হয়। এছাড়াও, মূল কোডটি এমন একটি গল্ফ ব্যবহার করে যেখানে //প্রতিস্থাপন করা হয়েছে ~। এই কোডটি ব্যাখ্যা থেকে বাদ দেওয়া হয়েছে।

/\/o\\/(o)/            {replace Jimmy with a Jimmy with curvy arms, because slashes are hard to manipulate in this language}
/ 
/
/                      {remove unneeded spaces after Jimmy, but before the floor}

/
//                     {get rid of the line break

/ (o) /(o)/            {remove all the spaces before both Jimmy and the floor}
/ (o)-/(o)/            {for each floor tile, remove it and one space before Jimmy. This detects whether Jimmy lines up with the floor.}
                       {If Jimmy is before the floor, then there will be extra floor.}
                       {If Jimmy is behind the floor, then there will be extra spaces before Jimmy.}
/- -/--/               {Handle the case where there is a hole beneath Jimmy but he is still well-supported}

/(o) - //              {Handle the case where only Jimmy's head is on the floor. The space at the end of the code is necessary for this.}
/) //                  {The rest of the substitutions clean up the result and handle each of the possible results that could exist at this point}
/)-//
/o//
/(-/1/
/-//
/(//
/)//


              /o\   
               --
 {there is a space right before this comment. The comment is only here to make the space visible and explain itself.}

  • একটি বাগ ঠিক করতে +8 বাইট
  • স্ট্যান্ডার্ড ///গল্ফ ট্রিক প্রয়োগ করে -6 বাইট ।

1
উত্স কোডটি কিছু অদ্ভুত ইমোজির মতো দেখাচ্ছে। \\ (ও) - (ও) //
tsh


2

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

f a b=sum[1|(p,q)<-zip a$b++cycle" ",elem p"/o\\",q==' ']<2

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

ফাংশনটি তাই বলা হয়: f "/o\\ " " -- "

এটি কীভাবে কাজ করে (জন্য f "/o\\" " -"):

b++cycle" " - এর পরে অনেকগুলি স্পেস যুক্ত করে b জিমি সর্বদা একটি -বা এর উপরে থাকে তা নিশ্চিত করার জন্য (" -" →) এর →" - ..."

zip a$b++cycle" "- দুটি স্ট্রিং একসাথে জিপ করুন ( [('/',' '), ('o','-'), ('\\',' ')])

(p,q)<-zip a$b++cycle - জিপড তালিকার প্রতিটি জোড়ার জন্য

[1|(p,q)<-zip a$b++cycle" ",elem p"/o\\",q==' ']- এর একটি তালিকা তৈরি করে 1, যার দৈর্ঘ্য শর্তগুলি সন্তুষ্টকারী জোড় সংখ্যা:

elem p"/o\\"- শীর্ষ স্ট্রিংয়ের চরিত্রটি জিমির শরীরের অঙ্গগুলির মধ্যে একটি। (এই উদাহরণে তিনটি জোড় সন্তুষ্ট)

q==' '- নীচের স্ট্রিংয়ের অক্ষরটি একটি স্থান। (সন্তুষ্ট ('/', ' ')এবং দ্বারা('\\', ' ') )

সুতরাং, এই জুটিটি এমন এক হতে হবে যেখানে জিমির শরীরের একটি অংশ কোনও স্থানের উপরে।

কারণ এই উদাহরণে, দুটি জোড়া উভয় শর্ত পূরণ করে, তালিকাটি [1,1]

sum[1|(p,q)<-zip a$b++cycle" ",elem p"/o\\",q==' ']- এইগুলির যোগফল 1(অর্থাত্ তালিকার দৈর্ঘ্য) নিন, যা এই উদাহরণে2

sum[1|(p,q)<-zip a$b++cycle" ",elem p"/o\\",q==' ']<2- কোনও জায়গার উপরে শরীরের অংশের সংখ্যা 2 এর চেয়ে কম কিনা তা পরীক্ষা করুন this উদাহরণস্বরূপ, এটি নেই, তাই জিমি পড়ে যাবে। :(


আমি কেবল ভেবেছিলাম যে আমি আপনাকে জানাব যে আপনার উত্তর আমাকে আমার নিজের উত্তর ছোট করতে সাহায্য করেছে । সূতরাং ধন্যবাদ!
গম উইজার্ড


2

কোটলিন, 60 বাইট

fun String.c(b:String)=zip(b){i,j->i>' '&&j>' '}.count{it}>1

ব্যাখ্যা:

fun String.c  # Define an extension function on string, so we don't have to provide a first argument (and we also have string method calls for free)
(b:String)    # Pass the second string as argument
=             # Shorthand syntax for fun body
zip(b)        # Essentially a.zip(b). Creates a List<Pair> by joining both arrays. 
              # Takes care of trailing whitespace, because it will be the size of the smaller array
{i,j->        # Declare a transformer lambda as second function argument
i>' '&&j>' '} # This essentially translates to: If i!=' ' and j=='-'
.count{it}    # Count the true values
>1

কোড গল্ফ স্বাগতম! এটি অবশ্যই খুব সুন্দর প্রথম উত্তর।
কানেক্টিওরচার্জার

2

/// , 57 বাইট

/|/\/\///\/o\\/J| J/J*|
/|* /|  -/  | /|*-/|--/!|-/|*/|J|

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

চালানোর জন্য প্রোগ্রামের শেষে ইনপুট যুক্ত করুন। যদি জিমি প্ল্যাটফর্ম থেকে পড়ে যায় তবে খালি স্ট্রিংটি ফিরিয়ে দেয়, অন্যথায় বিস্মৃত বিন্দুর একটি স্ট্রিং।

  • /|/\/\//এর সাথে প্রতিস্থাপন |করে //, যা কোডটি সংক্ষিপ্ত এবং আরও পাঠযোগ্য উভয় করে তোলে ( |প্রতিটি প্রতিস্থাপনের সীমাবদ্ধ করতে ব্যবহৃত হয়)
  • /\/o\\/J| J/J*/জিমিকে Jব্রিভির জন্য প্রতিস্থাপন করে এবং স্থানটি তার বামে পরিবর্তিত করে* করে
  • পরবর্তী প্রতিস্থাপনটি নিউলাইনগুলি থেকে মুক্তি পেয়েছে।
  • /* /| -/ | //*প্ল্যাটফর্মের বাম দিকে স্থান এবং গুলি বাতিল করে । যদি দুটি বা ততোধিক স্থান অবশিষ্ট থাকে, জিমি বামদিকে পড়ছে, এবং প্ল্যাটফর্মটি মোছা হবে। এই অংশটি প্ল্যাটফর্মের ডানদিকে যে কোনও সাদা জায়গা সরিয়ে দেয়।
  • /*-/|--/!/ বাতিল *প্ল্যাটফর্মের দৈর্ঘ্য সহ ও । যদি কমপক্ষে দুটি -বাম থাকে তবে জিমি ডানদিকে পড়ছে না, তাই এগুলি একটি দ্বারা প্রতিস্থাপন করা হয়েছে !
  • /-/|*/|J// অবশিষ্ট প্রতিটি অক্ষর মুছে ফেলা হয় যা নয় !


1

রেটিনা 0.8.2 , 16 বাইট

 (.*¶).
$1
¶ ?--

এটি অনলাইন চেষ্টা করুন! লিঙ্কে পরীক্ষার স্যুট অন্তর্ভুক্ত। ব্যাখ্যা:

+`^ (.*¶).
$1

প্রথম লাইনে এখনও একটি স্থান রয়েছে এবং উভয় লাইনে এখনও একের বেশি অক্ষর রয়েছে, স্থানটি এবং পরবর্তী লাইনের প্রথম অক্ষরটি মুছুন। দ্রষ্টব্য: এটি ধরে নিয়েছে যে জিমির পরে কোনও পিছনে স্থান নেই। ট্রেলিং স্পেসের অনুমতি দেওয়ার প্রয়োজন হলে +1 বাইট প্রয়োজন।

¶ ?--

জিমির অধীনে কমপক্ষে দুটি টুকরো প্ল্যাটফর্ম রয়েছে কিনা দেখুন।



1

রুবি 2.5.3, 44 বাইট

->a,b{a.zip(b).map(&:join).grep(/\S-/).size>1}

দুটি অ্যারে হিসাবে ইনপুট নেওয়া হয়েছে। অবশ্যই সর্বাধিক গল্ফ-বান্ধব পদ্ধতির নয় (জিবি এর উত্তর দেখুন), তবে আমি zipফাংশনটি ব্যবহার করার জন্য কোনও অজুহাত পছন্দ করি ।


1

পাওয়ারশেল , 63..55 53 বাইট

-1 বাইট ধন্যবাদ ম্যাজি

param($j,$f)''+($f|% t*y|?{$j[$i++]-gt32})-match'- -'

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

দুটি লাইন হিসাবে ইনপুট নেয়।

Unrolled:

param($j,$f)            #Take $jimmy and $floor
''+                     #Implicitly converts next part to string
($f |% ToCharArray      #Convert $f to a char[] and...
    |?{                 #Only take the chars where...
        $j[$i++]-gt32   #The same indexed char in $j's ASCII # is > ' ' i.e. only get /o\
     }
)-match'- -'            #Arrays.ToString are joined with a space and we need 2 -'s

হাহ। আমি পাওয়ারশেলকে কখনই দুর্দান্ত গল্ফিংয়ের ভাষা হিসাবে বিবেচনা করি নি, তবে আমার ধারণা এটি আসলে খারাপ নয় that
কানেক্টিওরচার্জার

@ সংযুক্তিউর্চার্জার এটি পাইপলাইনের সাহায্যে খুব সুন্দর ঝরঝরে জিনিসগুলি করতে পারে তবে কয়েকটি জায়গা অবশ্যই রয়েছে যেখানে এটি পাছার এক বিশাল ব্যথা।
ভেস্কাহ

পাছা-বেদনাবিধ কারণে আমি কখনই এটি শিখতে বিরক্ত করিনি।
কানেক্টিওরচার্জার


1

সি # (ভিজ্যুয়াল সি # ইন্টারেক্টিভ সংকলক) , 44 40 39 বাইট

-4 বাইট জো কিংকে ধন্যবাদ

a=>b=>a.Zip(b,(x,y)=>x>y?y:0).Sum()>109

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



বেশ কাজ করে না; tio.run/##Sy7WTS7O/…
চার্লস

@ চারলেস আমি বিশ্বাস করি যে আমি এটিকে ঠিক করেছি এবং প্রক্রিয়াটিতে একটি বাইট সংরক্ষণ করেছি
মেয়াদোত্তীর্ণ ডেটা

এক্সপায়ার্ডডাটা হ্যাঁ, সুন্দর!
চার্লস

1

পাইথন 3.7 , 71 56 বাইট

lambda s:sum(j in'/o\\'and p=='-'for j,p in zip(*s))>1

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

সম্পাদনা: নীচে বেশ কয়েকটা বাইট ধন্যবাদ কমেছে!


1
হাই, কোড গল্ফ আপনাকে স্বাগতম! sদুটি জিনিস: আপনি নিজের উত্তরে ইনপুট ফর্ম্যাটটি নির্দিষ্ট করতে চাইতে পারেন (মনে হচ্ছে দুটি তালিকাগুলি হওয়া উচিত, একটি জিমির জন্য এবং প্ল্যাটফর্মের জন্য একটি?) এছাড়াও, কয়েকটি জায়গা রয়েছে যা আপনি বাইটগুলি সংরক্ষণ করতে পারেন: একটি তালিকা সংক্ষিপ্ত করার পরিবর্তে, আপনি কাঁচা পুনরুক্তি করতে পারেন (বন্ধনীগুলি সরান); পরিবর্তে চেক >=2, চেক >1; আপনি যোগফল করতে পারেন Trueএবং False1 এবং 0 এর মতো, যদি-অন্যটির দরকার হয় না। অবশেষে, একই ভাষায় একটি নতুন উত্তর পোস্ট করার আগে, আপনি উন্নতি করতে পারেন কিনা তা দেখতে আপনার আগের উত্তরগুলির দিকে নজর দেওয়া উচিত।
নীল

@ ব্লু হাই, অনেক ধন্যবাদ! এবং হ্যাঁ আমি ভবিষ্যতে এটি মনে রাখব। :)
মাইকেল

1

শেভরন, 84 87 বাইট

>^__>^j
^i<<0
^i<<^i+1
^h<^i>^j
->+2??^h=/
->-3
>^__>^p
^q<^i|2>^p
->+2??^q<--
><0
><1

এটি আমার নিজের সৃষ্টির মোটামুটি নতুন ভাষা - প্রোটোটাইপ দোভাষী, ডকুমেন্টেশন এবং উদাহরণস্বরূপ প্রোগ্রামগুলি https://github.com/superloach/chevron এ পাওয়া যাবে

ব্যাখ্যা:

  • >^__>^j - জিমিটিকে টিএক্সটি ইনপুট হিসাবে গ্রহণ করুন
  • ^i<<0 - সূচকে 0 তে সূচনা করুন
  • ^i<<^i+1 - ইনক্রিমেন্ট ইনডেক্স
  • ^h<^i>^j - সূচিতে জিমির চরিত্র পান
  • ->+2??^h=/ - জিমির বাম পাতে লুপ থেকে ঝাঁপ দাও
  • ->-3 - লুপের শুরুতে ফিরে আসা
  • >^__>^p - প্ল্যাটফর্মটিকে টিএক্সটি ইনপুট হিসাবে গ্রহণ করুন
  • ^q<^i|2>^p - জিমির অধীনে 3 টি অক্ষর কেটে ফেলুন
  • ->+2??^q<-- - যদি জিমির অধীনে 2 টি ড্যাশ থাকে তবে সত্যবাদী প্রস্থানে ঝাঁপুন
  • ><0 - মিথ্যা প্রস্থান
  • ><1 - সত্যবাদী প্রস্থান

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

0

সি (জিসিসি), 103 বাইট

i,j,l;f(char*s){for(i=0;*s-10;j=*s++-47?j:i)++i;l=strlen(s)>j+1;s+=j;return l&&*s+s[1]+(s[2]?:32)>109;}

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

যদি এটি ধরে নেওয়া যায় যে প্ল্যাটফর্মের পরে হোয়াইট স্পেস রয়েছে তবে এটি অনেক ছোট হবে ( 75 বাইট )।




0

ভি , 18 বাইট

0vt/"_dj.d3lVkp0#x

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

প্ল্যাটফর্মের জিমি পড়ে থাকলে আউটপুট সাদা স্থান p জিমি প্লাটফর্মের উপর থেকে থাকে তবে কিছু অ-হোয়াইটস্পেস আউটপুট করুন।


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