HTML बटन का उपयोग करके टाइपिंग गेम के लिए जावास्क्रिप्ट टाइमर मान को कैसे संशोधित करें

JavaScript

बटनों का उपयोग करके टाइपिंग गेम के लिए डायनामिक टाइमर समायोजन

टाइपिंग गेम में, एक आकर्षक उपयोगकर्ता अनुभव सुनिश्चित करने के लिए गेम की गति को नियंत्रित करना महत्वपूर्ण है। एक महत्वपूर्ण कारक टाइमर है, जो यह निर्धारित करता है कि उपयोगकर्ता को गेम या टाइपिंग चुनौती को पूरा करने में कितना समय लगेगा। उपयोगकर्ताओं को सरल HTML बटनों के माध्यम से गेम टाइमर को समायोजित करने की अनुमति देकर, आप उन्हें उनके गेमप्ले पर अधिक नियंत्रण दे सकते हैं।

यह आलेख आपको दिखाएगा कि जावास्क्रिप्ट में एक समाधान कैसे बनाया जाए जो खिलाड़ियों को बटन का उपयोग करके विभिन्न टाइमर सेटिंग्स के बीच चयन करने की अनुमति देता है। उदाहरण के लिए, '30s' बटन का चयन करने से टाइमर 30 सेकंड में समायोजित हो जाएगा, जबकि '60s' बटन पर क्लिक करने से यह 60 सेकंड में बदल जाएगा।

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

इस गाइड के अंत तक, आपके पास HTML और जावास्क्रिप्ट का उपयोग करके पूरी तरह कार्यात्मक टाइमर समायोजन सुविधा होगी। हम यह भी कवर करेंगे कि चयनित टाइमर अवधि को प्रतिबिंबित करने के लिए पृष्ठ के शीर्षक पर प्रदर्शित टाइमर मान को कैसे अपडेट किया जाए।

आज्ञा उपयोग का उदाहरण
document.querySelector() ब्राउज़र टैब के शीर्षक को गतिशील रूप से अद्यतन करने के लिए HTML तत्व का चयन करने के लिए उपयोग किया जाता है। यह विधि उनके सीएसएस चयनकर्ता के आधार पर तत्वों का चयन करने के लिए विशिष्ट है, और यहां यह चयनित टाइमर मान के आधार पर पृष्ठ शीर्षक को बदलने में मदद करती है।
addEventListener() एक विशिष्ट घटना (उदाहरण के लिए, क्लिक करें) को एक बटन तत्व से बांधता है। इस संदर्भ में, इसका उपयोग चेंजटाइमर() फ़ंक्शन को ट्रिगर करने के लिए किया जाता है जब कोई उपयोगकर्ता एक बटन पर क्लिक करता है, जिससे टाइमर सेटिंग्स के साथ गतिशील इंटरैक्शन की अनुमति मिलती है।
innerText यह गुण HTML तत्व के भीतर दृश्यमान पाठ को संशोधित करने की अनुमति देता है। इस समाधान में, बटन क्लिक करने पर पृष्ठ के शीर्षक में टाइमर मान को अपडेट करने के लिए इसका उपयोग किया जाता है।
onClick एक इनलाइन इवेंट हैंडलर विशेषता जिसका उपयोग चेंजटाइमर() फ़ंक्शन को सीधे बटन के क्लिक इवेंट में संलग्न करने के लिए वैकल्पिक दृष्टिकोण में किया जाता है। यह टाइमर को गतिशील रूप से अपडेट करने का एक सरल, कम मॉड्यूलर तरीका प्रदान करता है।
test() इस पद्धति का उपयोग जेस्ट के साथ यूनिट परीक्षण में किया जाता है। यह एक परीक्षण मामले को परिभाषित करता है जहां टाइमर अपडेट सही ढंग से सुनिश्चित करने के लिए परीक्षण किए जा रहे फ़ंक्शन (उदाहरण के लिए, चेंजटाइमर()) का मूल्यांकन किया जाता है। यह सुनिश्चित करता है कि कोड विभिन्न परिदृश्यों में अपेक्षित व्यवहार करे।
expect() एक जेस्ट कमांड जो जाँचता है कि वास्तविक मान (जैसे अद्यतन टाइमर) अपेक्षित मान से मेल खाता है या नहीं। इसका उपयोग यूनिट परीक्षणों में यह सत्यापित करने के लिए किया जाता है कि बटन क्लिक के बाद गेमटाइम और दस्तावेज़.शीर्षक सही ढंग से अपडेट किए गए हैं।
toBe() एक और जेस्ट कमांड जो सख्त समानता की जाँच करता है। यह सुनिश्चित करता है कि चेंजटाइमर() को कॉल करने के बाद, गेम का समय बिल्कुल अपेक्षित है (उदाहरण के लिए, 30 सेकंड के लिए 30,000 एमएस)।
getElementById() विशिष्ट बटनों को उनकी आईडी (जैसे, 'तीस', 'साठ') के आधार पर चुनने के लिए उपयोग किया जाता है। यह विधि इवेंट श्रोताओं को बटनों से जोड़ने और उपयोगकर्ता इंटरैक्शन के जवाब में टाइमर के गतिशील परिवर्तन को ट्रिगर करने के लिए महत्वपूर्ण है।

