গোলকধাঁধা জেনারেশন [বন্ধ]


41

আমি জানি যে এটির ( এখানে ) অনুরূপ একটি (পুরানো) থ্রেড রয়েছে তবে আমি এটি কিছু সংশোধন করে পুনরায় বুট করতে চাই।

লক্ষ্য: আপনার পছন্দের একটি অ্যালগরিদম ব্যবহার করে একটি এলোমেলো চেহারার গোলকধাঁধা তৈরি করুন , তারপরে গোলকধাঁটিটিকে গ্রাফিকভাবে আউটপুট করুন (মুদ্রণ গণনা)।

  • প্রস্থ এবং উচ্চতা আপনার দ্বারা নির্ধারিত হয়।
  • কমপক্ষে একটি প্রবেশ পথ থেকে কমপক্ষে একটি প্রস্থান করার জন্য কমপক্ষে একটি পথ থাকা উচিত।
  • গোলকধাঁধার বিন্যাস (আপনি কীভাবে এটি প্রদর্শিত করবেন, প্রবেশদ্বার (গুলি) বা প্রস্থান (চিহ্নগুলি) চিহ্নিত করুন এটিও আপনার উপর নির্ভর করে।
  • সুন্দর, আরও ভাল।
  • তুচ্ছ ম্যাজগুলি (যেমন ফাঁকা ম্যাজেস, ল্যাটিস ম্যাজস, ম্যাক্স 1x1 ম্যাসেজ) নিরুৎসাহিত করা হয়।
  • ধাঁধা মধ্যে চক্র অনুমোদিত এবং, উত্সাহিত হয়, যদি ফলাফল যুক্তিসঙ্গত হয়।
  • ভাষার অপব্যবহারকে উত্সাহিত করা হয়।
  • ধাঁধাটি যুক্তিসঙ্গতভাবে এলোমেলো দেখানো উচিত (তবে এটি সম্পূর্ণরূপে একটি নির্মল (যেমন বিশৃঙ্খল) অ্যালগরিদম তৈরি করে যা এটি খুব ভাল)।

সম্পাদনা করুন: এখানে মূল ফোকাসটি সবচেয়ে ছোট সম্ভাব্য বাস্তবায়ন করা। যাইহোক, আমি এই সীমাবদ্ধতার মধ্যে কিছুটা অবসন্নতা বাড়াতে উত্সাহিত করতে চাই। আমি ইচ্ছাকৃতভাবে কী "বৈশিষ্ট্যগুলি" ধাঁধাঁটি খোলার শেষ হয়েছে ঠিক তেমনটি রেখেছি, তবে মোটামুটি গাইডলাইন হিসাবে আপনার সর্বাধিক পরিমাণে ঠুনকো লেক্স বাক্সে প্যাক করার চেষ্টা করা উচিত।


4
এছাড়াও "সুন্দর, আরও ভাল" কোনও কোড-গল্ফ চ্যালেঞ্জের পক্ষে খুব শক্তভাবেই স্পষ্ট হয়ে ওঠে (বা কেবল অপ্রাসঙ্গিক) seems আপনি যদি খুব ভাল ফলাফলের প্রতি আগ্রহী হন তবে একটি জনপ্রিয়তা প্রতিযোগিতা সবচেয়ে ভাল পছন্দ হবে।
মার্টিন ইন্ডার

5
সুতরাং এটি কি আসলে কোড-গল্ফ বা এটি বরং জনপ্রিয়তা-প্রতিযোগিতা?
l0b0

2
অন্য একটি পরামর্শ হিসাবে, আপনি যদি সংক্ষিপ্ত কোড এবং ঝরঝরে ম্যাস উভয়কেই উত্সাহিত করতে চান তবে আপনি এটিকে একটি কোড-চ্যালেঞ্জ তৈরি করতে পারেন এবং ঘোষণা করতে পারেন যে কোডের দৈর্ঘ্য এবং উন্নয়নের মিশ্রণ এমন কোনও স্কোর দ্বারা বিজয়ী নির্বাচন করা হবে - যদিও এটি হবে প্রতিটি উত্তর মোট স্কোর নির্ধারণ করার জন্য আপনার উপর নির্ভরশীল, কারণ পোস্টটিতে আপোভের বর্তমান সংখ্যা সহ কিছুটা অকেজো।
মার্টিন এন্ডার

3
আমি মনে করি প্রতিটি উত্তরে প্রতিটি গোলকের প্রবেশদ্বারগুলি কীভাবে প্রবেশ করবে এবং প্রস্থান করবে (সেইসাথে প্রাচীর কী এবং কোনও উত্তরণ কী) তা বোঝানো উচিত, যাতে আমরা ২ য় বুলেট মূল্যায়ন করতে পারি।
LarsH

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

উত্তর:


10

সি: 265 253 বাইট

#define f(v)for(v=0;v<k;++v)
#define d(q,n)case q:r(c+n,c+2*n);
z[4225],i,j,k=65;r(p,c){if(!z[c]){z[p]=z[c]=1;f(p)switch(rand()%4){d(0,-k)d(1,k)d(2,-1)d(3,1)}}}main(){f(i)z[i]=z[i+4160]=z[i*k]=z[i*k+64]=z[4157]=1;r(67,132);f(i)f(j)putchar(33-z[i*k+j]);}

(65৫-অক্ষরের টার্মিনাল প্রয়োজন) প্রবেশদ্বার থেকে প্রস্থান করার জন্য একটি গ্যারান্টিযুক্ত পথ সহ তুলনামূলকভাবে এলোমেলো 31x31 গোলকধাঁধা উত্পন্ন করে।

উদাহরণ আউটপুট (সিমুলেটেড 65-অক্ষর টার্মিনাল সহ):

 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
 !     !       !   !       !     !           !             !   ! 
 !!!!! !!! !!! ! !!! ! !!! ! !!! !!!!!!! !!! !!!!!!!!! !!! ! ! ! 
 !   !   !   ! !     ! ! ! ! ! ! !       !   !         !   ! ! ! 
 ! !!!!! !!! ! !!!!!!! ! ! ! ! ! ! !!!!!!! !!! ! !!!!!!! !!! ! ! 
 !     !     !         ! !   !   !     !   !   ! !     !   ! ! ! 
 ! !!! !!!!!!!!!!!!!!!!! !!!!! !!! !!! !!! ! ! !!! !!! !!! !!! ! 
 !   !         !     !   !     !     !   ! ! ! !     !   !   ! ! 
 !!!!!!!!!!! ! ! !!! !!! ! !!!!!!!!!!!!! ! !!! ! !!!!!!! !!! ! ! 
 !           !   !       ! !             !   !     !     !     ! 
 ! !!!!!!! !!!!!!! !!!!!!! ! !!!!!!!!!!!!!!! !!!!!!! !!!!!!!!!!! 
 ! !     ! !   !     !   ! !           !   !       ! !         ! 
 ! !!! ! ! ! ! !!!!!!! ! ! ! !!!!!!!!! ! ! !!!!!!! ! ! !!!!!!! ! 
 !   ! !   ! !       ! !   ! !         ! !       ! ! !   !   ! ! 
 !!! ! !!!!! !!!!!!! ! !!!!!!! !!!!!!!!! !!! !!!!! ! !!! ! !!! ! 
 !   !   ! ! !       !   !     !   !     ! !           ! !   ! ! 
 ! !!!!! ! ! ! !!!!!!!!! ! !!!!! !!! !!!!! !!!!!!!!!!! ! ! ! ! ! 
 ! !       ! !   !   !   ! !       ! !       !   !     ! ! ! ! ! 
 ! !!!!!!!!! !!! ! ! ! !!! !!!!!!! ! !!!!!!! ! ! !!!!!!! !!! ! ! 
 !             !   ! !   !       ! !     !   ! !             ! ! 
 !!!!!!!!!!!!!!!!!!! !!! !!!!!!! ! !!!!! ! !!! !!!!!!!!!!!!!!! ! 
 !               !   !   !       !         !   !     !   !     ! 
 ! !!!!!!!!!!!!! ! ! ! !!! !!!!!!! !!!!!!!!! !!! !!! !!! ! !!! ! 
 ! !   !       !   ! ! ! !     ! ! ! !     !     !   !   !   ! ! 
 ! ! ! !!!!! !!!!!!! ! ! ! !!! ! ! ! ! !!! !!!!!!! !!! !!!!! !!! 
 !   ! !   !       ! ! !     ! !     ! ! !     !   !       !   ! 
 !!!!! ! ! !!! !!! ! ! !!!!!!! !!!!!!! ! ! !!! ! !!!!!!!!! !!! ! 
 !     ! !   !   !   !       !       ! ! ! !   !   !         ! ! 
 ! !!!!! !!! !!! !!!!!!!!!!! !!!!!!! ! ! ! !!!!!!! ! !!!!!!! ! ! 
 !         ! !           !   !       ! ! !     !   ! !       ! ! 
 !!!!!!!!!!! !!!!!!!!!!! ! !!! !!!!!!! ! !!!!! ! !!! !!!!!!!!! ! 
 !         !     !     ! ! !       !   !     ! !     !         ! 
 ! !!!!!!! !!!!! ! !!! !!! !!!!!!! ! !!!!! ! ! !!!!! ! !!!!!!!!! 
 ! !     !     !   ! !   !       ! !       ! !       !         ! 
 ! ! !!! !!!!! ! !!! !!! !!!!!!! ! !!!!!!!!! !!!!!!!!!!!!!!!!! ! 
 !     !     ! !   !   ! !     ! !       !   ! !     !         ! 
 !!!!!!!!!!! ! !!! !!! ! ! ! !!! ! ! !!!!! !!! ! !!! ! !!!!!!! ! 
 !           ! !       !   ! !   ! !       !   ! ! ! !     !   ! 
 ! !!!!!!!!!!! !!!!!!!!!!!!! ! !!! !!!!!!!!!!! ! ! ! ! !!! ! !!! 
 !       !   !             ! ! ! !   !         ! !   !   ! ! ! ! 
 !!!!!!! !!! !!!!!!!!!!!!! ! ! ! !!! ! !!!!!!! ! !!! !!!!! ! ! ! 
 !       !         !     ! ! ! !   !   !     ! !   !       !   ! 
 ! !!!!!!! !!!!!!! ! !!!!! ! ! !!! !!!!!!! ! ! !!! !!!!!!!!!!!!! 
 !   !         ! !   !       ! !           ! !   !             ! 
 ! ! ! !!!!!!! ! ! !!! !!!!!!! ! !!!!!!!!!!! ! !!!!!!!!!!!!!!! ! 
 ! ! ! !     ! !   !   ! !     !   !   !     ! !               ! 
 ! ! !!! !!! ! !!!!! !!! ! !!!!! ! ! ! !!!!!!! ! !!!!!!!!!!!!! ! 
 ! !   !   ! !   !       !   !   !   !         ! !         !   ! 
 !!!!! !!! ! !!! ! !!!!!!!!! !!!!!!! !!!!!!!!!!! !!!!! !!!!! !!! 
 !     !   !   !   !       !       !       !   !     !       ! ! 
 ! !!!!! !!!!! !!!!! !!!!! !!!!!!! !!!!!!!!! ! !!!!! !!!!!!! ! ! 
 !           !     ! !   !   !   !           !   !   !     !   ! 
 ! !!!!!!!!! !!!!! ! !!! ! !!! ! !!!!!!!!!!!!!!! ! !!! !!! !!! ! 
 ! !     !       ! !     !     !     !         ! !       !   ! ! 
 !!! !!! !!!!!!!!! !!!!! !!!!!!!!! ! !!!!!!! !!! ! !!!!!!!!! ! ! 
 !   !     !   !   !   ! !       ! !         !   ! !         ! ! 
 ! !!!!!!! ! ! ! ! !!! ! !!!!!!! ! !!!!!!!!! ! !!!!! !!!!!!!!! ! 
 !       !   !   ! !   !         !   ! !   ! ! !     !       ! ! 
 ! !!!!! !!!!!!!!! ! !!!!!!!!!!! !!! ! ! ! ! ! ! !!!!! !!!!! ! ! 
 ! !     !           !         ! ! ! !   !   ! !   !   !     ! ! 
 ! ! !!!!!!!!!!!!!!!!! !!! !!!!! ! ! !!!!!!!!! !!! ! !!!!!!!!! ! 
 ! !                     !         !               !           ! 
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! 

2
আপনারও দরকার নেই int p,int cp,cযথেষ্ট ...
চুবাকুয়ানো

আহ, এটি উল্লেখ করার জন্য ধন্যবাদ
ডেন্ড্রোবিয়াম

34

গণিত, 144 132 বাইট

প্রতিষ্ঠার পর থেকে, আমরা সবাই গোলকধাঁধা আঁকার সবচেয়ে কার্যকর উপায় জানি ।

c=0;Graphics@Most[Join@@{Circle[{0,0},i,{a=c-(r=Random[](d=2Pi-1/i)&)[],a+d}],Line[{{i},{i+1}}.{{Cos[c=a+r[]],Sin@c}}]}~Table~{i,9}]

অসম্পূর্ণ এবং উদাহরণ আউটপুট:

এখানে চিত্র বর্ণনা লিখুন

অবশ্যই লাইনগুলি দেয়াল। আপনি সেই মিনোটার যিনি কেন্দ্র থেকে শুরু করেন এবং বেরোনেন।


4
এটি সুন্দর, এবং কোডটি সংক্ষিপ্ত, তবে আমি বলব এটি বর্ণালীটির "তুচ্ছ ধাঁধা" শেষের দিকে।
LarsH

2
আপনি ঠিক বলেছেন যে এটিকে বড় করে তোলা তুচ্ছতা পরিবর্তন করবে না। মুল বক্তব্যটি হ'ল এই গোলকধাঁধাটি সমাধান করা একটি রৈখিক প্রক্রিয়া: প্রতিটি সন্ধিক্ষণে আপনি খুব শিখতে পারবেন যে আপনি গভীর শাখাগুলিতে "পুনরাবৃত্তি" না করেই আপনি ভুল মোড় নিয়েছেন কিনা। অন্যদিকে আয়ানের এবং আলেফের উত্তরগুলি হ'ল "আসল" ম্যাজেস: এগুলি এই রৈখিক উপায়ে সমাধান করা যায় না। যেহেতু তুচ্ছ ম্যাজগুলি নিরুৎসাহিত হয়, তাই আমি এইটিকে হ্রাস করার জন্য প্রলুব্ধ হব, তবে আমার পর্যাপ্ত প্রতিনিধিত্ব নেই।
LarsH

1
@ লার্শ হাঁ, আমরা তাতে একমত এ কারণেই আমি বলেছিলাম যে গোলকধাঁধা আঁকার এটি সবচেয়ে "দক্ষ" উপায়, সবচেয়ে "কার্যকর" নয়। ;) তবুও, এটি সহজ হতে পারে তবে আমি মনে করি না যে এটি "ফাঁকা" বা "1x1" এর মতো শাসিত বরখাস্তদের সাথে একটি বিভাগে পড়ে। অবশ্যই, এই জমাটি সরলতার জন্য অযোগ্য ঘোষণা করার পক্ষে এটি ওপির বিবেচনার ভিত্তিতে, তবে যতক্ষণ না তিনি তা করেন না বা চ্যালেঞ্জের ধরণটি পরিবর্তন করেন, আমি এটিকে আরও জটিল / আকর্ষণীয় করার জন্য কোনও উত্সাহ দেখছি না।
মার্টিন এন্ডার

1
@ লার্শ এই কথা বলা হচ্ছে যে, আমি নিশ্চিত নই যে এটি তাদের অ্যালগরিদমগুলির কারণে বা তারা পোস্ট করা বিশেষ উদাহরণগুলির একটি বৈশিষ্ট্যের কারণে হয়েছে, তবে তাদের উত্তরগুলির কোনওটির জন্যই "1" গভীরতার বাইরে ব্যাকট্র্যাকিংয়ের প্রয়োজন ছিল না। সুতরাং যখন তারা অনেক জটিলতা তৈরি করে, এটি সমস্ত পথেই যাই হোক না কেন অপ্রাসঙ্গিক in
মার্টিন এন্ডার

1
এই ধাঁধাঁটি তুচ্ছ নয়, আমার মতে, এমনকি এটি সহজ হলেও (এবং নীচে আমার বৃত্তাকার গোলকধাঁধা আরও তুচ্ছ)। আমি সত্যিই খালি ক্যানভাস / আকার -1 / ইত্যাদি প্রতিরোধ করতে চেয়েছিলাম। "ধাঁধা" গুলি।
imallett

33

সি: 364 বাইট

#define I int
m[1600],i=0,r;f(I x,I y,I l){m[80*y+x]|=l;I d[]={x-1,y,2,1,x+1,y,1,2,x,y-1,8,4,x,y+1,4,8},
s[]={5,5,5,5},j=0;for(;j<4;){L:r=rand()%4;for(I k=0;k<4;)if(s[k++]==r)goto L;s[j]=r;I*p=d+
4*s[j++],X=p[0],Y=p[1];if(!(X<0|X>79|Y<0|Y>19|m[80*Y+X])){f(X,Y,p[2]);m[80*y+x]|=p[3];}}}
main(){f(0,0,4);m[9]|=4;for(;i<1600;)putchar("#5FMP<HJR;IK:9LN"[m[i++]]+128);}

দ্রষ্টব্য: উপরের অংশে, আমি পৃষ্ঠাটিতে এটি ফিট করার জন্য নতুন লাইনগুলি যুক্ত করেছি। প্রত্যাশিত আউটপুট (৮০-অক্ষর টার্মিনালে) (নোট সূচনা এবং উপরে বাম দিকে শেষ): এখানে চিত্র বর্ণনা লিখুন


8
এমবিপেইন্টকে উদ্ধার করতে হবে! চিত্র
সিলিং গেকো

6
লক্ষ্য করুন আমার উদ্দেশ্য পথ পাইপ ভিতরে হতে আছে ছিল (এখানে হিসাবে)
imallett

1
@ আইয়ানম্যালিট আমার মনে হয় সিলিং গেকো বিষয়টি অবগত ছিল, তবে বাম প্রাচীরটিকে রঙ দিয়ে বন্যা ভরাট করা আপনাকে প্রস্থানটি না পাওয়া পর্যন্ত বাম প্রাচীরের পাশ দিয়ে একটি (অনুকূল নয়) পাথ দেয়। ;)
মার্টিন এন্ডার

1
আপনার যদি সময় থাকে তবে আমি এই কোডটির অন-গল্ফ সংস্করণটি দেখতে আগ্রহী।
LarsH

4
আপনি যখন এটি লিখেছেন আপনি একটি আভ্যন্তরীণ কোডার ছিলেন।
totymedli

24

গণিত, 134 130 অক্ষর

Graph[Range@273,Reap[Do[c@n/._c:>#0[Sow[#<->n];n],{n,RandomSample@AdjacencyList[g=GridGraph@{13,21},c@#=#]}]&@1][[2,1]],Options@g]

ধাঁধা


আসলে, আমরা এই অ্যালগরিদমটি কোনও (পুনর্নির্দেশিত) গ্রাফ থেকে গোলকধাঁধা তৈরি করতে ব্যবহার করতে পারি।

উদাহরণস্বরূপ, 8 * 8 নাইটের ট্যুর গ্রাফ ( KnightTourGraph[8,8]) থেকে একটি গোলকধাঁধা তৈরি করুন :

নাইট ট্যুর গ্রাফ

Graph[Range@64,Reap[Do[c@n/._c:>#0[Sow[#<->n];n],{n,RandomSample@AdjacencyList[g=KnightTourGraph[8,8],c@#=#]}]&@1][[2,1]],Options@g]

maze2


7
চমৎকার গোলকধাঁধা… তবে আমি কোনও প্রবেশ পথ দেখতে পাচ্ছি না যা একটি প্রস্থান সাথে সংযুক্ত আছে…?
bwebi

9
আমি বিশ্বাস করি ধারণাটি প্রবেশের হিসাবে একটি এলোমেলো নোড (বলুন, উপরের বাম) এবং প্রস্থান হিসাবে অন্য (নীচের ডানদিকে) বেছে নেওয়া। ম্যাথমেটিকা ​​নিশ্চিত করে যে সমস্ত নোড অন্যান্য সমস্ত নোডের সাথে সংযুক্ত রয়েছে তবে - বিশেষত দ্বিতীয় গোলকধাঁধায় - তারা কীভাবে সংযুক্ত রয়েছে তা সন্ধান করা আরও শক্ত অংশ।
agগলভি_আত্তনাম

লাইনগুলি (গ্রাফ প্রান্তগুলি) কি ধাঁধা দেয়াল, বা উত্তরণগুলি বলে মনে হচ্ছে? আমি ভেবেছিলাম আমি জানি, কিন্তু এখন আমি নিশ্চিত না।
LarsH

পছন্দ করেছেন
আলেফাল্ফা

1
@ লার্শ গ্রাফটি সংযুক্ত আছে, সুতরাং আপনি কেবল দুটি স্বেচ্ছাসেবী নোড নিতে পারেন, একটি প্রবেশদ্বার হিসাবে এবং অন্যটি প্রস্থান হিসাবে।
আলেফাল্ফা

13

বাশ, 53 বাইট

w=(╱ ╲);while true;do echo -n ${w[RANDOM%2]};done

সি 64 কোডের অনুরূপ ধারণা। ইউনিকোড অক্ষরগুলি স্ল্যাশ হিসাবে ব্যবহার করে কারণ তারা টার্মিনালে ইউনিকোডকে অনেক ভাল দেখায়। ওএস এক্স টার্মিনালের নমুনা আউটপুট (মেনলো ফন্ট):

নমুনা গোলকধাঁধা আউটপুট


2
আমি একবার এই মূর্ত আউট: yes 'c=(╱ ╲);printf ${c[RANDOM%2]}'|bashএই পোস্টটি
gniourf_gniourf

5
এটি এমন এক অ্যালগরিদমের উপর ভিত্তি করে যা নিজেকে দ্রাব্য করার গ্যারান্টি দিতে পারে না, এটি বহু বছরের পুরানো।
ইসিয়া মিডোস

9

জাভাস্ক্রিপ্ট (ES6), 174

এই গোলকধাঁধা নির্মাতা আমি এই অন্যান্য চ্যালেঞ্জটিতে ব্যবহার করেছি , কেবল গল্ফড। এটি 2 টি প্যারামিটার সহ একটি ফাংশন: সারি এবং কলাম। গোলকধাঁধাটি কোনও লুপগুলির সাথে সম্পূর্ণভাবে সংযুক্ত, সুতরাং যে কোনও অবস্থানের শুরু বা শেষ পয়েন্ট হতে পারে।

(r,c,o=2*c+2,i=2*r*o+o,z=[],F=(p,i=Math.random()*4)=>[o,1,-o,-1].map((s,j,d)=>z[s=p+2*d[j+i&3]]>0&&(z[s]=z[(p+s)/2]=' ',F(s))))=>{for(;i--;)z[i]=i%o?8:`\n`;F(o+2);return''+z}

উদাহরণ

f(7,10)

আউটপুট

,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
,8, , , ,8, , , , , ,8, , , , , , , , , ,8,
,8, ,8, ,8,8,8, ,8, ,8,8,8,8,8,8,8, ,8, ,8,
,8, , , ,8, , , ,8, , , ,8, , , , , ,8, ,8,
,8, ,8,8,8, ,8,8,8,8,8, ,8, ,8,8,8,8,8, ,8,
,8, ,8, , , , , ,8, ,8, ,8, ,8, , , , , ,8,
,8, ,8, ,8,8,8, ,8, ,8, ,8, ,8, ,8,8,8,8,8,
,8, ,8, ,8, , , ,8, , , , , ,8, ,8, , , ,8,
,8, ,8, ,8, ,8,8,8,8,8,8,8,8,8, ,8, ,8,8,8,
,8, ,8, ,8, , , , , , , ,8, , , ,8, , , ,8,
,8, ,8, ,8,8,8,8,8,8,8, ,8,8,8, ,8,8,8, ,8,
,8, ,8, , , , , , , ,8, , , ,8, , , , , ,8,
,8, ,8,8,8,8,8,8,8,8,8,8,8, ,8,8,8,8,8, ,8,
,8, , , , , , , , , , , , , ,8, , , , , ,8,
,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8

পরীক্ষা

f=
(r,c,o=2*c+2,i=2*r*o+o,z=[],F=(p,i=Math.random()*4)=>[o,1,-o,-1].map((s,j,d)=>z[s=p+2*d[j+i&3]]>0&&(z[s]=z[(p+s)/2]=' ',F(s))))=>{for(;i--;)z[i]=i%o?8:`\n`;F(o+2);return''+z}
    
function update() {    
  O.textContent='';
  [r,c]=I.value.match(/\d+/g)
  O.textContent=f(r,c)
}  

update()
pre { line-height: 0.8em }
Rows,Columns <input id=I oninput='update()' value='8,12'>
<pre id=O></pre>


আমি নিশ্চিত নই ... আলোক বা অন্ধকার অঞ্চলটি কি গোলকধাঁধাঁ? যদি অন্ধকার হয়, তবে এটির একটি বড় লুপ রয়েছে এবং প্রবেশ / প্রস্থান পয়েন্ট হিসাবে যে কোনও পয়েন্ট বেছে নেওয়ার সময় একটি কেবল বাইরে থাকতে পারে। যদি আলো হয় তবে আপনার প্রস্থান / প্রবেশটি যুক্ত করা উচিত।
পাওলো ইবারম্যান

1
@ পাওলোএবারম্যান এটি অবশ্যই আলো, অন্ধকার অঞ্চলটি দেয়াল। নিজেকে পুনরাবৃত্তি করছে:
গোলকধাঁটি

বাহ, এটা একটা ম্যাজিং! কিছু বাইট শেভ করে এটিকে 133 বাইটে নামিয়ে দেওয়া হয়েছে: twitter.com/aemkei/status/889587308894326785 তবে সমস্ত ক্রেডিট আপনার কাছে যাওয়া উচিত!
আমেখেই

@ এ্যামকেই 8 '#' এর পরিবর্তে 8, আমি বিশ্বাস করতে পারি না যে আমি এটি সময়ে মিস করেছি
edc65

8

জেডএক্স বেসিক - 54 টি অক্ষর

a$="/\":for i=1 to 24*32:print a$(1+int(rnd*2));:next

আউটপুট

এই গোলকধাঁটিটি এর মধ্য দিয়ে কোনও রুট দেখায় (লাইনের মধ্যে ফাঁকা স্থান)

পথ

এবং যখন আমি প্রথম (বেশ কয়েক বছর আগে) এটি করেছি তখন থেকে একটি ছোট্ট স্নিপেট এবং আরও ভাল গ্রাফিক্স করতে বেশ কিছুটা সময় ব্যয় করেছি।

আরও ভাল গ্রাফিক্স


2
এইচএম, গালমন্দ The কী শুরু এবং সেখানে কি শেষ? এবং স্ল্যাশগুলি কি রাস্তাগুলি বা দেয়ালগুলিতে রয়েছে? এবং আমি যে ন্যূনতম ফাঁক আকারটি দিয়ে যেতে পারি তা কী?
মার্টিন এন্ডার

2
"কমপক্ষে একটি প্রবেশ পথ থেকে কমপক্ষে একটি প্রস্থানের জন্য কমপক্ষে একটি পথ থাকা উচিত" " এই মানদণ্ডটি পূরণ হয়েছে এমন কোনও ইঙ্গিত আমি দেখছি না। এলোমেলো দেয়াল অগত্যা একটি ধাঁধা তৈরি করে না।
LarsH

1
@ এম.বয়েটনার: আমি অনুমান করছি যে স্ল্যাশগুলি প্রাচীর এবং এটি সারি এবং কলামগুলির মধ্যে শূন্য জায়গার মতো করে আমরা এটি কল্পনা করব। সুতরাং নীচের বাম 2x2 অক্ষর সম্পূর্ণ বন্ধ হীরা (বর্গক্ষেত্র) আকার গঠন করে।
LarsH

@ লার্শ হ্যাঁ আমিও তাই ভেবেছিলাম। এটি ওপি-র প্রশ্নে আপনার কেসের জন্য আরেকটি বিষয় তুলে ধরেছে যে লোকেদের সূচনা এবং শেষ কী তা নির্দেশ করা উচিত। এছাড়াও, এই স্কিমটি জংশনের জন্যও অনুমতি দেয় না। আপনার কাছে কেবল সেই বদ্ধ স্কোয়ার বা মেন্ডারিং পাথ থাকতে পারে (যা বন্ধ লুপগুলিও হতে পারে)।
মার্টিন এন্ডার

উন্নত গ্রাফিক্স এবং রুটটি দেখানোর জন্য +1। আমার ধারণা এতগুলি সম্ভাব্য প্রবেশদ্বার এবং প্রস্থানগুলি দেওয়া হয়েছে, "কমপক্ষে একটি প্রবেশপথ থেকে কমপক্ষে একটি প্রস্থান পর্যন্ত কমপক্ষে একটি পথ" থাকার সম্ভাবনা খুব বেশি!
LarsH

8

বিবিসি বেসিক, 18 বাইট

@Neneneo দ্বারা 23-বাইট সি 64 অসীম লুপ সংস্করণে দৈর্ঘ্যের উন্নতি। ভিডিইউ ভিডিইউ নিয়ন্ত্রকের কাছে একটি অক্ষর প্রেরণ করে: 2 + 1 * 45 = এএসসিআইআই 47 /বা 2 + 2 * 45 = এএসসিআই 92\

  VDU2+RND(2)*45:RUN

বিবিসি বেসিক, 35 বাইট / 107 95 বাইট

35 বাইট কেবল শেষ লাইনের জন্য, যা 40 কলাম লেআউটে 25 সারি ধাঁধা দেয়। MODE1 নিশ্চিত করে যে লাইনের মধ্যে কোনও অতিরিক্ত স্থান অবশিষ্ট নেই। প্রোগ্রামটির বাকী অংশগুলি alচ্ছিক এবং ফর্ম্যাটিংয়ের উন্নতি করে। ভিডিউ 23 স্টেটমেন্টগুলি 47 এবং 92 অক্ষরের (8 বাইট একটি 8x8 বিটম্যাপ গঠন করে) জন্য ফন্টটিকে নতুন করে সংজ্ঞায়িত করে straight এর পার্শ্ব প্রতিক্রিয়া হ'ল খালি হিরেগুলিতে একটি বিন্দু উপস্থিত হয়। 107 বাইট মোট 2 টি নিউলাইন সহ।

  VDU23,47,131,7,14,28,56,112,224,193
  VDU23,92,193,224,112,56,28,14,7,131
  MODE9FORa=0TO999VDU2+RND(2)*45:NEXT

এই প্রোগ্রামটি সম্পাদনা করুন 8 বিট ভিডিইউ কোডের কিছু 16 টি বিট ছোট এন্ডিয়ান মানগুলিতে এনকোড করে 95 বাইটে সংক্ষিপ্ত করা যেতে পারে (কমার পরিবর্তে সেমিকোলন দ্বারা চিহ্নিত) এবং ভিডিইউ কোডগুলির একটি জোড়া হিসাবে এমওডি বিবৃতি উপস্থাপন করে ।

VDU23,47,1923;7182;28728;49632;23,92,57537;14448;3612;33543;22,9:FORa=0TO999VDU2+RND(2)*45:NEXT

আউটপুট

বিবিসিবাসিক ডটকম থেকে উইন্ডোজের জন্য বিবিসি বেসিক ব্যবহার করা

শুধুমাত্র শেষ লাইন, 35 বাইট

এখানে চিত্র বর্ণনা লিখুন

পুরো প্রোগ্রাম, 107 95 বাইট

আমি @ ব্রায়ানের উত্তরে মন্তব্য করার সাথে সাথে স্ল্যাশটি বর্গাকারটিকে 2 টি গা dark় ত্রিভুজগুলিতে বিভক্ত করে, যার প্রতিটিতে হ'ল 2 টি প্রবেশপথ / প্রস্থান রয়েছে। এটি গোলকধাঁধার প্রান্তের যে কোনও বিন্দু থেকে গোলকধাঁধার প্রান্তে অন্য কোনও বিন্দুতে একটি (তুচ্ছ, আনঙ্কৃত) পাথের গ্যারান্টি দেয়। এর মধ্যে অনেকগুলি খুব সংক্ষিপ্ত, তবে সবসময় কয়েকটি দীর্ঘ বলে মনে হয়। অবশ্যই গোলকধাঁধার মাঝখানে কিছু লুপ রয়েছে।

অন্যান্য উত্তরগুলি যেমন উল্লেখ না করে, আমি আলোক অঞ্চলগুলিতে ভাল নজর দিতে চাই। এগুলি অন্ধকার অঞ্চল দ্বারা আবদ্ধ, সুতরাং উপরের বিবৃতিটির মূল হিসাবে, একটি অন্ধকার অঞ্চল দ্বারা বাহ্যিকভাবে আবদ্ধ একটি হালকা অঞ্চল এন (ঠিক অনেকগুলি) পয়েন্টে ক্ষেত্রের প্রান্তকে স্পর্শ করে। অতএব কয়েকটি মোটামুটি বড় আলোর অঞ্চল দেখা দেয় এবং এগুলি আকর্ষণীয়, ব্রাঞ্চযুক্ত মেজগুলি তৈরি করে।

নীচের উদাহরণে, আপনি আমার প্রোগ্রাম থেকে কাঁচা আউটপুট (একরঙা) দেখতে পারেন। এর নীচে (উইন্ডোজ পেইন্ট ব্যবহার করে) আমি দুটি দীর্ঘতম অন্ধকারে নীল রঙ করেছি have তারপরে আমি হলুদ রঙের বৃহত্তম আলোক অঞ্চলটি এবং দুটি অংশ নীল দ্বারা লাল এবং সবুজ করে বেঁধেছি। হলুদ, সবুজ (এবং এমনকি লাল) ম্যাজগুলি বেশ আকর্ষণীয় এবং স্বতন্ত্র are

এখানে চিত্র বর্ণনা লিখুন

সম্পাদনা - ম্যাজগুলি স্বয়ংক্রিয়ভাবে বাছাই এবং শুরু / শেষগুলির নির্বাচন

আরও একটি লাইন (৫৯ টি চরিত্রের) জন্য প্রোগ্রামটি লাল, সবুজ, হলুদ, নীল, ম্যাজেন্টা এবং সায়ান রঙগুলিতে এলোমেলো এবং বন্যায় ভরাট বর্গক্ষেত্রগুলি বেছে নিয়ে স্বয়ংক্রিয়ভাবে 6 টি ম্যাজস বেছে নিতে পারে। এটি সর্বদা একটি পূর্ণ 6 খুঁজে পায় না, কারণ এটি যদি ইতিমধ্যে রঙিন করা কোনও এলোমেলো স্কোয়ার বেছে নেয় তবে কিছুই হয় না।

নীচের বাকি কোডগুলি প্রতিটি কলাম উপর থেকে নীচে এবং বাম থেকে ডানদিকে স্ক্যান করে এবং প্রথম স্কোয়ারটি মুখোমুখি বাছাই করে প্রতিটি বর্ণের জন্য সূচনা করে। বিপরীত দিকে স্ক্যান করে এটি শেষ করে।

এটি রঙিন, জড়িত ম্যাজগুলির একটি সেট তৈরি করে। কখনও কখনও তারা এতটাই জড়িত থাকে যা দেখে মনে হয় যে ম্যাজগুলি অবশ্যই কোথাও অতিক্রম করবে। তবে অবশ্যই, তারা না!

আসল প্রোগ্রামের শেষে অতিরিক্ত কোড এবং আউটপুট 59 + 187 = 246 অতিরিক্ত অক্ষর যুক্ত করতে হবে (প্রশ্ন উত্স ছাড়িয়ে উন্নতির জন্য))

  GCOL135FORa=1TO6GCOLa FILLRND(40)*32-16,RND(25)*32+208:NEXT   :REM set background to grey so fill can identify. For each colour 1 to 6, pick a point in the centre of a character and flood fill (characters are logically 32x32 although they are physically only 8x8 pixels.)
  f=126:g=126                                                   :REM flags 1111110 to indicate which starts and ends have not been allocated yet
  FORx=0TO39FORy=0TO24                                          :REM maze is 40x25. There is some blank space at the bottom of the screen (32 rows total)
  p=POINT(x*32+16,1008-y*32)                                    :REM check start point. Text origin is at top of screen, Graphics origin is at bottom, 1280x1024 logical. therefore y offset is 1024-32/2=1008.
  IFf AND2^p f=f-2^p:VDU31,x,y,17,p,79                          :REM if start for colour P has not been allocated yet, allocate it now. VDU31,X,Y go to that square. VDU 17,p select text colour. VDU 79 print an "O"                 
  p=POINT(1264-x*32,240+y*32)                                   :REM check end point
  IFg AND2^p g=g-2^p:VDU31,39-x,24-y,17,p,79                    :REM if end for colour P has not been allocated yet, allocate it now.
  NEXT:NEXT
  VDU31;26                                                      :REM get the cursor off the board. Move to (0,26). Semicolon used instead of comma here indicating that 31 is a 16 bit small endian value, equivalent to VDU31,0,26 or PRINTTAB(0,26)

এখানে চিত্র বর্ণনা লিখুন


7

সি: 235 বাইট

#define P(X,Y)M[(Y+40)*80+X+40]=rand()%49/6;
#define B(X,Y)P(X,Y)P(Y,X)
M[6400],r,i;main(){for(i=0;i<40;i+=2){int x=i,y=0,e=1-x;while(x>=y)
{B(x,y)B(-x,y)B(-x,-y)B(x,-y)++y;e+=e<0?2*y+1:2*(y-x--);}}for(i=0;
i<6400;)putchar(64>>!M[i++]);}

দ্রষ্টব্য: উপরের অংশে, আমি পৃষ্ঠাটিতে এটি ফিট করার জন্য নতুন লাইনগুলি যুক্ত করেছি। প্রত্যাশিত আউটপুট (৮০-অক্ষর টার্মিনালে):এখানে চিত্র বর্ণনা লিখুন

আমি দুঃখিত এটি খুব শক্ত গোলকধাঁধা নয় (প্রকৃতপক্ষে, অভ্যন্তরীণ রিংগুলিতে কোনও ব্যাকট্র্যাকিংয়ের প্রয়োজন নেই (এবং আপনার ঘের থেকে কেন্দ্রের দিকে তুচ্ছভাবে একটি পথ সন্ধান করতে সক্ষম হওয়া উচিত) Bre তবে এটি ব্রেনহ্যামের বৃত্তটির একটি সুন্দর বাস্তবায়ন রয়েছে) এর মূল অংশে অঙ্কন অ্যালগরিদম।


আপনি কোথায় যেতে পারবেন এবং কোথায় পারছেন না তা দেখতে কিছুটা শক্ত। আমাকে বলতে হবে, আমি পাইপগুলিকে প্রাধান্য দিয়েছিলাম;) (এটি এবং আমার বিজ্ঞপ্তি জমা দেওয়ার উভয় ক্ষেত্রে)।
মার্টিন এন্ডার

@ এম.বুয়েটনার: আমি আসলে একমত আপনি পরিবর্তন করেন তাহলে i+=2থেকে i+=3, এটা আরো স্পষ্ট কি ঘটছে হতে পারে।
imallett

6

আমি আমার বাচ্চাকে এটি করতে, কিছুটা প্রোগ্রামিং শিখতে সহায়তা করেছি: http://jsfiddle.net/fs2000/4KLUC/34/ আপনি এটি কীভাবে পছন্দ করেন?


17
আপনি যদি পোস্টে আপনার কোডটি ফিট করতে পারেন তবে এটি করুন। এছাড়াও, # ভাষা (গুলি) - বাইটকাউন্টের মতো একটি শিরোনাম অন্তর্ভুক্ত করুন। আপনি যদি কেবল আপনার কোডটিতে ASCII অক্ষর ব্যবহার করেন তবে আপনি এখানে একটি দুর্দান্ত বাইকাউন্ট পেতে পারেন । আপনার কোডটি কী করে তার একটি সংক্ষিপ্তসার, আপনার কাছে থাকা কোনও অন্তর্দৃষ্টি বা কোনও চালাক জিনিস আপনার পোস্টে একটি দুর্দান্ত সংযোজন হতে পারে। যাইহোক, দারথ ভাদার কিছু লাইন দেখতে খুব কঠিন করে তোলে। পরিশেষে, কোড গল্ফ আপনাকে স্বাগতম!
রেইনবোল্ট

আপনি আপনার বাচ্চাদের সাথে কিছুটা প্রোগ্রামিং শিখেছিলেন এবং আমি কিছুটা গল্ফ শিখেছি। এটি আমার প্রথম গল্ফিং এবং ফলাফলটি এখনও আরও দীর্ঘ। বাইট গণনা: আসল: 55 + 6822 = 6877। কিছুটা পুনর্গঠিত : 39 + 3131 = 3170 গল্ফড : 39 + 1593 = 1632
বারটেকচম

6

কমোডোর 64 বেসিক - 38 বাইট

10 PRINT CHR$(205.5+RND(1)); : GOTO 10

এটি আমার আবিষ্কার নয়, আমি গত দিনগুলি থেকে খুব সুন্দর এবং সংক্ষিপ্ত প্রোগ্রামটি পুনরাবৃত্তি করছি। আসলে, 10 PRINT CHR$(205.5+RND(1)); : GOTO 10কোডটির এই অংশটি উদযাপনের নামে একটি পুরো বই রয়েছে !

আপনি এই ইউটিউব ভিডিওতে আউটপুট দেখতে পারেন ; এখানে একটি স্ক্রিনক্যাপ:

ইউটিউব স্ক্রিনক্যাপ

এখানে এই স্ট্যাকওভারফ্লো প্রশ্নটিতে এই গোলকধাঁধা-জেনারেটর প্রোগ্রামটির আরও বাস্তবায়ন রয়েছে। প্রোগ্রামটির সবচেয়ে সংক্ষিপ্ত বাস্তবায়ন হল এই প্রশ্নের লেখক পোস্ট করা নিম্নলিখিত 23-বাইট সি 64 বেসিক প্রোগ্রাম:

1?cH(109.5+rN(1));:gO1

যেখানে ছোট হাতের অক্ষরগুলি যেমন হয় তেমন প্রবেশ করানো হয় এবং শিফট কী ব্যবহার করে বড় হাতের অক্ষর প্রবেশ করানো হয় (এগুলির আসল সি screen64 স্ক্রিনে বিভিন্ন উপস্থিতি রয়েছে)।


এটি কি ঠিক একই রকম ব্রায়ানের জমা নেই? (কেবলমাত্র কিছুটা খাটো) এবং আপনার বাশের উত্তর কী? তাহলে এখানে প্রশ্নটিও, জংশন ছাড়াই একটি গোলকধাঁধা এখনও একটি গোলকধাঁধা?
মার্টিন এন্ডার

নিনেও, এই দুর্দান্ত ধারণার যথাযথ এবং সৎ গুণাবলী জন্য +1। @ m.buettner অপ্রিন্ট করা অঞ্চলটি আপনি উল্লেখ করার সাথে সাথে ব্রাঞ্জযুক্ত গোলকধাঁধা তৈরি করে produces যাইহোক (এবং আমি এখনও অবাক হয়েছি অন্য কেউ এটি এখনও দেখায় নি) মুদ্রিত অঞ্চলটি কিছু আকর্ষণীয়, তুচ্ছ, ব্রাঞ্চযুক্ত ম্যাজগুলি গঠন করে (আমার উত্তর দেখুন your) আমি আপনার গোলকধাঁধাকেও উজ্জীবিত করছি কারণ এটির সর্বোত্তম সংজ্ঞায়িত শুরু এবং শেষ রয়েছে I'm । এই তির্যক ম্যাজগুলিতে শুরু এবং শেষের সংজ্ঞা দেওয়া সহজ নয়।
স্তর নদী সেন্ট

@ এম.বয়েটনার ১. x86 বাইনারি এর ক্ষুদ্রতম মাত্র 10 বাইট হয়। ২. এটি একটি সু-সম্মানিত অ্যালগরিদম, এবং এটি মোটেই মূল নয়, এটি দ্রাবনযোগ্য গোলকধাঁধা তৈরির উদ্দেশ্যেও নয়।
ইসিয়া মিডোস

5

জাভা: 700

এখানে একটি পুনরাবৃত্ত প্রাচীর সংযোজক। অ্যালগরিদম এই সাইটে বর্ণিত হয়েছে :

public class Z{int i,j,u=20,v=u,g[][]=new int[v][u];public static void main(String[]a){new Z().d(0,0,20,20,0).p();}int q(int m){return(int)(Math.random()*m);}<T>void z(T m){System.out.print(m);}void p(){for(i=0;i++<u*2;z("_"));for(i=0;i<v;i++){z("\n|");for(j=0;j<u;j++){boolean b=i+2>v,s=g[i][j]%2>0||b;z(s?"_":" ");z(g[i][j]>1||j+2>u?"|":s&(j+1<u&&g[i][j+1]%2>0||b)?"_":" ");}}}Z d(int x,int y,int w,int h,int o){int a=x,b=y,c=a,d=b,e,f;boolean t=o<1;if(t){b+=q(h-2);c+=q(w);}else{a+=q(w-2);d+=q(h);}for(i=t?w:h;i-->0;j=t?a++:b++)if(a!=c&&b!=d)g[b][a]|=t?1:2;e=t?w:a-x+1;f=t?b-y+1:h;if(e>2&&f>2)d(x,y,e,f,e<f?0:1);e=t?w:x+w-a-1;f=t?y+h-b-1:h;if(e>2&&f>2)d(t?x:a+1,t?b+1:y,e,f,e<f?0:1);return this;}}

মূলত, এটি প্রতিটি আয়তক্ষেত্র দুটি প্রাচীর (এবং উত্তরণ) দিয়ে বিভক্ত করে, তারপরে দুটিগুলিকে বিভক্ত করে তোলে etc. ইত্যাদি এটি একটি "নিখুঁত" গোলকধাঁধা উত্পন্ন করে - একটি চক্রবিহীন একটি - যার প্রতিটি পয়েন্ট থেকে প্রতিটি পয়েন্ট পর্যন্ত একটি পথ রয়েছে। প্রচুর মৃত শেষ, সুতরাং বৃহত্তর মেজদের পক্ষে এটি কোনওভাবেই "তুচ্ছ" নয়।

সুতরাং, প্রবেশদ্বার এবং প্রস্থান নির্বিচারে সিদ্ধান্ত নেওয়া যেতে পারে। যদি আমাকে একটি চয়ন করতে হয় তবে এটি কেবল উপরে / বাম এবং নীচে / ডানদিকে বলবে।

এটি ডাবল-প্রস্থের ascii এ আঁকা, সুতরাং যদি আপনি কোনও আকারের একটি করছেন তবে কোনও ফাইলে আউটপুট পাইপ করা ভাল ধারণা। কনসোলে একটি 20x20 এখানে রয়েছে:

20x20

এবং নোটপ্যাডে একটি 100x100 ++ (টিআই সমস্ত পেতে আমাকে জুম আউট করতে হয়েছিল, তাই এটি কিছুটা ছোট ... )

100x100

লাইন বিরতি সহ কোড:

public class Z{
    int i,j,u=20,v=u,g[][]=new int[v][u];
    public static void main(String[]a){
        new Z().d(0,0,20,20,0).p();
    }

    int q(int m){return(int)(Math.random()*m);}
    <T>void z(T m){System.out.print(m);}

    void p(){
        for(i=0;i++<u*2;z("_"));
        for(i=0;i<v;i++){
            z("\n|");
            for(j=0;j<u;j++){
                boolean b=i+2>v,s=g[i][j]%2>0||b;
                z(s?"_":" ");
                z(g[i][j]>1||j+2>u?"|":s&(j+1<u&&g[i][j+1]%2>0||b)?"_":" ");
            }
        }
    }

    Z d(int x,int y,int w,int h,int o){
        int a=x,b=y,c=a,d=b,e,f;
        boolean t=o<1;
        if(t){
            b+=q(h-2);
            c+=q(w);
            }
        else{
            a+=q(w-2);
            d+=q(h);
        }

        for(i=t?w:h;i-->0;j=t?a++:b++)
            if(a!=c&&b!=d)
                g[b][a]|=t?1:2;

        e=t?w:a-x+1;f=t?b-y+1:h;
        if(e>2&&f>2)d(x,y,e,f,e<f?0:1);
        e=t?w:x+w-a-1;f=t?y+h-b-1:h;
        if(e>2&&f>2)d(t?x:a+1,t?b+1:y,e,f,e<f?0:1);
        return this;
    }
}

2

জেডএক্স বেসিক - ২৮১ টি অক্ষর

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

"::" হ'ল জেডএক্সবি'র পাঠ্য ফাইলে স্পেকট্রাম গ্রাফিক অক্ষর প্রবেশের উপায়, বিক্রয়কৃত ব্লকের অক্ষরের সমান।

randomize:border 1:paper 1:ink 6:cls
for x=0 to 30 step 2
 for y=0 to 20 step 2
  r=1+int(rnd*2)
  if x=30 and r=1 then 
   r=2
  end if
  if y=20 and r=2 then
   r=1
  end if
  print at y,x;"\::"
  print at y+(r=2),x+(r=1);"\::"
 next
next
print inverse 1;at 0,0;"S";at 20,31;"E"

ধাঁধা


2
না আমি আসলে বোঝাতে চাইছিলাম যে আপনার শুরু এবং সমাপ্তি (নীচে ডানদিকে শুরু করুন, উপরের বাম দিকে শুরু করুন) পরিবর্তন করা উচিত। এটি একেবারে তুচ্ছ হিসাবে দাঁড়িয়েছে, কারণ নিয়মের কারণে আপনাকে শেষের দিকে পৌঁছানোর জন্য সর্বদা নিচে এবং ডানদিকে যেতে হবে।
মার্টিন এন্ডার

1
এমনকি শুরু এবং শেষটি বিপরীত হলেও, ধাঁধাটির (সম্ভবত আকর্ষণীয়) বৈশিষ্ট্য রয়েছে যা সঠিক পথটি কেবল উপরে এবং বামে চলে যাবে। গোলকধাঁধা আর তুচ্ছ নয়, যদিও অনেকগুলি পয়েন্ট রয়েছে যেখানে আপনি দুটি উপায়ের মধ্যে যেতে পারেন।
কেভিন - মনিকা

1

সি- 244

#include <unistd.h>
#include <windows.h>
int main(i,j,rv,rs){srand( time(0));for (i = 0; i < 80; i++)for (j = 0; j <50 ; j++){rv = rand() %10;rs = rand() %100;if(rs < 10 || rs  > 90)continue;if(rv<4){gotoxy(i,j);printf("%c", '#');}}return 0;}

এটি দেখতে কেমন দেখাচ্ছে:

ধাঁধা

দ্রষ্টব্য: এই সমাধানটি অবিশ্বস্ত গেমের স্তর 8 দ্বারা অনুপ্রাণিত : বনভূমিতে।

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