चुनौती
एक प्रोग्राम / फ़ंक्शन लिखें जो "छवि" को स्वीकार करता है और उस छवि से बने चित्र भूलभुलैया को आउटपुट करता है ।
इनपुट
आपके कार्यक्रम को दो तर्क स्वीकार करने चाहिए:
- मैं, से भूलभुलैया बनाने की छवि
- एस, एक बूलियन निर्दिष्ट करता है कि भूलभुलैया के समाधान को प्रदर्शित करना है या नहीं
मुझे निम्नलिखित रूप में दिया गया है:
.......
.#####.
.#####.
#######
.#####.
.#####.
.......
जहाँ #
समाधान पथ में शामिल होने वाली .
कोशिकाएँ हैं और कोशिकाओं को बाहर रखा जाना है। जब तक वे एक-दूसरे से अलग होते हैं, तब तक आप अपने चयन के किसी भी चरित्र के साथ 's' .
, #
और नए सिरे से स्वैप कर सकते हैं । वैकल्पिक रूप से, आप इनपुट छवि का एक वास्तविक बिटमैप स्वीकार कर सकते हैं।
उत्पादन
आपका परिणामी भूलभुलैया निम्नलिखित रूप में होना चाहिए:
###############
# #
# ### ####### #
# #.........# #
# #.#######.# #
# #.#.......# #
###.#.#########
....#.#........
#####.#.#######
# ...#..... #
# #.#######.# #
# #.........# #
# ####### ### #
# # # #
###############
जहां #
दीवारों को .
निरूपित किया जाता है, पथ के कुछ हिस्सों को दर्शाते हैं जो समाधान का हिस्सा हैं, और रिक्त स्थान को समाधान से बाहर रखा गया है। .
के रिक्त स्थान द्वारा प्रतिस्थापित किया जा सकता है, अगर एस गलत है। फिर से, पात्रों को आपके चुनने के अन्य पात्रों के साथ स्वैप किया जा सकता है या आप हाइलाइट किए गए समाधान के साथ भूलभुलैया का एक वास्तविक बिटमैप आउटपुट कर सकते हैं।
अतिरिक्त जानकारिया
- पथ एक कक्ष चौड़ा होना चाहिए (खाली स्थान पथ का विशाल पूल नहीं हो सकता है)
- भूलभुलैया में कोई लूप नहीं होना चाहिए
- भूलभुलैया पूरी तरह से जुड़ा होना चाहिए (सभी कोशिकाओं को प्रवेश / निकास से पहुंच योग्य होना चाहिए)
- भूलभुलैया को दीवारों से घिरा होना चाहिए (जब तक कि उसका प्रवेश द्वार / निकास न हो)
- समाधान पथ में डेड-एंड शामिल नहीं होना चाहिए
- भूलभुलैया के लिए ठीक 1 प्रवेश द्वार और 1 निकास होना चाहिए
- प्रवेश और निकास को ग्रिड के किनारे से जोड़ा जाना चाहिए और समाधान पथ में शामिल सेल से सटे होना चाहिए
- आप चुन सकते हैं कि प्रवेश और निकास कहां रखा गया है
- आप मान सकते हैं कि दिए गए इनपुट छवि से एक वैध पथ का निर्माण किया जा सकता है
(स्पष्टीकरण के लिए जोड़ा गया) नीचे दिए गए आरेख से पता चलता है कि इनपुट छवि के लिए समाधान पथ कैसे सहसंबद्ध है:
Input (I): | Output: | Corresponding Cells:
| | (@'s denote #'s from I)
| |
....... | ############### | ###############
.#####. | # # | # #
.#####. | # ### ####### # | # ### ####### #
####### | # #.........# # | # #@.@.@.@.@# #
.#####. | # #.#######.# # | # #.#######.# #
.#####. | # #.#.......# # | # #@#@.@.@.@# #
....... | ###.#.######### | ###.#.#########
| ....#.#........ | .@.@#@#@.@.@.@.
| #####.#.####### | #####.#.#######
| # ...#..... # | # @.@#@.@.@ #
| # #.#######.# # | # #.#######.# #
| # #.........# # | # #@.@.@.@.@# #
| # ####### ### # | # ####### ### #
| # # # # | # # # #
| ############### | ###############
| |
परीक्षण के मामलों
जल का उदाहरण विकिपीडिया से लिया जा सकता है :
इनपुट:
..................
..................
.......####.......
......##..##......
.....##....##....#
.....#......#...##
.#############.##.
##..############..
#...###########...
#...##########....
#...##########....
#...##########....
#...##########....
....##########....
....##########....
....##########....
..................
..................
आउटपुट (S = गलत):
#####################################
# # # # # # #
# ### ### ### # # ##### ### ### ### #
# # # # # # # # # # #
# ### # ##### # ########### # ### # #
# # # # # # # # #
# # # ### ##### # ### ### # ### ### #
# # # # # # # # # # # # #
# ### # ##### ##### ### ##### # # ###
# # # # # # # # #
### ####### ### ### # ### ##### ### #
# # # # # # # # # # #
# ### ##### # ### ####### # # # # # #
# # # # # # # #
# # ##### ############# ### ### ### #
# # # # # # # # # #
# ### # ####### # ### ### # # ### # #
# # # # # # # # # #
# # # ### ######### # # ##### # #####
# # # # # # # # # # # #
# ##### # # ##### # ##### # # ### # #
# # # # # # # # # # #
# ### ### ### # ### # ##### ####### #
# # # # # # # # # #
# # # # ####### # ### # ##### # ### #
# # # # # # # # # # #
### # # # # # ############# # ### # #
# # # # # # # # # # #
##### # # ##### ####### # ### ##### #
# # # # # # # # #
##### # # # # ####### # ### #########
# # # # # #
# ### ######### ############# # #####
# # # # # # # # #
# # ######### # ####### ####### ### #
# # # #
#####################################
आउटपुट (S = true):
#####################################
# # # # # # #
# ### ### ### # # ##### ### ### ### #
# # # # # # # # # # #
# ### # ##### # ########### # ### # #
# # # #....... # # # # #
# # # ### #####.# ###.### # ### ### #
# # # # #...# # #...# # # # #
# ### # #####.##### ###.##### # # ###
# # # ...# # #... # # #..
### #######.### ### # ###.##### ###.#
# # #.# # # #.# # #...#
# ### #####.# ### #######.# # # #.# #
# #.......#.............#...# #...# #
# #.#####.#############.###.###.### #
#...# #.......#.....#...#.#...# # #
#.### # #######.#.###.###.#.#.### # #
#.# # # .......#...#.#...#...# #
#.# # ###.#########.#.#.##### # #####
#.# # #.#.......#.#...#...# # # #
#.##### #.#.#####.#.#####.#.# ### # #
#. #.#...#...#.#.....#.# # # #
#.### ###.###.#.###.#.#####.####### #
#. # # #.....#.#...#.#..... # #
#.# # # #######.#.###.#.##### # ### #
..# # # #...#...#.....#.....# # # #
### # # #.#.#.#############.# ### # #
# # # #.#...#.........#...# # # #
##### # #.#####.#######.#.### ##### #
# # #.#...#.......#.#...# #
##### # #.#.#.#######.#.###.#########
# # ...#.........#..... # #
# ### ######### ############# # #####
# # # # # # # # #
# # ######### # ####### ####### ### #
# # # #
#####################################
बिटमैप उदाहरण (ऊपर जैसा भूलभुलैया):