जावास्क्रिप्ट और HTML बटन का उपयोग करके डायनामिक टाइमर बनाना

ऊपर दी गई स्क्रिप्ट उपयोगकर्ता को HTML बटन पर क्लिक करके टाइपिंग गेम में गेम टाइमर को गतिशील रूप से समायोजित करने की अनुमति देने के लिए डिज़ाइन की गई है। प्रारंभ में, हम एक वेरिएबल घोषित करते हैं , जो समय को मिलीसेकंड में रखता है (डिफ़ॉल्ट रूप से 30 सेकंड, मिलीसेकंड में बदलने के लिए 1000 से गुणा किया जाता है)। मुख्य कार्यक्षमता इसमें निहित है फ़ंक्शन, जो क्लिक किए गए बटन के आधार पर टाइमर मान को अपडेट करता है। यह विधि बटन का मान प्राप्त करती है (उदाहरण के लिए, 30, 60, या 90) और अपडेट करती है खेल का समय तदनुसार परिवर्तनशील. इसके अतिरिक्त, स्क्रिप्ट चयनित टाइमर अवधि को प्रतिबिंबित करने के लिए पृष्ठ के शीर्षक को अपडेट करती है, जिससे उपयोगकर्ताओं को यह स्पष्ट हो जाता है कि उनके पास कितना समय है।

गतिशील व्यवहार के लिए, हम इवेंट श्रोताओं का उपयोग करते हैं, विशेष रूप से आज्ञा। यह स्क्रिप्ट को उपयोगकर्ता द्वारा किसी भी बटन पर क्लिक करने पर प्रतिक्रिया करने की अनुमति देता है। प्रत्येक बटन को एक आईडी दी गई है और जब क्लिक किया जाता है, तो ट्रिगर हो जाता है फ़ंक्शन, संबंधित समय मान को पास करता है। यह दृष्टिकोण HTML संरचना में दोहरावदार इनलाइन जावास्क्रिप्ट की आवश्यकता के बिना कई बटनों को कुशलतापूर्वक संभालने के लिए उपयोगी है। स्क्रिप्ट में एक फ़ॉलबैक विकल्प भी शामिल है जहाँ आप इनलाइन ईवेंट हैंडलर का उपयोग कर सकते हैं यदि प्रतिरूपकता पर सरलता को प्राथमिकता दी जाती है।

वैकल्पिक समाधान में, हम सीधे टाई करते हैं बटनों के लिए घटना। यह विधि निष्पादित करती है क्लिक किए जाने वाले बटन पर सीधे कार्य करें। यह एक सीधा दृष्टिकोण है लेकिन इसमें इवेंट श्रोता पद्धति के लचीलेपन का अभाव है। इस पद्धति की सरलता छोटे, कम जटिल अनुप्रयोगों के लिए उपयोगी है। हालाँकि, अधिक स्केलेबल कोड के लिए, इवेंट श्रोता अधिक लचीलापन प्रदान करते हैं और HTML संरचना को सीधे संशोधित किए बिना स्क्रिप्ट में आसान अपडेट की अनुमति देते हैं। दोनों विधियों का लक्ष्य एक ही समस्या को हल करना है, जो टाइमर को समायोजित करना और उपयोगकर्ता के चयन के आधार पर शीर्षक को गतिशील रूप से अपडेट करना है।

अंत में, हम जेस्ट, एक जावास्क्रिप्ट परीक्षण ढांचे का उपयोग करके यूनिट परीक्षण लागू करते हैं। यह सत्यापित करने के लिए फ़ंक्शन महत्वपूर्ण हैं कि टाइमर ठीक से अपडेट होता है। कई परिदृश्यों का परीक्षण करके, जैसे कि टाइमर 30 सेकंड, 60 सेकंड या 90 सेकंड पर समायोजित होता है, ये इकाई परीक्षण स्क्रिप्ट की शुद्धता सुनिश्चित करते हैं। जैसे आदेश और यह सत्यापित करने के लिए उपयोग किया जाता है कि वास्तविक टाइमर मान और पृष्ठ शीर्षक अपेक्षित परिणामों से मेल खाते हैं। यह परीक्षण चरण यह सुनिश्चित करता है कि आपका टाइमर तर्क विभिन्न उपयोग के मामलों में ठीक से काम कर रहा है, जो आपके समाधान की मजबूती में विश्वास प्रदान करता है।

टाइपिंग गेम के लिए HTML बटन के साथ टाइमर मान बदलना

गतिशील समय अद्यतन और शीर्षक समायोजन के साथ जावास्क्रिप्ट-आधारित फ्रंट-एंड दृष्टिकोण

// Solution 1: Using event listeners to change timer value dynamically
let gameTime = 30 * 1000; // Default timer set to 30 seconds
const titleElement = document.querySelector('title');
function changeTimer(value) {
    gameTime = value * 1000; // Update timer to selected value
    titleElement.innerText = value + 's'; // Update the title
}
// Attach event listeners to buttons
document.getElementById('thirty').addEventListener('click', () => changeTimer(30));
document.getElementById('sixty').addEventListener('click', () => changeTimer(60));
document.getElementById('ninety').addEventListener('click', () => changeTimer(90));
// HTML Buttons:
// <button id="thirty" type="button">30s</button>
// <button id="sixty" type="button">60s</button>
// <button id="ninety" type="button">90s</button>

वैकल्पिक दृष्टिकोण: इनलाइन HTML और जावास्क्रिप्ट फ़ंक्शंस का उपयोग करना

बटन क्लिक पर सीधे फ़ंक्शन कॉल के साथ HTML में इनलाइन जावास्क्रिप्ट

<script>
let gameTime = 30 * 1000;
function changeTimer(value) {
    gameTime = value * 1000;
    document.title = value + 's';
}
</script>
<button onClick="changeTimer(30)">30s</button>
<button onClick="changeTimer(60)">60s</button>
<button onClick="changeTimer(90)">90s</button>

विभिन्न वातावरणों में टाइमर मान परिवर्तन के लिए इकाई परीक्षण

फ्रंट-एंड पर्यावरण सत्यापन के लिए जेस्ट का उपयोग करके जावास्क्रिप्ट-आधारित इकाई परीक्षण

// Jest Test Cases
test('Timer should update to 30 seconds', () => {
    changeTimer(30);
    expect(gameTime).toBe(30000);
    expect(document.title).toBe('30s');
});
test('Timer should update to 60 seconds', () => {
    changeTimer(60);
    expect(gameTime).toBe(60000);
    expect(document.title).toBe('60s');
});
test('Timer should update to 90 seconds', () => {
    changeTimer(90);
    expect(gameTime).toBe(90000);
    expect(document.title).toBe('90s');
});

टाइमर अनुकूलन के साथ गेम इंटरेक्शन को बढ़ाना

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

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

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

  1. मैं कैसे उपयोग करूं उलटी गिनती बनाने के लिए?
  2. आप उपयोग कर सकते हैं इसे प्रत्येक 1000 मिलीसेकेंड (1 सेकंड) पर निष्पादित करने के लिए सेट करके और हर बार टाइमर मान को घटाकर। जब मान शून्य पर पहुंच जाए, तो आप इसका उपयोग करके उलटी गिनती रोक सकते हैं .
  3. का उद्देश्य क्या है ?
  4. इसका उपयोग उलटी गिनती या शुरू की गई किसी अन्य आवर्ती कार्रवाई को रोकने के लिए किया जाता है . यह सुनिश्चित करना महत्वपूर्ण है कि शून्य पर पहुंचने पर उलटी गिनती रुक जाए।
  5. मैं HTML शीर्षक को गतिशील रूप से कैसे अद्यतन कर सकता हूँ?
  6. उपयोग पृष्ठ शीर्षक का टेक्स्ट सेट करने के लिए. इसे आपके अंदर अपडेट किया जा सकता है चयनित समय मान के आधार पर फ़ंक्शन।
  7. क्या मैं टाइमर चुनते समय उपयोगकर्ता की त्रुटियों को संभाल सकता हूँ?
  8. हां, आप उलटी गिनती शुरू करने से पहले यह जांच कर सत्यापन जोड़ सकते हैं कि वैध टाइमर विकल्प चुना गया है या नहीं। यदि कोई वैध समय नहीं चुना गया है, तो आप एक चेतावनी या संकेत प्रदर्शित कर सकते हैं।
  9. जब कोई बटन क्लिक किया जाता है तो मैं किसी फ़ंक्शन को कैसे ट्रिगर करूं?
  10. आप किसी बटन का उपयोग करके किसी फ़ंक्शन को संलग्न कर सकते हैं या सीधे उपयोग करके बटन के HTML तत्व में।

टाइपिंग गेम में गतिशील टाइमर समायोजन को शामिल करने से खिलाड़ी के अनुभव में काफी सुधार होता है। उपयोगकर्ताओं को सरल HTML बटन का उपयोग करके टाइमर बदलने और वास्तविक समय में गेम के इंटरफ़ेस को अपडेट करने की अनुमति देकर, डेवलपर्स अपने गेम को अधिक इंटरैक्टिव और लचीला बना सकते हैं। इस प्रकार का नियंत्रण विभिन्न कौशल स्तरों को समायोजित करने में मदद करता है।

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

  1. DOM हेरफेर और इवेंट हैंडलिंग के लिए जावास्क्रिप्ट का उपयोग करने की विस्तृत जानकारी यहां पाई जा सकती है एमडीएन वेब डॉक्स .
  2. को समझने के लिए जेस्ट जावास्क्रिप्ट अनुप्रयोगों में इकाई परीक्षण के लिए रूपरेखा और इसका कार्यान्वयन।
  3. उपयोग पर व्यापक अंतर्दृष्टि addEventListener जावास्क्रिप्ट में घटनाओं को संभालने के लिए W3Schools पर उपलब्ध हैं।
  4. टाइमर सहित वेब अनुप्रयोगों में वास्तविक समय के अपडेट के महत्व पर चर्चा की गई है स्मैशिंग मैगजीन .