
সুচিপত্র:
2025 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2025-01-23 14:36

আমি খুব খুশি যে আপনি আবার আমার সাথে যোগ দিয়েছেন! এর মানে হল Wumpus আপনাকে এখনো খায়নি। ভাল!
আপনারা যারা পরিচিত নন তাদের জন্য, এই টিউটোরিয়ালগুলির একটি সেট আমি আমার আরাধ্য oochy-skootchy উইডেল চাচাতো ভাইকে তার সিনিয়র প্রজেক্টে সাহায্য করার জন্য তৈরি করছি। এই টিউটোরিয়ালগুলি টুইন এবং সুগারকিউবের কিছু প্রোগ্রামিং বৈশিষ্ট্যগুলির সাথে আপনি কী করতে পারেন তার একটি রেফারেন্স হিসাবে বোঝানো হয়েছে। আপনি যদি অনুসরণ করতে চান, আপনি এখানে প্রথম টিউটোরিয়াল খুঁজে পেতে পারেন।
শেষ টিউটোরিয়ালে, আমি একটি ছোট ঘর তৈরি করেছি যা খেলোয়াড় অন্বেষণ করতে পারে। আমি একটি Wumpus বস্তু যোগ করেছি, এবং Wumpus কোথায় আছে তার উপর নির্ভর করে প্রতিটি ঘরে কি প্রদর্শিত হবে তা পরিবর্তন করার জন্য কিছু জেনেরিক রুম কোড তৈরি করেছি।
ধাপ 1: আপনার প্লেয়ার তৈরি করুন

এই ধাপটি খুবই সহজ। মূলত আমি শুধু আমার $ wumpus হিসাবে একই কোড ব্যবহার করছি, কিন্তু পরিবর্তে একটি $ player পরিবর্তনশীল সঙ্গে।
ধাপ 2: নতুন রুম কোড

আপনার জেনেরিক রুমের কোড পরিবর্তন করেছেন যাতে $ player এর মান হল বর্তমান রুম। তারপর বর্তমান রুমের পরিবর্তে $ wumpus $ player এর সাথে তুলনা করুন।
এটি একটি ছোট পরিবর্তন, এবং সম্পূর্ণরূপে প্রয়োজনীয় নয়, কিন্তু আমি আমার কোড সংগঠিত রাখতে পছন্দ করি।
ধাপ 3: একটি পরিবর্তনশীল থেকে একটি লিঙ্ক তৈরি করা

অবশেষে, আমার শুরুর ঘরে লিঙ্কটি প্রতিস্থাপন করতে চান যা $ player এর মান অনুসারে পরিবর্তিত হয়। এটি সুগারকিউবে "" ফাংশন দিয়ে করা যেতে পারে। সুগারকিউবের ডকুমেন্টেশন পৃষ্ঠায় আপনি এটি সম্পর্কে আরও পড়তে পারেন।
আমাদের কমান্ডের পর প্রথম স্ট্রিং হল ফ্রেজ যা আমাদের প্যাসেজে দেখা যাবে। দ্বিতীয়টি হল যে প্যাসেজের সাথে আমরা লিঙ্ক করতে চাই। আমি ব্যবহার করছি "হাম্প দ্য উইম্পাস!" আমার বাক্যাংশ হিসাবে, কিন্তু আমরা সেখানে আমাদের পরিবর্তনশীল ব্যবহার করতে পারি যদি আমরা খেলোয়াড়কে জানতে চাই যে তারা আগে কোথায় যাচ্ছে, এইভাবে:
ধাপ 4: পরীক্ষা


যখন আপনি আপনার কোডটি পরীক্ষা করেন, তখন আপনাকে খুঁজে বের করতে হবে যে আপনার লিঙ্কটি পূর্বে আপনি যা লিখেছেন তা দিয়ে প্রতিস্থাপন করা হয়েছে। এটি ক্লিক করলে আপনাকে আপনার গেমের একটি এলোমেলো ঘরে নিয়ে যাবে।
দুর্ভাগ্যবশত, এটি আপনাকে সরাসরি Wumpus রুমে নিয়ে যেতে পারে! এটি এখন খুব বেশি গুরুত্বপূর্ণ নয়, তবে একটি বাস্তব খেলায় এটি একটি তাত্ক্ষণিক খেলা হবে। আমাদের এটা ঠিক করতে হবে।
ধাপ 5: একটি রুম তালিকা যোগ করুন

প্রথমত, আমরা একটি রুমের তালিকা তৈরি করতে যাচ্ছি, যাতে কক্ষের ব্যবস্থাপনা সহজ হয়। এই অ্যারে ডিক্লেয়ার করে, আমরা এটি ব্যবহার করে আমাদের $ player এবং $ wumpus ভ্যালু সেট করতে পারব কোডটি পুনরাবৃত্তি না করে। এটির আরও একটি সুবিধা রয়েছে যা আমরা পরবর্তীতে অন্বেষণ করব।
এই কোডটি দিয়ে পরীক্ষা করা উচিত যেমনটি আগে ছিল।
ধাপ 6: রুম নির্মূল করা

আমি আগে থেকে কোডে কোডের একটি লাইন যুক্ত করেছি (হাইলাইট করা হয়েছে)।
সুগারকিউবের অ্যারেগুলির একটি অন্তর্নির্মিত ফাংশন রয়েছে যা আপনাকে নাম দিয়ে তাদের থেকে উপাদানগুলি মুছতে দেয়। এই ক্ষেত্রে, একবার আমরা $ wumpus একটি ঘর বরাদ্দ করলে, আমরা আমাদের $ roomlist থেকে সেই ঘরটি মুছে ফেলতে পারি। এই ফাংশন, যদিও। এটি কাজ করবে না যদি না ফাংশনের আউটপুট বরাদ্দ করা হয় বা কোনভাবে ব্যবহার করা হয়। এর যত্ন নেওয়ার জন্য, আমি অস্থায়ী পরিবর্তনশীল _temp তৈরি করেছি।
সুগারকিউবে, ডলার ($) এর পরিবর্তে একটি আন্ডারস্কোর (_) দিয়ে অস্থায়ী ভেরিয়েবল শুরু হয়। এগুলি দরকারী কারণ প্যাসেজটি চালানোর পরে সেগুলি মুছে ফেলা হয়, তাই আপনাকে পরিবর্তনশীল নামগুলি ওভারল্যাপ করার বিষয়ে চিন্তা করতে হবে না।
আমি অবশ্যই $ roomlist $ roomlist থেকে মুছে দিচ্ছি, ঠিক যেমন একটি বিষয়।
ধাপ 7: পরীক্ষা


যদিও আমরা কোডটি এখনকার মতো চালাতে পারি, এটি খুব পুঙ্খানুপুঙ্খ পরীক্ষা হবে না। যদি আমরা কোডটি চালাই এবং খুঁজে পাই যে $ player এবং $ wumpus বিভিন্ন রুমে বরাদ্দ করা হয়েছে, আমরা জানি না যে কোডটি কাজ করে কিনা, অথবা এটি কেবল সুযোগ। অবশ্যই, আমরা কোডটি অনেকবার চালাতে পারি, এবং ধরে নিই যে যদি এটি তাদের উভয়কে একই রুম না দেয় যা এটি কখনই করবে না, তবে এটি চিরতরে লাগবে এবং এটি এখনও 100% আশ্বাস দেয় না যে এটি কখনই ঘটতে পারে না।
পরিবর্তে, আমাদের চেক করার একটি উপায় প্রয়োজন।
আমি আমাদের ইন্ট্রো প্যাসেজের শীর্ষে তিনটি লাইন যুক্ত করেছি যা আমাদের $ wumpus, $ player এবং $ roomlist ভেরিয়েবলের মান দেখতে দেবে। যেভাবে আমরা আমাদের কোড সেট আপ করেছি, আমরা জানি যে $ wumpus রুম এবং $ player রুম $ roomlist থেকে বাদ দেওয়া উচিত।
যখন আমরা এই কোডটি চালাই, তখন আমরা নিশ্চিত করতে পারি যে এটি ঠিক।
ধাপ 8: সুগারকিউব এবং অবজেক্টের সাথে অদ্ভুততা



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


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

আমরা কোড যোগ করেছি যা আমাদের খেলোয়াড়কে একটি এলোমেলো ঘরে শুরু করতে দেয়। তা ছাড়া, আমরা একটি বাগ নির্মূল করেছি যেখানে খেলোয়াড় Wumpus- এর মতো একই রুমে শুরু হবে।
আমরা ভেরিয়েবল থেকে কিভাবে লিঙ্ক তৈরি করতে হয়, এবং সুগারকিউব দ্বারা অ্যারে কপি করা হয় সে সম্পর্কে আমরা শিখেছি।
জিনিসগুলি বাড়ছে, কিন্তু আমরা কেবল শুরু করছি!
শুভ শিকার!
প্রস্তাবিত:
জিপিআরএস (সিম কার্ড) ডেটা লিঙ্ক সহ কমপ্যাক্ট ওয়েদার সেন্সর: 4 টি ধাপ

জিপিআরএস (সিম কার্ড) ডেটা লিঙ্ক সহ কম্প্যাক্ট ওয়েদার সেন্সর: প্রকল্পের সারসংক্ষেপ এটি একটি BME280 তাপমাত্রা/চাপ/আর্দ্রতা সেন্সর এবং এটিএমইগা 328 পি এমসিইউ এর উপর ভিত্তি করে একটি ব্যাটারি চালিত আবহাওয়া সেন্সর। এটি দুটি 3.6 V লিথিয়াম থিওনাইল AA ব্যাটারিতে চলে। এটি একটি খুব কম ঘুমের খরচ 6 µA। এটি পাঠায়
AC থেকে +15V, -15V 1A ভেরিয়েবল এবং 5V 1A স্থির বেঞ্চ ডিসি পাওয়ার সাপ্লাই: 8 টি ধাপ

AC থেকে +15V, -15V 1A ভেরিয়েবল এবং 5V 1A স্থির বেঞ্চ ডিসি পাওয়ার সাপ্লাই: একটি পাওয়ার সাপ্লাই একটি বৈদ্যুতিক যন্ত্র যা বৈদ্যুতিক লোডে বৈদ্যুতিক শক্তি সরবরাহ করে। এই মডেল পাওয়ার সাপ্লাইটিতে তিনটি সলিড-স্টেট ডিসি পাওয়ার সাপ্লাই রয়েছে। প্রথম সরবরাহ 1 এম্পিয়ার পর্যন্ত ইতিবাচক 1.5 থেকে 15 ভোল্টের একটি পরিবর্তনশীল আউটপুট দেয়।
সুগারকিউব সহ টুইনে জেনেরিক রুম: 11 টি ধাপ

সুগারকিউব সহ টুইনে জেনেরিক রুম: হ্যালো হ্যালো এবং সুগারকিউব দিয়ে টুইনে ইন ওয়াম্পাস হান্ট তৈরির বিষয়ে আমার টিউটোরিয়ালে স্বাগতম! আমার প্রিয় ছোট চাচাতো ভাই তার সিনিয়র প্রকল্পের জন্য টুইনের সাথে একটি গেম তৈরি করতে বেছে নিয়েছেন, একটি
আপনার রাস্পবেরি পাইতে স্টিম লিঙ্ক: 4 টি ধাপ

আপনার রাস্পবেরি পাইতে স্টিম লিংক: স্টিম লিংক হল আপনার স্টিম গেমস লাইব্রেরিকে আপনার হোম নেটওয়ার্কের মাধ্যমে বাড়ির যে কোন ঘরে প্রসারিত করার একটি সমাধান। আপনি আপনার রাস্পবেরি পাইকে স্টিম লিংকে পরিণত করতে পারেন
স্ক্র্যাপ অ্যালুমিনিয়াম শীট থেকে এয়ার ভেরিয়েবল ক্যাপাসিটর: 18 টি ধাপ (ছবি সহ)

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