যখন আমি ছোট ছিলাম, আমি ইন্টেলিভিশন গেমটি অ্যাডভান্সড ডুনজোনস এবং ড্রাগনস: ট্রেমিন অফ ট্রেমিন খেলতাম । 3-ডি গ্রাফিক্স আপনাকে চমকপ্রদ বাস্তবতার সাথে প্রথম ব্যক্তির দৃষ্টিভঙ্গিতে ফেলেছে:
তবে আমি একটি সি 64 পেয়েছিলাম। এবং আমি স্ক্রিনের চারপাশে কার্সার করে, সিটিআরএল কী এবং একটি অঙ্ক দিয়ে রঙ সেট করে এবং যেখানেই চাই প্রতীক রেখে (কেন bash
আমাকে এটি করতে দেয় না ?) 40x25 চরিত্রের গ্রিডটি আঁকতে সক্ষম হয়েছি । অক্ষর সেটটিতে ত্রিভুজাকার উপাদান এবং শক্ত ব্লক উপাদান ছিল। সুতরাং আমি সেই মাধ্যমের মাধ্যমে গ্রিডে কীভাবে নিজের দৃষ্টিভঙ্গির কোনও উত্স তৈরি করতে পারে তার মাধ্যমে আমি যুক্তি করতে সক্ষম হয়েছি।
আমি প্রায় তিন-দশক-পুরানো অনুমানটি পেয়েছি, সর্পিল-বাঁধা নোটবুক পেপারে, এই সপ্তাহে "অন্ধকূপ নির্মাণের সেট" সম্পর্কে:
( আপডেট) : যত্নবান পাঠকগণ লক্ষ্য করবেন যে এটি স্লেড অংশগুলিকে একসাথে ধরে রাখে না below সংশোধিত নম্বরগুলি নীচে সরবরাহ করা হয়েছে)
যদিও Tarmin দ্য ট্রেজার একটি গ্রিড উপর খেলা হয়েছিল, দেয়াল শুধুমাত্র অস্তিত্ব প্রান্ত গ্রিড বর্গের। বাইটগুলি কী কী তা শিখেছি, আমি বুঝতে পেরেছিলাম যে আমি যদি মানচিত্রকে বাইটের বাইরে তৈরি করি ... তবে মানচিত্রে প্রতিটি বর্গক্ষেত্রের প্রতিটি প্রান্তের জন্য চারটি সম্ভাব্য রাজ্য থাকতে পারে:
- অনিরুদ্ধ
- প্রাচীর
- দরজা
- অন্যকিছু?
আমি কখনই এটি লিখতে পারি নি (শেষ রাত অবধি)। আমি ভেবেছিলাম অন্যের চেষ্টা করা মজাদার হতে পারে।
সুতরাং আপনার কাজটি হ'ল একটি অক্ষর-মোড-ভিত্তিক গোলকধাঁধা রেন্ডারার কার্যকর করা যা আমার (সংশোধিত !!) প্রয়োগ করে স্পেস করে ... তবে 2013 এর প্রযুক্তি ব্যবহার করে।
ইনপুট
কারণ স্পোকটি দরজার জন্য রেন্ডারিং সংজ্ঞা দেয় না, আমরা কেবলমাত্র একমাত্র বিকল্পগুলি দেওয়াল এবং না-দেয়াল বলে ধরে নেব। সরলতার জন্য, আপনার ইনপুটটি স্ট্রিংয়ের রেখার সমন্বয়ে তৈরি মানচিত্র যা দেখতে দেখতে এটি:
WN.. .N.. .N.. .N.. .N.E
W... .... .... ..S. ...E
W... .N.E W... .N.. ...E
W... .... .... .... ...E
W.S. ..S. ..S. ..S. ..SE
এটি একটি 5x5 মানচিত্র হবে। উপরের বাম কোণে (1,1) এর W
এস্ট এবং N
orth প্রাচীর সেট রয়েছে। নীচের ডান কোণে (5,5) এর মুখ S
এবং আছেE
অ্যাস্ট প্রাচীর সেট রয়েছে।
কোনও মানচিত্রের নেভিগেশন ছাড়াই এটি যথেষ্ট কম মজাদার। সুতরাং সর্বনিম্ন, আপনার খেলোয়াড়কে (1,1) উত্তরের দিকে রাখুন এবং তাদের অফার করুন:
[F]orward, [B]ackward, turn [L]eft, turn [R]ight or [Q]uit?
প্রতিটি পদক্ষেপে, নোটবুক পেপার স্পেক দ্বারা সংজ্ঞায়িত হিসাবে প্রথম ব্যক্তির দৃষ্টিভঙ্গির একটি 16x15 প্রদর্শন আউটপুট করুন। আপনাকে গণনা করা থেকে বাঁচানোর জন্য, তিনটি দূরত্বে ফ্ল্যাট দেয়ালের আকার হ'ল:
14x13 (directly in front of you; e.g. wall is in same cell)
8x7 (one step away)
6x5 (two steps away)
স্লেন্টেড দেয়ালের সীমানা আকারগুলি হ'ল:
1x15 (your direct left or right; e.g. wall is in same cell)
3x13 (one step away)
1x7 (two steps away)
ব্যাখ্যা
সংলগ্ন কোষগুলি ভাগ করা দেয়াল সম্পর্কে একমত হতে পারে। সুতরাং একটি বর্গক্ষেত্রের দক্ষিণ প্রান্তটি প্রাচীর হতে পারে, যখন বর্গাকার দক্ষিণে উত্তর প্রান্তটি অবরুদ্ধ নয়। মূল নকশায় আমি এটিকে একটি বৈশিষ্ট্য হিসাবে বিবেচনা করেছি: এটি একমুখী দরজা ... বা অদৃশ্য দেয়ালগুলির মতো আকর্ষণীয় ধারণাগুলির অনুমতি দেয় যা কেবলমাত্র আপনি সেগুলির মধ্য দিয়ে যাওয়ার পরে প্রদর্শিত হবে। এই সরলকরণের জন্য, একই নিয়মটি অনুসরণ করুন: নেভিগেশন এবং রেন্ডারিংয়ের জন্য, আপনি যে দিকে মুখোমুখি হচ্ছেন সেদিকে আপনার নিকটতম ঘরের কেবল প্রান্তের অবস্থানে মনোযোগ দিন ।
"শেডিং" দিয়ে ভিউটি অনেক ভাল। সুতরাং আপনার সম্পূর্ণ ব্লকগুলির জন্য, ইউনিকোড 2593 25 এবং 2591 either এর বিকল্প, অথবা ব্যবহার করুন
X
এবং+
যদি আপনার বাস্তবায়ন ASCII হয়।ইউনিকোড ত্রিভুজ অক্ষর (25E2 ◢, 25E3 ◣, 25E4 ◤, 25E5 ◥) এটি আঁকার জন্য কিছুটা খোঁড়া। কোনও ছায়াযুক্ত বৈকল্পিক না থাকা ছাড়াও তারা প্রায়শই কেবল অক্ষরের প্রস্থকে প্রসারিত করে পুরো উচ্চতা নয় ... এমনকি নির্দিষ্ট প্রস্থের ফন্টেও। আমি যে জায়গায় ডায়াগোনগুলি চেয়েছিলাম সেখানে আপনি পুরো ব্লক বা স্ল্যাশ অক্ষর বা আপনার পছন্দের কিছু আঁকতে পারেন। আকর্ষণীয় সৃজনশীল সমাধান যা রঙকে সংযুক্ত করে এবং শেডগুলি প্রশংসার পরিবর্তে এই অক্ষরগুলি ব্যবহার করে।
আপনি ধরে নিতে পারেন বাহিরের দেওয়ালগুলি খেলার ক্ষেত্রটি আবদ্ধ করার জন্য সেট করা আছে, তাই আপনাকে গোলকধাঁধার বাইরে কিছু রেন্ডারিংয়ের চিন্তা করতে হবে না। স্পেকটিকে উপেক্ষা করার চেয়ে আপনার থেকে দূরে থাকা কোনও দেয়াল কেবল খালি জায়গা ছেড়ে দেয়।
(1,1) উত্তর দিকে মুখ করে যদি আপনি সরাসরি আপনার সামনে দেখতে পান দেয়ালের শেডটি অন্ধকার হওয়া উচিত। মানচিত্রে সংলগ্ন দেয়ালের বিকল্প ছায়া গোছানো, যেমন যদি সমস্ত দেয়াল উপস্থিত থাকে তবে হালকা প্রাচীর কখনও অন্ধকার প্রাচীরকে থামিয়ে দেয় না।
একটি সি-64৪ বাস্তবায়ন যা মূলত আমি যা করছিলাম মূলত তা করায় ... ত্রিভুজ অক্ষর এবং সমস্ত দিয়ে ... অন্য কোনও প্রবেশের মাপদণ্ডকে ট্রাম্প করবে। :-)
উদাহরণ
উপরে দেওয়া নমুনা মানচিত্রের জন্য ...
(1,3) দক্ষিণে মুখোমুখি:
/
/+
/X+
/XX+
/XXX+
+++++XXXXXX+XXX+
+++++XXXXXX+XXX+
+++++XXXXXX+XXX+
+++++XXXXXX+XXX+
+++++XXXXXX+XXX+
\XXX+
\XX+
\X+
\+
\
(3,2) দক্ষিণে মুখোমুখি:
/* blank line */
X /
X /+
X /++
X +++
X +++
X +++
X +++
X +++
X +++
X +++
X \++
X \+
X \
/* blank line */
(3,2) পূর্ব দিকে মুখোমুখি:
/* blank line */
/
/X
/XX
XXX
+++++XXXXXX+XXX+
+++++XXXXXX+XXX+
+++++XXXXXX+XXX+
+++++XXXXXX+XXX+
+++++XXXXXX+XXX+
XXX
\XX
\X
\
/* blank line */
(2,3) উত্তরে মুখোমুখি:
/
++++++++++++++X
++++++++++++++X
++++++++++++++X
++++++++++++++X
X++++++++++++++X
X++++++++++++++X
X++++++++++++++X
X++++++++++++++X
X++++++++++++++X
++++++++++++++X
++++++++++++++X
++++++++++++++X
++++++++++++++X
\
X
দেখার জন্য আপনি দয়া করে দুটি কলামের গুলি ব্যাখ্যা করতে পারেন 3, 2
?