लॉजिक गेट या फ्लिप फ्लॉप का उपयोग करके मैं लाइट्स-आउट गेम कैसे लागू कर सकता हूं?


9

सबसे पहले, खेल से अपरिचित लोगों के लिए, यह खेल कैसे काम करता है,

खेल खेलते हैं

खेल का लक्ष्य सभी रोशनी को बंद करना है, इसलिए "लाइट्स आउट" कहा जाता है, और बटन / लाइट का प्रत्येक प्रेस अपने राज्य के साथ-साथ इसके उत्तर / दक्षिण / पूर्व / पश्चिम से सटे पड़ोसियों पर भी आक्रमण करता है, और यह बहुत ज्यादा है ।

अब, जो मैं सोच सकता था वह एसआर फ्लिप-फ्लॉप, या जेके फ्लिप फ्लॉप का उपयोग करके है। यह भंडारण तत्व (प्रारंभिक राज्य और अगले राज्य) के रूप में कार्य करने की क्षमता के कारण है। लेकिन मैं वास्तव में उन्हें लागू करने के तरीकों के बारे में सोच भी नहीं सकता।

एक अन्य विचार यह है कि बटन के प्रत्येक सेट और उसके आस-पास (NSEW) बटन / लाइट की अपनी सत्य तालिका होगी, जैसे:

तर्क तालिका

लेकिन, क्या यह संभव है कि इनपुट चर आउटपुट चर के समान हों? क्या ऐसा करने के लिए कोई अन्य तरीके हैं?

जवाबों:


9

स्पष्ट दृष्टिकोण एक प्रोसेसर का उपयोग करना और फर्मवेयर में यह सब करना होगा।

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

एक हार्डवेयर सॉल्यूशन वह सभी जटिल नहीं होगा, लेकिन सब कुछ 25 बार दोहराया जाएगा, जिससे यह निर्माण करने के लिए बड़ा और टेडियस होगा।

जोड़ा गया:

स्पष्ट रूप से उपरोक्त विवरण पर्याप्त नहीं है। यहाँ प्रत्येक कोशिका में क्या है इसका आरेख है:

NAND गेट के अन्य 4 इनपुट 4 आसपास के बटनों के संकेतित संकेतों से संचालित होते हैं, जो इस वर्ग की स्थिति को टॉगल करने वाले होते हैं। इसी तरह, इस बटन से डेबिट संकेत भी 4 आसपास की कोशिकाओं में से प्रत्येक के NAND गेट इनपुट में से एक पर जाता है।


1
यह करने के लिए सबसे व्यवहार्य बात की तरह लगता है। मैं TFF का उपयोग करता हूं और सभी T निविष्टियों को "1." में बाँध देता हूं। तो मैं प्रत्येक बटन के लिए एक SPDT क्षणिक स्विच होगा। एक को "0," के लिए एक फेंक "1", और फिर संबंधित TFF घड़ी इनपुट के लिए पोल बाँधें। फिर, जब आप एक स्विच दबाते हैं, तो यह एक एकल पॉज़ / नकारात्मक बढ़त उत्पन्न करके आसपास के फ्लिप-फ्लॉप को चालू कर देगा।
शामतम्

1
@Shamtam: हाँ, यदि आप SPDT स्विच करते हैं, तो यह एक तरीका है। हालांकि अधिकांश पुशबटन केवल सामान्य रूप से खुले हुए SPST हैं।
ओलिन लेट्रोप

