সুচিপত্র:

Arduino Battleship Game: 3 ধাপ
Arduino Battleship Game: 3 ধাপ

ভিডিও: Arduino Battleship Game: 3 ধাপ

ভিডিও: Arduino Battleship Game: 3 ধাপ
ভিডিও: We built an LED battleship game box in a week 2024, নভেম্বর
Anonim
আরডুইনো ব্যাটলশিপ গেম
আরডুইনো ব্যাটলশিপ গেম

আমার মনে আছে ছোটবেলায় ব্যাটলশিপ গেমের একটি কাগজ এবং পেন্সিল সংস্করণ খেলেছি। প্রকৃতপক্ষে, এটি প্রায় ১ ম বিশ্বযুদ্ধের পর থেকে চলে আসছে। ১ 1960০ -এর দশকের গোড়ার দিকে আমার "ইলেকট্রনিক" বৈচিত্র ছিল যার নাম ছিল "সোনার সাব হান্ট" যার আলো এবং শব্দ এবং লুকানো খনি ছিল। আজকের ভিডিও গেমের মান অনুযায়ী ব্যাটলশিপ বেশ বিরক্তিকর কিন্তু আমি ভেবেছিলাম নাতনিরা এটি সম্পর্কে কী ভাবছে তা দেখার জন্য আমি যাই হোক না কেন এটি তৈরি করব। সর্বোপরি, কখনও কখনও বিপরীতমুখী শীতল হতে পারে।

এই প্রকল্পের বিট এবং টুকরো আছে যা অন্য কোথাও কাজে লাগবে এমনকি যদি আপনি ব্যাটলশিপ গেম তৈরিতে আগ্রহী নাও হন। এটিতে একটি সাধারণ 4-বিট 1602 এলসিডি ইন্টারফেস রয়েছে যা একটি নির্দিষ্ট চরিত্রের অবস্থান নির্ধারণের জন্য একটি রুটিন অন্তর্ভুক্ত করে। একটি 4x4 সুইচ ম্যাট্রিক্স ডিকোড করার জন্য একটি ইন্টারফেস রয়েছে। এই দুটি ইন্টারফেস আলাদা আলাদা ফাইল হিসেবে পাওয়া যায় যাতে সেগুলি সহজেই পরিবহনযোগ্য হয়। গেমটিতে বিভিন্ন সাউন্ড এফেক্ট রুটিন এবং একটি সাধারণ ওয়ান-ট্রানজিস্টার অডিও এম্প্লিফায়ার সার্কিট রয়েছে।

ধাপ 1: হার্ডওয়্যার

হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার

এখানে উপস্থাপিত পরিকল্পিত একটি একক প্লেয়ারের জন্য তাই দুটি ইউনিট তৈরি করতে হবে। ইউনিটগুলি একটি 3-তারের ইন্টারফেস ব্যবহার করে যোগাযোগ করে যা UART TX এবং RX লাইন এবং একটি স্থল তারের অন্তর্ভুক্ত। আমি একটি আদর্শ 1/8 ইঞ্চি স্টেরিও হেডফোন জ্যাক এবং উভয় প্রান্তে পুরুষ প্লাগ সহ একটি স্ট্যান্ডার্ড কেবল ব্যবহার করা বেছে নিয়েছি। একটি বাক্স থেকে RX অন্য বাক্সের TX এ যায় এবং এর বিপরীতে। আপনি এটি করতে পারেন বাক্সের ভিতরে হেডফোন জ্যাকের কাছে বিক্রি হওয়া তারগুলি অদলবদল করে অথবা যখন আপনি এটি তৈরি করেন তখন সার্কিট বোর্ডে সেগুলি অদলবদল করে।

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

16 জাহাজের অবস্থানগুলি সুইচ প্রয়োজনীয়তার সাথে সুন্দরভাবে ফিট করে কারণ এটি 4x4 ম্যাট্রিক্সের অনুমতি দেয়। এখানে 4x4 ম্যাট্রিক্স সুইচ প্যাড পাওয়া যায় কিন্তু আমি লিনিয়ার ডিসপ্লে মেলাতে একক লাইনে পৃথক সুইচ ব্যবহার করা বেছে নিয়েছি। যাইহোক, আমি 4x4 ম্যাট্রিক্স হিসাবে সুইচগুলিকে ওয়্যার করেছি যাতে কেবল আটটি আরডুইনো পিনের প্রয়োজন হয়। সুইচ ওয়্যারিং ডায়াগ্রাম এবং সঠিক সংযোগের জন্য পরিকল্পিত পড়ুন।

এলসিডি ডিসপ্লে 4-বিট ইন্টারফেসের জন্য তারযুক্ত। কোন খেলোয়াড়ের শট নেওয়া উচিত তা নির্দেশ করার জন্য আমি পিন D13 তে একটি বহিরাগত LED যোগ করেছি। প্রাথমিকভাবে, খেলোয়াড়রা সিদ্ধান্ত নেয় কে প্রথম শট নেয় এবং তারপর সফটওয়্যারটি স্বয়ংক্রিয়ভাবে গেমের পিছনে এবং পিছনে নিয়ন্ত্রণ করে।

আমি শট, বিস্ফোরণ, খেলা প্রস্তুত এবং বিজয়ী/পরাজিতের জন্য সাধারণ শব্দ প্রভাব যোগ করতে চেয়েছিলাম। আমি একটি সাধারণ পাইজো বুজার ব্যবহার করার চেষ্টা করেছি কিন্তু পরিবর্তে একটি ছোট স্পিকার দিয়ে শেষ করেছি। স্পিকারের প্রয়োজনীয় বর্তমান আরডুইনো যা সামলাতে পারে তার চেয়ে বেশি তাই একটি সহজ ট্রানজিস্টার এম্প্লিফায়ার যুক্ত করা হয়েছিল। শব্দটি এখনও দুর্দান্ত নয় তবে এটি বাজারের চেয়ে ভাল। আমার স্পিকার 4 ohms কিন্তু যদি আপনার একটি 8-ohm থাকে তবে পরিকল্পিতভাবে প্রতিরোধককে 39 ohms থেকে 33 ohms এ পরিবর্তন করুন। যদি আপনি একটি পাইজো বুজার ব্যবহার করেন তবে আপনি এটি সরাসরি Arduino পিন থেকে চালাতে সক্ষম হবেন যা মাটির সাথে সংযুক্ত বুজারের অন্য পাশে রয়েছে।

একটি বহিরাগত রিসেট সুইচও অন্তর্ভুক্ত করা হয় এবং সরাসরি স্থল এবং আরডুইনোতে "রিসেট" পিনের মধ্যে তারযুক্ত করা হয়। এটি গেমটি পুনরায় চালু করার উপায় সরবরাহ করে।

ধাপ 2: সফটওয়্যার

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

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

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

ধাপ 3: স্ক্রিন শট

স্ক্রিন শট
স্ক্রিন শট
স্ক্রিন শট
স্ক্রিন শট
স্ক্রিন শট
স্ক্রিন শট
স্ক্রিন শট
স্ক্রিন শট

এখানে খেলা থেকে কিছু স্ক্রিন শট আছে। এই পোস্টের জন্য এটাই। আমার অন্যান্য নির্দেশিকা এবং আমার ওয়েবসাইট দেখুন: www.boomerrules.wordpress.com

প্রস্তাবিত: