সুচিপত্র:

মাইনসুইপার: 5 টি ধাপ (ছবি সহ)
মাইনসুইপার: 5 টি ধাপ (ছবি সহ)

ভিডিও: মাইনসুইপার: 5 টি ধাপ (ছবি সহ)

ভিডিও: মাইনসুইপার: 5 টি ধাপ (ছবি সহ)
ভিডিও: How To Fix Windows 10 Automatic Repair Loop | উইন্ডোজ স্বয়ংক্রিয় মেরামত 2024, নভেম্বর
Anonim
মাইনসুইপার
মাইনসুইপার

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

ধাপ 1: ওভারভিউ

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

ধাপ 2: উপকরণ

  • ডিজিলেন্ট, ইনকর্পোরেটেড থেকে বেসিস 3 ডেভেলপমেন্ট বোর্ড।
  • ভিভাদো ডিজাইন স্যুট BC_DEC.vhd (এই ফাইলটি Polylearn এ আমাদের প্রদান করা হয়েছিল এবং ব্রায়ান মেলি লিখেছিলেন)
  • টি ফ্লিপ ফ্লপ দিয়ে তৈরি একটি 4 বিট কাউন্টার
  • একটি এফএসএম

ধাপ 3: গেম তৈরি করা

গেম তৈরি করা
গেম তৈরি করা
গেম তৈরি করা
গেম তৈরি করা

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

খেলার সম্পূর্ণ ভিত্তি এলোমেলোভাবে 16 টি সুইচগুলির মধ্যে একটিকে বোমা দিয়ে সক্রিয় করার জন্য ঘোরাফেরা করে, এবং খেলোয়াড়দের জন্য না জানা যে কোন সুইচটি সক্রিয় থাকে যতক্ষণ না সেই সক্রিয় সুইচটি উল্টানো হয়। আমরা অনলাইনে এলোমেলো এবং ছদ্মবেশী সংখ্যা জেনারেটরগুলি দেখেছি, কিন্তু আমরা অবশেষে সিদ্ধান্ত নিয়েছি যে 4-বিট কাউন্টার ব্যবহার করা এবং সংশ্লিষ্ট সুইচটি সক্রিয় করার জন্য আমরা যা খুঁজছিলাম তার জন্য যথেষ্ট এলোমেলো। এই অ্যাসাইনমেন্টের জন্য কাজ করতে সক্ষম হওয়ার জন্য আমরা আমাদের পূর্ববর্তী একটি প্রজেক্টে তৈরি আমাদের 4-বিট কাউন্টার পুনরায় ব্যবহার করতে সক্ষম হয়েছিলাম। আমরা কাউন্টার ব্যবহার করে 0-15 এর মধ্যে একটি এলোমেলো সংখ্যা তৈরি করেছি; তারপর main1 কম্পোনেন্টে, আমরা র্যান্ডম সংখ্যার দশমিক সমতুল্য বোর্ডে তার সংশ্লিষ্ট সুইচের জন্য নির্ধারিত করেছি। স্কিম্যাটিক হিসাবে দেখা যায়, মেইন 1 কম্পোনেন্ট থেকে এক্সপুট এক্স ('অ্যাক্টিভ বোমা') এবং খেলোয়াড়দের চালু করা সুইচগুলি এফএসএম 1 এ যান। রাজ্য মেশিনটি এক বিট Z মান আউটপুট করে যা পরে BC_DEC1 দ্বারা পড়ে। আমাদের ব্যবহৃত ফিনাইট স্টেট মেশিনের দুটি ভিন্ন রাজ্য রয়েছে: A রাজ্যে, সাতটি সেগমেন্ট ডিসপ্লে আউটপুট 'প্লে' করে এবং মেশিনটি সেই অবস্থায় থাকে যতক্ষণ না এটি স্বীকার করে যে সক্রিয় সুইচটি উল্টে গেছে। একবার এটি হয়ে গেলে, এফএসএম স্টেট বি তে যায় যেখানে এটি সাতটি সেগমেন্ট ডিসপ্লেতে 'লস' আউটপুট করে এবং 16 টি সুইচ '0' না হওয়া পর্যন্ত সেই অবস্থায় থাকে। যখন সেই শর্ত পূরণ হয়, তখন FSM আবার রাষ্ট্র A তে যায় এবং খেলোয়াড়দের জন্য অপেক্ষা করে অন্য খেলা শুরু করার জন্য। এই FSM বুঝতে সাহায্য করার জন্য একটি মুর ডায়াগ্রাম উপরে দেখানো হয়েছে।

ধাপ 4: ভবিষ্যতের পরিবর্তন

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

ধাপ 5: উপসংহার

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

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

প্রস্তাবিত: