এএসসিআইআই ম্যাজেড রেন্ডারিং 3000


42

আমি টাইপিং পছন্দ করি না, তাই আমি আমার মেজগুলি খুব সাধারণ বিন্যাসে আঁকছি:

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

এটা কি গোলকধাঁধা নয় ? অবশ্যই, আমি মনে করি সব mazes 3d হওয়া উচিত, অনুরূপ কিন্তু তিনি একই এই প্রতিদ্বন্দ্বিতা , সর্বোচ্চ A- জন্য ধাঁধা -ingness, তাই আমি (অনিচ্ছুকভাবে) নিজে এই মত চেহারায় ধাঁধা আপডেট হয়েছে:

+-----+     +-----------------------------+
|\     \    |\                             \
+ \     \   + \                             \
 \ \     \   \ +-----------------------+     \
  \ \     \   \|                       |\     \
   \ \     \   +-----------------------+ \     \
    \ \     \     +-----------------+   \ \     \
     \ \     \    |\                 \   \ \     \
      \ \     \   + \                 \   \ \     \
       \ \     \   \ \     +-----+     \   \ \     \
        \ \     \   \ \     \    |\     \   \ \     \
         \ \     \   \ \     \---+ \     \   \ \     \
          \ \     \   \ +-----+   \ \     \   \ \     \
           \ \     \   \|     |    \ \     \   \ \     \
            \ \     \   +-----+     \ \     \   \ \     \
             \ \     +-----------------+     \   \ \     \
              \ \                             \   \ \     \
               \ \                             \   \ \     \
                \ +-----------------------------+   \ +-----+
                 \|                             |    \|     |
                  +-----------------------------+     +-----+

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

বিধি

  • ইনপুট একটি একাধিক লাইন স্ট্রিং বা চরিত্র শুধুমাত্র গঠিত ম্যাট্রিক্স হবে " ", "|", "\", "+", "-", এবং নতুন লাইন।
  • আউটপুটটি গোলকধাঁধা দ্বারা বর্ণিত ধরণে গঠিত এবং " "and"#"
  • আমার আশ্চর্যজনক গাঁটছড়া ডিজাইনিং দক্ষতার কারণে, আপনি বৈধ নকশাকরণ ছাড়া অন্যত্র গোলকধাঁটির কাঠামো সম্পর্কে কিছুই ধরে নিতে পারবেন না।
  • 3 ডি-ইফিশনে (যে প্রক্রিয়াটি আপনার এখন অবশ্যই পূর্বাবস্থায় ফেলা উচিত) প্রত্যেককে #এই 3x4x7 অক্ষর ব্লকে রূপান্তর করা হয়েছিল:
    +-----+
    |\     \
    + \     \
     \ +-----+
      \|     |
       +-----+
    
  • সংলগ্ন ব্লকগুলি এই জাতীয়ভাবে একত্রিত হয়েছিল:
    +-----+-----+
    |\     \     \
    + \     \     \
     \ +-----+-----+
      \|\     \     \
       + \     \     \
        \ +-----+-----+
         \|     |     |
          +-----+-----+
    
    তবে লাইনগুলিতে যোগদান না করে, সুতরাং এটি আসলে এরকম দেখাচ্ছে:
    +-----------+
    |\           \
    + \           \
     \ \           \
      \ \           \
       \ \           \
        \ +-----------+
         \|           |
          +-----------+
    
  • অবতল স্থানগুলি কখনও কখনও অন্যান্য দেয়ালের অংশগুলি অবরুদ্ধ করে।
    +-----------+
    |\           \
    + \           \
     \ \     +-----+
      \ \     \    |
       \ \     \---+
        \ +-----+
         \|     |
          +-----+
    
  • ইনপুট বা আউটপুটে শ্বেতস্পেস অনুসরণ করা গ্রহণযোগ্য। (আপনার উত্তরটি যদি ইনপুটটিতে শ্বেত স্পেসের অনুসরণ করতে চায় তবে আপনাকে অবশ্যই উল্লেখ করতে হবে ))
  • শীর্ষস্থানীয় হোয়াইটস্পেস অবশ্যই ইনপুটটিতে ফাঁকা জায়গার সাথে মিলে যাবে।
  • আমি এখনও টাইপিং পছন্দ করি না, তাই সংক্ষিপ্ততম কোড জয়ী

পরীক্ষার কেস:

Input:
+-----+     +-----------------------------+
|\     \    |\                             \
+ \     \   + \                             \
 \ \     \   \ +-----------------------+     \
  \ \     \   \|                       |\     \
   \ \     \   +-----------------------+ \     \
    \ \     \     +-----------------+   \ \     \
     \ \     \    |\                 \   \ \     \
      \ \     \   + \                 \   \ \     \
       \ \     \   \ \     +-----+     \   \ \     \
        \ \     \   \ \     \    |\     \   \ \     \
         \ \     \   \ \     \---+ \     \   \ \     \
          \ \     \   \ +-----+   \ \     \   \ \     \
           \ \     \   \|     |    \ \     \   \ \     \
            \ \     \   +-----+     \ \     \   \ \     \
             \ \     +-----------------+     \   \ \     \
              \ \                             \   \ \     \
               \ \                             \   \ \     \
                \ +-----------------------------+   \ +-----+
                 \|                             |    \|     |
                  +-----------------------------+     +-----+

Output:
# #####
#     #
# ### #
# # # #
#   # #
##### #

Input:
+-----+
|\     \
+ \     \
 \ +-----+
  \|     |
   +-----+

Output:
#

Input:
      +-----------------+
      |\                 \
      + \                 \
   +-----+     +-----+     +-----+
   |\           \    |\           \
   + \           \---+ \           \
    \ \     +-----+   \ +-----+     \
     \ \     \    |    \|     |\     \
      \ \     \---+     +-----+ \     \
       \ \     +-----+     +-----+     \
        \ \           \    |\           \
         \ \           \   + \           \
          \ +-----+     +-----+     +-----+
           \|     |\                 \    |
            +-----+ \                 \---+
                   \ +-----------------+
                    \|                 |
                     +-----------------+

Output:
 ###
## ##
#   #
## ##
 ###

Input:
+-----------------------------------------------------------------------------------------------------+
|\                                                                                                     \
+ \                                                                                                     \
 \ +-----------------------------------------------+     +-----------------------------------------+     \
  \|                                               |\     \                                        |\     \
   +-----------------------------------------------+ \     \---------------------------------------+ \     \
      +-----+     +-----------------------------+   \ \     \     +-----------------------------+   \ \     \
      |\     \    |\                             \   \ \     \    |\                             \   \ \     \
      + \     \   + \                             \   \ \     \   + \                             \   \ \     \
       \ \     \   \ +-----------+     +-----+     \   \ \     \   \ +-----------------------+     \   \ \     \
        \ \     \   \|           |\     \    |\     \   \ \     \   \|                       |\     \   \ \     \
         \ \     \   +-----------+ \     \---+ \     \   \ \     \   +-----------------------+ \     \   \ \     \
          \ \     \     +-----+   \ \     \   \ \     \   \ \     +-----------------------+   \ \     \   \ \     \
           \ \     \    |\     \   \ \     \   \ \     \   \ \                             \   \ \     \   \ \     \
            \ \     \   + \     \   \ \     \   \ \     \   \ \                             \   \ \     \   \ \     \
             \ \     \   \ +-----+   \ \     \   \ \     \   \ +-----------------------------+   \ \     \   \ \     \
              \ \     \   \|     |    \ \     \   \ \     \   \|                             |    \ \     \   \ \     \
               \ \     \   +-----+     \ \     \   \ \     \   +-----------------------------+     \ \     \   \ \     \
                \ \     +-----------+   \ \     \   \ \     +-----------------------------------+   \ \     \   \ \     \
                 \ \                 \   \ \     \   \ \                                         \   \ \     \   \ \     \
                  \ \                 \   \ \     \   \ \                                         \   \ \     \   \ \     \
                   \ \     +-----------+   \ \     \   \ \     +-----------------------+     +-----+   \ \     \   \ \     \
                    \ \     \          |    \ \     \   \ \     \                      |\     \    |    \ \     \   \ \     \
                     \ \     \---------+     \ \     \   \ \     \---------------------+ \     \---+     \ \     \   \ \     \
                      \ \     \     +-----------+     \   \ \     \     +-----------+   \ \     \     +-----+     \   \ +-----+
                       \ \     \    |\                 \   \ \     \    |\           \   \ \     \    |\           \   \|     | 
                        \ \     \   + \                 \   \ \     \   + \           \   \ \     \   + \           \   +-----+  
                         \ \     \   \ +-----------------+   \ \     \   \ \           \   \ +-----+   \ +-----+     \            
                          \ \     \   \|                 |    \ \     \   \ \           \   \|     |    \|     |\     \            
                           \ \     \   +-----------------+     \ \     \   \ \           \   +-----+     +-----+ \     \            
                            \ \     +-----------------------------+     +-----+           +-----------------------+     +-----------+
                             \ \                                                                                                     \
                              \ \                                                                                                     \
                               \ +-----------------------------------------------------------------------------------------------------+
                                \|                                                                                                     | 
                                 +-----------------------------------------------------------------------------------------------------+  

Output:
#################
        #       #
# ##### # ##### #
#   # # #     # #
# # # # ##### # #
#   # #       # # 
### # ####### # #
#   # #    #  # # 
# ### # ## # ##
#     # ##    #  
#################

Input:
+-----------------+
|\                 \
+ \                 \
 \ \                 \
  \ \                 \
   \ \                 \
    \ \                 \
     \ \                 \
      \ \                 \
       \ +-----------------+
        \|                 | 
         +-----------------+

Output:
###
###
###

Input: (Note leading whitespace)
      +-----+     +-----+
      |\     \    |\     \
      + \     \   + \     \
   +-----+-----+-----+-----+
   |\     \    |\     \    | 
   + \     \---+ \     \---+  
    \ +-----+-----+-----+-----+
     \|     |\     \    |\     \
      +-----+ \     \---+ \     \
         +-----+-----+-----+-----+
         |\     \    |\     \    | 
         + \     \---+ \     \---+  
          \ +-----+   \ +-----+      
           \|     |    \|     |       
            +-----+     +-----+        

Output:
 # #
# #
 # #
# #


ইনপুট / আউটপুট স্ট্রিংগুলির তালিকা হতে পারে?
নিক কেনেডি

@ নিক হ্যাঁ চরিত্রের ম্যাট্রিক্স বলতে আমি এটাই বুঝি।
হিয়াটসু

গ্রেট শুধু স্পষ্ট করতে চেয়েছিলেন!
নিক কেনেডি

1
আমি সত্যিই এই চ্যালেঞ্জ পছন্দ! শুধু কৌতূহলী, কেন এই রাউন্ডটি ঘিরে এবং 3 ডি গোলকধাঁধা তৈরি করছে না?
এজেফারাডে

@ এজেফারাডে আমার সংযোগিত চ্যালেঞ্জটিতে ইতিমধ্যে ধাঁধাটি তৈরি করা (এবং আরও অনেক কিছু) ইতিমধ্যে সম্পন্ন হয়েছে।
হিয়াটসু

উত্তর:


30

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

def f(M,k=1,r='',b=0):
 for c in M[k][k::6]:b^=c>' ';r+=' #'[b]
 print r;f(M,k+3)

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

স্ট্রিংগুলির তালিকা হিসাবে (বা অক্ষরের তালিকাগুলির তালিকা হিসাবে) ইনপুট নেয়। আউটপুট মুদ্রণ করে ত্রুটি সহ শেষ হয়।

ধারণা অনুরূপ TSH এর । আমরা ?স্থানগুলি এবং কোনটি রয়েছে তা দেখতে নীচের হিসাবে চিহ্নিত অক্ষরগুলি দেখি \:

+-----------+
|?     ?     ?
+ \           \
 \ \     +-----+
  \ ?     ?    |?
   \ \     \---+
    \ +-----+
     \|?    |?
      +-----+

?এর সাথে প্রতিটি সারির \মধ্যে, একটি ভরাট ঘর এবং গোলকধাঁধার শূন্য ঘরের মধ্যে একটি উল্লম্ব কান্ড চিহ্নিত করে। এই ছদ্মবেশগুলি গোলকধাঁধার শীর্ষ স্তরে রয়েছে বলে এগুলির \চরিত্রগুলি অন্য গোলকধাঁধা উপাদান দ্বারা কখনই অস্পষ্ট হয় না।

তাকান ?অবস্থানের, সারি মাধ্যমে কোড iterates k=1,4,7,...যে 6 ষ্ঠ অবস্থানে (শূন্য ইন্ডেক্স), এবং প্রতিটি সারির সৌন্দর্য অবস্থান দিয়ে শুরু k। এটি বিটটিতে আমরা খালি বা পূর্ণ ঘরে রয়েছি কিনা তা সনাক্ত করে bএবং যখনই কোনও \মুখোমুখি হয় তখন সেই বিটটি ফ্লিপ করে । প্রতিটি অক্ষর পড়ার পরে, এটি অনুযায়ী খালি ( ) বা পূর্ণ ( #) অনুযায়ী অক্ষর যুক্ত করে bএবং সারিটি সম্পূর্ণ হওয়ার পরে ফলাফলটি স্ট্রিংটি মুদ্রণ করে।


যে। হয়। চিত্তাকর্ষক।
কানেক্টইউরচার্জার

19

জাভাস্ক্রিপ্ট (নোড.জেএস) , 85 বাইট

a=>a.flatMap(u=(l,y)=>y%3?[]:[l.flatMap((c,x)=>x<y|(x-=y+3)%6?[]:' #'[u[x]^=c+1<0])])

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

প্রাথমিক ধারণাটি হ'ল: আমরা কেবলমাত্র অক্ষরের বিষয়ে । যদি এটি কোনও ড্যাশ ( ) হয় তবে কারেন্টের সেলটির শীর্ষের সাথে একটি আলাদা মান রয়েছে এবং যদি এটি একটি স্থান ( ) হয় তবে বর্তমানের ঘরে একই মান রয়েছে।(6x+3y+3,3y)-

ধন্যবাদ @ আরনল্ড , 7 বাইট সংরক্ষণ করেছেন


খুব সুন্দর অন্তর্দৃষ্টি
জোনা

5

জেলি , 22 20 বাইট

ṫ"J‘$m3n⁶m€6Ż^\ị⁾# Ḋ

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

জেলি স্ট্রিংটিকে ইনপুট হিসাবে গ্রহণ করা এবং প্রসেস করা গোলকধাঁধাটিকে জেলি স্ট্রিং হিসাবে ফিরিয়ে নেওয়া হোয়াইটস্পেসের এক সারি সহ প্রেরণ করা একটি মোনাডিক লিঙ্ক।

শীর্ষস্থানীয় হোয়াইটস্পেসের একক লাইন গ্রহণযোগ্য হলে 1 বাইট সংরক্ষণ করা যায়।

@ Tsh এর সূত্র থেকে কিছুটা অনুপ্রেরণা নিয়েছেন , তাই সেটিকেও উজ্জীবিত করতে ভুলবেন না!

ব্যাখ্যা

ṫ"  $                | Tail each string using a paired member of the following:
  J                  | - Sequence along the list of strings
   ‘                 | - Incremented by 1
     m3              | Take every 3rd string (1st, 4th, 7th, ...)
       n⁶            | Not equal to space character
         m€6         | Within each list take every 6th item (1st, 7th, ...)
            Ż        | Prepend a zero to the list
             ^\      | Reduce using xor, collecting up results; vectorised across lists (so starts with 0 xor first list, then output of that xor second list, and so on)
               ị⁾#   | Index into "#", " "
                   Ḋ | Remove first list

5

05 এ বি 1 ই , 25 22 বাইট

-1 বাইট কেভিন ক্রুইজসেনকে ধন্যবাদ

εN3%iN.$6ιнηðÊO„ #sèJ,

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

Xnor এর পাইথন উত্তর বন্দর । একটি অক্ষর ম্যাট্রিক্স হিসাবে ইনপুট নেয়। টিআইও লিঙ্কটি পাঠ্যের জন্য একাধিক স্ট্রিং হিসাবে ইনপুট দেখায়, শিরোনামটি |€Sঅক্ষর ম্যাট্রিক্স ফর্ম্যাটে রূপান্তর করে।


1
24 বাইট : ε'\¢„ #sè}থেকেðм€g„ #sè
কেভিন ক্রুইজসেন

বাহ, ভাল সন্ধান! আরও উন্নতির জন্য উত্তর দেখুন। PS: আমি мএবং এর মধ্যে পার্থক্য সম্পর্কে বিভ্রান্ত K
গ্রিমি

3

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

¶(?<=(.|(¶))+)(?<-2>.)+
¶
-4G`
.+¶(.+)¶.+
$1
T` `#`\\  +\\
.(.)....|.
$1

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

¶(?<=(.|(¶))+)(?<-2>.)+
¶

সমস্ত লাইন ডি-স্কু করুন।

-4G`

আমার শেষের তিনটি লাইন মুছবেন না কারণ তাদের দরকার নেই।

.+¶(.+)¶.+
$1

তিনটি লাইনের প্রতিটি গ্রুপের মাঝখানে রাখুন। (রেটিনা 1 এ, আমি বিশ্বাস করি যে উপরের দুটি স্তর একক পর্যায়ে করা যেতে পারে ,G1,3,-5`:)

T` `#`\\  +\\

ব্লকগুলির মুখ পূরণ করুন।

.(.)....|.
$1

প্রতিটি ব্লকের মধ্যে কেবল দ্বিতীয় অক্ষর রাখুন।


2

সি (ঝনঝন) , 120 117 বাইট

o,c,t,s,r;f(char*m){for(s=o=0;*m;!r?t^=*m!=32,s=t?35:46:0)*++m==10?m-=~++o,c=t=0,s=10:0,r||printf(&s),r=c++%6|o%3-1;}

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

অন্যদের উত্তর দ্বারা অনুপ্রাণিত।

'\'=92   ' '=32=>46='.'  '#'=35   '\n'=10 
// o offset == // l line 
// c line counter 
// t toggle 
// r => ? test, point to inspect 
for(o=s=0;*m;
!r?t=*m-32?!t:t,s=t?35:46:0) // t^=*m!=32 @ceilingcat 
// if test(r) is enabled: toggle(t) and sets (s)

*++m==10?m-=~++o,c=t=0,s=10:0,
// next char => if it's \n overwrites (s)
// and increments offset(o) and move pointer(m)

r || printf (&s)
// r or print! Thanks to @ceilingcat
// instead of 
    *++m-10?0:(m-=~++o,c=t=0,s=10),
    !r*s?putchar(s):0, 
 Saved 5 !

r=c++%6|o%3-1;// enable test every 6 x 3+1 positions
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.