मुझे लगता है कि मुझे डिबगिंग के लिए SPDT स्विच का उपयोग करना होगा, चाहे पुशबटन या नहीं। मुझे अब इस गेम के इनपुट को कैसे कनेक्ट करना है, लेकिन मुझे जो नहीं मिलता है वह आउटपुट को एलइडी से कनेक्ट करने का तरीका है। मेरा मतलब है, यह एलईडी और उसके पड़ोसियों के पूरक (क्यू ') के लिए सिर्फ साधारण आउटपुट (क्यू) नहीं हो सकता है? इसके अलावा, एक और सवाल, क्या मुझे TFF के क्लॉक सिग्नल इनपुट का उपयोग करने की आवश्यकता है? यदि हां, तो कैसे?
जुलिएन

2
प्रत्येक सेल के लिए फ्लिपफ्लॉप अपने एलईडी को सीधे ड्राइव करता है। पड़ोसी कोशिकाओं के साथ करने का तर्क फ्लिपफ्लिप के इनपुट में प्रवेश करता है , लेकिन आउटपुट सेल में स्थानीय रहता है। नहीं, डिबगिंग के लिए SPDT स्विच की आवश्यकता नहीं है। एसपीएसटी स्विच से एकल सिग्नल की डिबगिंग के लिए विभिन्न तकनीकें हैं।
ओलिन लेट्रोप

1
नहीं, आपको तर्क नहीं मिलता। आम तौर पर, डेबिट किए गए आउटपुट अधिक होते हैं, इसलिए एनएएनडी गेट के सभी इनपुट अधिक होते हैं, जो आउटपुट को कम करते हैं। जब कोई भी बटन दबाया जाता है, तो वह NAND इनपुट कम हो जाता है, जिससे NAND आउटपुट हाई हो जाता है। यह कम से ऊँची धार एफएफ को अपने राज्य को टॉगल करने का कारण बनता है।
ओलिन लेट्रोप

0

मैं कहूंगा कि टी फ्लिप फ्लॉप शायद सबसे आसान होगा क्योंकि आप एकल आउटपुट के साथ उनकी आउटपुट स्थिति को टॉगल कर सकते हैं। आप प्रत्येक एलईडी के लिए एक सिंगल फ्लिप फ्लॉप का उपयोग कर सकते हैं और आपके बटन से जुड़े इनपुट और आपके एलईडी से जुड़े आउटपुट के साथ। तब आप प्रत्येक बटन को अपने राज्य को टॉगल करने के लिए 4 आसन्न फ्लिप फ्लॉप के इनपुट से बंधे हो सकते हैं।

यदि आप JK फ्लिप फ्लॉप का उपयोग करना चाहते हैं, तो आप दोनों इनपुट (J और K) से अपना इनपुट पास करके T फ्लिप फ्लॉप बना सकते हैं।


2
आप एक दूसरे के साथ हस्तक्षेप किए बिना प्रत्येक फ्लिप-फ्लॉप में 5 स्विच कैसे कनेक्ट करते हैं, यह बताकर आप अपने जवाब का विस्तार कर सकते हैं। इसके अलावा, स्विच उछाल के बारे में क्या?
डेव ट्वीड

0

यदि कोई असतत तर्क से 7x7 आकार के ऐसे गेम का निर्माण करना चाहता है, तो सबसे व्यावहारिक डिजाइन संभवतः बोर्ड की स्थिति को पकड़ने के लिए एक परिसंचारी शिफ्ट रजिस्टर का उपयोग करना होगा, और पारी का ट्रैक रखने के लिए एक छह-बिट काउंटर होगा। रजिस्टर के भीतर डेटा की स्थिति। मल्टीप्लेक्स डिस्प्ले को चलाने के लिए 8 बिट्स के समूहों में शिफ्टर के माध्यम से डेटा शिफ्ट करें और एक मल्टीप्लेक्स कीबोर्ड को स्कैन करें। एक सात-बिट "फ्लिप लाइट" काउंटर है जो किसी भी समय नीचे चलेगा छह बिट्स गैर-शून्य हैं, या जब शीर्ष बिट की स्थिति वर्तमान में डिकोड किए गए बटन की स्थिति से मेल खाती है। वर्तमान लाइट की स्थिति को पलटें जब भी निम्नलिखित में से सभी लागू हों:

6-bit counter isn't  xxx111
6-bit counter isn't  111xxx
7-bit counter isn't xxxxx00
7-bit counter isn't xx00xxx
7-bit counter is    00xx0xx

ध्यान दें कि उन काउंटर राज्यों को डिकोड करने के लिए एक महत्वपूर्ण मात्रा में तर्क की आवश्यकता होगी, जबकि प्रत्येक प्रकाश को अलग से लागू करने के लिए आवश्यक चिप्स की संख्या की तुलना में यह तुच्छ होगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.