विषयसूची:

माइनस्वीपर: 5 कदम (चित्रों के साथ)
माइनस्वीपर: 5 कदम (चित्रों के साथ)

वीडियो: माइनस्वीपर: 5 कदम (चित्रों के साथ)

वीडियो: माइनस्वीपर: 5 कदम (चित्रों के साथ)
वीडियो: How to play Minesweeper (easy mode) | OneSeven TV 2024, नवंबर
Anonim
सुरंग हटानेवाला ट्रालर-जहाज़
सुरंग हटानेवाला ट्रालर-जहाज़

हमारे सीपीई 133 अंतिम प्रोजेक्ट के लिए, चेस और मैंने एक 'माइनस्वीपर' गेम बनाने का फैसला किया, जिसमें बेसिस-3 बोर्ड के साथ-साथ वीएचडीएल कोड से बटन और स्विच इनपुट का उपयोग किया गया था। खेल के लिए एक बेहतर नाम 'रूसी रूले' हो सकता है, हालांकि हम अधिक परिवार के अनुकूल नाम के साथ जाना चाहते थे। गेम में उपयोगकर्ता को बेसिस बोर्ड पर मध्य बटन दबाने के लिए 16 स्विचों में से एक को बम के साथ 'सक्रिय' होने के लिए यादृच्छिक रूप से असाइन करना शामिल है। दो खिलाड़ी तब बारी-बारी से स्विच अप करते हैं, एक बार में, जब तक कि कोई एक खिलाड़ी 'बम' के साथ स्विच को फ़्लिप नहीं करता। जब ऐसा होता है, तो सात खंडों का प्रदर्शन खिलाड़ियों को सचेत करता है कि वह खिलाड़ी अभी-अभी हार गया है।

चरण 1: अवलोकन

इस परियोजना ने कई वीएचडीएल मॉड्यूल का उपयोग किया है जिनका हमने इस तिमाही के दौरान उपयोग किया है। एक स्विच को सक्रिय करने के लिए एक यादृच्छिक चार बिट संख्या को अनुकरण करने के लिए घड़ी के किनारे के साथ संयोजन के रूप में एक चार बिट काउंटर का उपयोग किया गया था। सात खंडों के प्रदर्शन में अलग-अलग शब्दों को आउटपुट करने के लिए एक राज्य आरेख का भी उपयोग किया गया था, जिसमें 'प्ले' से लेकर जब खिलाड़ी अपने खेल के बीच में होते हैं, तो 'LOSE' तक, जब खिलाड़ियों में से एक ने सक्रिय स्विच फ़्लिप किया हो।

चरण 2: सामग्री

  • डिजिलेंट, इंक. से बेसिस३ डेवलपमेंट बोर्ड।
  • विवाडो डिज़ाइन सूट BC_DEC.vhd (यह फ़ाइल हमें पॉलीलर्न पर प्रदान की गई थी और ब्रायन मीली द्वारा लिखी गई थी)
  • टी फ्लिप फ्लॉप से बना एक 4 बिट काउंटर
  • एक एफएसएम

चरण 3: गेम बनाना

खेल बनाना
खेल बनाना
खेल बनाना
खेल बनाना

इस खेल को बनाने की दिशा में पहला कदम उन सभी घटकों के साथ एक सर्किट आरेख बनाना था जिनका हम उपयोग करेंगे। इस सिस्टम के लिए इनपुट थे बटन 1, 16 स्विच और क्लॉक। आउटपुट सात खंड प्रदर्शन और एनोड थे। सर्किट आरेख बनाने के बाद, हमने विवाडो में प्रत्येक घटक के लिए अलग-अलग स्रोत फाइलें लिखीं और उन्हें मुख्य स्रोत फ़ाइल के तहत पोर्ट मैप्स का उपयोग करके एक साथ रखा।

खेल का पूरा आधार बम के साथ सक्रिय होने के लिए 16 स्विचों में से एक को बेतरतीब ढंग से असाइन करने के इर्द-गिर्द घूमता है, और खिलाड़ियों को यह नहीं पता होता है कि कौन सा स्विच तब तक सक्रिय है जब तक कि सक्रिय स्विच चालू नहीं हो जाता। हमने ऑनलाइन यादृच्छिक और छद्म यादृच्छिक संख्या जेनरेटर में देखा, लेकिन हमने अंततः निर्णय लिया कि 4-बिट काउंटर का उपयोग करना और संबंधित स्विच को सक्रिय होने के लिए असाइन करना हम जो खोज रहे थे उसके लिए पर्याप्त यादृच्छिक है। हम इस असाइनमेंट के लिए काम करने में सक्षम होने के लिए पिछले प्रोजेक्ट में बनाए गए हमारे 4-बिट काउंटर का पुन: उपयोग करने में सक्षम थे। हमने 0-15 के बीच एक यादृच्छिक संख्या बनाने के लिए काउंटर का उपयोग किया; फिर main1 घटक में, हमने बोर्ड पर उसके संगत स्विच को यादृच्छिक संख्या के दशमलव समतुल्य को नियत किया। जैसा कि योजनाबद्ध में देखा गया है, मुख्य 1 घटक से आउटपुट एक्स ('सक्रिय बम') और खिलाड़ियों द्वारा चालू किए जाने वाले स्विच FSM1 पर जाते हैं। स्टेट मशीन एक बिट Z मान का उत्पादन करती है जिसे बाद में BC_DEC1 द्वारा पढ़ा जाता है। हमारे द्वारा उपयोग की जाने वाली परिमित राज्य मशीन में दो अलग-अलग अवस्थाएँ होती हैं: राज्य A में, सात खंड प्रदर्शन 'PLAY' आउटपुट करते हैं और मशीन उस स्थिति में तब तक रहती है जब तक कि यह पहचान नहीं लेता कि सक्रिय स्विच फ़्लिप हो गया है। एक बार ऐसा होने पर, एफएसएम राज्य बी में जाता है जहां यह सात खंड डिस्प्ले में 'LOSE' आउटपुट करता है और उस स्थिति में तब तक रहता है जब तक कि सभी 16 स्विच '0' पर फ़्लिप नहीं हो जाते। जब वह शर्त पूरी हो जाती है, तो एफएसएम एक बार फिर राज्य ए में जाता है और खिलाड़ियों को एक और गेम शुरू करने की प्रतीक्षा करता है। इस FSM को समझने में मदद करने के लिए मूर आरेख ऊपर दिखाया गया है।

चरण 4: भविष्य में संशोधन

हमारे खेल में कुछ संशोधन करने के बारे में हम विचार कर रहे थे जिसमें मैदान में अधिक बम जोड़ना (संभवतः एक से तीन तक बढ़ाना), एक स्कोर काउंटर और कई राउंड जोड़ना शामिल है। हमने अंततः इन सुधारों के खिलाफ फैसला किया, क्योंकि हमने पाया कि एक लंबा, विस्तारित गेम खेलना आम तौर पर अधिक तनावपूर्ण था और अंत में एक गेम की तुलना में अधिक मजेदार था जो आमतौर पर तीन या चार स्विच फ़्लिप के बाद समाप्त होता था।

चरण 5: निष्कर्ष

हम इस परियोजना के अंतिम परिणाम से बहुत खुश थे; न केवल इसलिए कि खेल का अंतिम संस्करण खेलने में मजेदार था, बल्कि इसलिए भी कि प्रोजेक्ट बनाने और प्रोग्राम करने के लिए हमें सबसे अधिक उपयोग करने की आवश्यकता थी, यदि नहीं तो हमने इस तिमाही में जो कुछ भी सीखा। हमने फ्लिप फ्लॉप, काउंटर, एफएसएम, घड़ी, बोर्ड से यूजर इनपुट और सात सेगमेंट डिस्प्ले के आउटपुट का उपयोग किया।

हमने यह भी सीखा कि कैसे कुछ सिंटैक्स त्रुटियां प्रोग्राम को पूरी तरह से तोड़ सकती हैं (भले ही उन्हें अन्य प्रोग्रामिंग भाषाओं जैसे कि पायथन या जावा में ठीक माना जाएगा) और यह कि केवल कई सिमुलेशन और कोड के कई पुनरावृत्तियों के बाद अपलोड और परीक्षण किया जा रहा है। बोर्ड, क्या आप अंततः अपने कोड से सभी बगों को दूर करने में सक्षम होंगे।

सिफारिश की: