জল কি শেষ পর্যন্ত ট্যাঙ্কে পৌঁছেছে?


30

এএসসিআইআই আর্ট ওয়ার্ল্ডে রয়েছে জল, হ্যাশ ওয়াল এবং চিঠি প্রক্রিয়া।

আপনি হ্যাশ দেওয়াল দিয়ে তৈরি একটি ঘরে আছেন ( #চিহ্নগুলি):

#######
#     #
#     #
#     #
# ### #
#     #
#######

আপনি একটি এস জলের উত্স ( Sচিহ্ন) এবং একটি ই জলের ট্যাঙ্ক ( Eচিহ্ন) ইনস্টল করুন যা কোনও দিক থেকে জল পেতে পারে তবে আপনার কাছে কেবল একটি এস উত্স এবং একটি ই ট্যাঙ্ক রয়েছে।

#######
#  S  #
#     #
#     #
# ### #
#  E  #
#######

সুতরাং আপনাকে উত্সটি কোথায় নির্বাচন করতে হবে তা নির্বাচন করতে হবে select আপনি আপনার দক্ষতা এড়িয়ে যান।

কাজটি

আপনি উত্স এবং ট্যাঙ্ক সহ একটি ঘর প্রতিনিধিত্ব করে একটি স্ট্রিং সমন্বিত একটি ইনপুট পাবেন:

#######
#  S  #
#     #
#     #
# ### #
#  E  #
#######

জলটি শেষ পর্যন্ত ট্যাঙ্কে পৌঁছেছে কিনা তা আপনাকে খুঁজে বের করতে হবে। জল যদি সম্ভব হয় তবে নীচে বয়ে যায় এবং যদি সম্ভব হয় তবে বাম এবং ডানদিকে যায়। জল জমে না কারণ এটি উপরে যায় না।

সুতরাং, উপরের ইনপুটটির জন্য, ফলাফলটি হল:

#######
#  *  #
#  *  #
#*****#
#*###*#
#**O**#
#######

জল আনন্দের সাথে ট্যাঙ্কে পৌঁছেছে, সুতরাং আপনাকে অবশ্যই একটি সত্য মানের মূল্য আউটপুট করতে হবে।

তবে যদি জলটি ট্যাঙ্কে না পৌঁছায়:

#######
#S    #
#     #
#  E  #
# ### #
#     #
#######

#######
#*    #
#*    #
#* X  #
#*### #
#*****#
#######

তারপরে আপনাকে অবশ্যই একটি মিথ্যা মান আউটপুট করতে হবে।

জল শেষ পর্যন্ত ট্যাঙ্কে পৌঁছায় কিনা তা সিদ্ধান্ত নিতে একটি প্রোগ্রাম লিখুন। আপনার কোডটি যতটা সম্ভব সংক্ষিপ্ত হওয়া উচিত।

অনুমিতি

  • অনুমান করুন যে ইনপুটটি সর্বদা বৈধ থাকে (পুরো ঘরটি এস এবং ই সহ একটি আবদ্ধ আয়তক্ষেত্র অঞ্চল)।

  • ধরুন ইনপুট হিসাবে কেবলমাত্র একটি কক্ষ সরবরাহ করা হয়েছে।

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

আপনার প্রোগ্রামটি নিম্নলিখিত পরীক্ষার ক্ষেত্রে সত্যবাদী মানটি ফেরত পাঠানো উচিত:

#######
#  S  #
#     #
#     #
# ### #
#  E  #
#######

#######
#  S  #
#     #
#  E  #
#     #
#     #
#######

#######
#     #
#     #
# SE  #
# ### #
#     #
#######

###############################################
#                      S                      #
#                                             #
#                                             #
#                                             #
#               ###############               #
#                                             #
#  ##################     ##################  #
#                                             #
#                                             #
#                    #####                    #
#                      E                      #
###############################################

#######
#  S  #
#     #
#     #
# ### #
#   # #
### ###
## E ##
#     #
#######

নিম্নলিখিত পরীক্ষার ক্ষেত্রে একটি মিথ্যা মান:

#######
#S    #
#     #
#  E  #
# ### #
#     #
#######

#######
#     #
# SE  #
#     #
#     #
#     #
#######

#######
#     #
#  E  #
#     #
#  S  #
#     #
#######

####################################
#                                  #
#                                  #
#                                  #
#S             #                  E#
####################################

ট্রু ক্যাটাগরিতে দ্বিতীয় থেকে শেষ কক্ষ এবং ভুয়া বিভাগের শেষ কক্ষটি নির্লজ্জভাবে কোথ থেকে ধার করা চুরি করা হয়েছিল : মনু দ্বারা পরিচালিত (যিনি স্যান্ডবক্স পোস্টটি মুছে দিয়েছেন) from

ট্রু ক্যাটাগরির শেষ ঘরটি রেটিনার মার্টিন বাটনারের উত্তর থেকে


দ্রষ্টব্য: আমি আমার KOTH স্যান্ডবক্স পোস্ট মুছে ফেলেছি, আপনার চ্যালেঞ্জটি আরও ভাল দেখাচ্ছে :)
CommonGuy

কোনও ঘর পূরণ না হওয়া পর্যন্ত কি জল জমে না? এইভাবে জল সবসময় ট্যাঙ্কে পৌঁছায় যদি এবং যদি তারা একই ঘরে থাকে তবেই।
বব

1
সত্য / মিথ্যা চ্যালেঞ্জ (বা কয়েকটি শ্রেণীর সাথে শ্রেণিবিন্যাস চ্যালেঞ্জ) এ পরীক্ষার কেস ফর্ম্যাট করার পক্ষে পরামর্শ: আপনি আউটপুট দ্বারা পরীক্ষার কেসগুলি গ্রুপ করুন এবং গোষ্ঠীগুলি পৃথক করুন যাতে আপনি from / to/ সত্যিকারের বিটগুলি এড়াতে পারেন (যা অংশগ্রহণকারীদের সমস্ত পরীক্ষার প্রক্রিয়া সহজ করে তোলে কেস একবারে)।
মার্টিন এন্ডার

1
সুতরাং মূলত মাইনক্রাফ্ট তরল প্রবাহ যুক্তি। যদিও মাইনক্রাফ্টে আমি মনে করি আপনার সত্য পরীক্ষার ক্ষেত্রে তৃতীয়টি মিথ্যা প্রত্যাবর্তন করবে কারণ জলটি কেবল বাম দিকে চলে যাবে।
প্যাট্রিক রবার্টস

1
পড়ে যাওয়া-বালির জলের পদার্থবিজ্ঞানের কথা মনে করিয়ে দেয়।
ব্যবহারকারী 253751

উত্তর:


15

শামুক , 20 বাইট

\S{d(=\#n)?^#},!(t\E

0মিথ্যা মান এবং সত্যবাদী মানের জন্য মুদ্রণ 1

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

  • \SSশুরুতে ম্যাচগুলি
  • d নিচে দিক সেট করে
  • {...}, 0 বা তার বেশি বার ধনুর্বন্ধনীগুলিতে স্টাফের সাথে মেলে
  • =\#এমন একটি প্রতিবেদন যা #শামুকের আগে যদি চর থাকে তবে এটি সফল হয়
  • n উভয় দিকে 90 ডিগ্রি ঘুরিয়ে দেয়
  • (...)? বন্ধনীতে প্যাটার্নটি 0 বা 1 বারের সাথে মেলে
  • \ ​ একটি স্পেসের সাথে মেলে এবং শামুকটিকে তার উপরে সরিয়ে দেয়
  • !(... একটি নেতিবাচক দৃser়তা
  • t গ্রিডে কোনও তুলনামূলক স্কোয়ারে টেলিপোর্টগুলি
  • \E ম্যাচ E

আমি নিজের দ্বারা এই ভাষাটি সংকলন করতে চাই না। এর জন্য কি কোনও অনলাইন দোভাষী আছে?
ব্যবহারকারী48538

@ zyabin101 না, কোনও অনলাইন দোভাষী নেই।
feersum

ঠিক আছে, ডেনিস কল করার সময়। : পি আমার প্রজেক্টর কোথায়?
ব্যবহারকারী48538

5
i.imgur.com/dvWrAwP.png আমি নিজেই এটি তৈরি করেছি।
ব্যবহারকারী48538

ঠিক আছে, আমি চেষ্টা করেছি , তবে এটি সমস্ত পরীক্ষার ক্ষেত্রে 0 মুদ্রণ করছে তবে এটি আমার জন্য একটি। আমি কি ভুল করছি?
ডেনিস

11

স্লিপ , 20 + 2 = 22 বাইট

S>( ^4|^4(?|`#)^T)*E

সুতরাং স্লিপ এখনও আগের মতোই ভাঙ্গা, তবে একবারের জন্য এটি চ্যালেঞ্জ ছিল এটি আসলে করতে পারে। যদিও এটি গোলাপী হওয়ার জন্য এটি সত্যই ডিজাইন করা হয়নি, সুতরাং এটি কোনও ক্ষেত্রেই শামুককে পরাজিত করবে না: পি

rসমাপ্তির জন্য পতাকাটির প্রয়োজন (কোনও পুনরাবৃত্তি কক্ষ নেই)।

এটি অনলাইনে চেষ্টা করুন । আউটপুট সত্যের পক্ষে নেওয়া পথ, মিথ্যাচারের জন্য খালি।

S                 Match S
>                 Rotate pointer downward
(                 Either...
 <space>^4          Match a space and point downwards
 |                  or
 ^4                 Point downwards
 (?|`#)             Match # below then reset pointer
 ^T                 Either turn left or right
)*                ... 0+ times
E                 Match E

6

রেটিনা , 87 বাইট

বাইট গণনাটি আইএসও 8859-1 এনকোডিং ধরেছে।

+mT`E `S`(?<=^(?(1)!)(?<-1>.)*S.*¶(.)*)[E ]|.?S(?=(.)*¶.*#(?<-2>.)*(?(2)!)$)[E ]?
M`E
0

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

রেটিনাতে (বা সাধারণভাবে নেট নেটজেক্ট) 2 ডি স্ট্রিং প্রসেসিং যতটা সম্ভব সম্ভব, এটি ঠিক সংক্ষিপ্ত নয় ...

ব্যাখ্যা

+mT`E `S`(?<=^(?(1)!)(?<-1>.)*S.*¶(.)*)[E ]|.?S(?=(.)*¶.*#(?<-2>.)*(?(2)!)$)[E ]?

এটি একটি বন্যা-পূরণ যা পানিতে পৌঁছে যাওয়া সমস্ত কক্ষকে চিহ্নিত করে S। এটি এমন অক্ষরগুলির সাথে মিলিয়ে যায় যা পৌঁছতে পারে এবং তারপরে এগুলিকে মোডের Sসাথে Tট্রান্সপ্লিট করে। এই বন্যা ভরাট শূন্যস্থান এবং উভয়ই দিয়ে যায় E+শুরুতে পর্যন্ত আউটপুট পরিবর্তন স্টপ এই পুনরাবৃত্তি।

প্রকৃত রেজেক্স হিসাবে দুটি পৃথক কেস রয়েছে:

(?<=^(?(1)!)(?<-1>.)*S.*¶(.)*)[E ]

এটি একটি স্পেসের সাথে মেলে Eযা একটি এর ঠিক নীচে একটি ঘর Sভারসাম্যপূর্ণ মিলটি ভারসাম্যপূর্ণ গ্রুপগুলি ব্যবহার করে বর্তমান লাইনে উপসর্গ গণনা করে করা হয় যাতে আমরা নিশ্চিত করতে পারি যে অনুভূমিক অবস্থানটি একই। এই এক জল পড়ার যত্ন নেয়।

.?S(?=(.)*¶.*#(?<-2>.)*(?(2)!)$)[E ]?

এটি অত্যন্ত অনুরূপ: এটি একটির সাথে মিলিত হয় Sএবং এর আগে এবং পরে চরিত্রটি পাওয়া যায় তবে শর্ত হয় যে সরাসরি নীচের অক্ষরটি Sএকটি #। এটি জমির উপর দিয়ে ছড়িয়ে পড়া জলের যত্ন নেয়।

আমাদের কাজ শেষ হয়ে গেলে জল পৌঁছেছে কিনা তা নির্ধারণ করা খুব সহজ E। যদি এটি Eহয়ে থাকে তবে প্লাবন-ভরাটের স্ট্রিং থেকে সরানো হয়েছে, এবং যদি তা Eএখনও না থাকে। সুতরাং আসুন এর সংখ্যা গণনা করা যাক E:

M`E

কিন্তু এখন এটি 0(যা আমি মিথ্যা বিবেচনা করব) সত্যবাদী পরীক্ষার ক্ষেত্রে এবং 1(যেটাকে আমি সত্য বলে বিবেচনা করব) মিথ্যা পরীক্ষার ক্ষেত্রে cases 0এই ফলাফলের সংখ্যা গণনা করে আমরা এটি খুব সহজেই উল্টাতে পারি :

0

সম্পন্ন.


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