HTML बटणे वापरून टायपिंग गेमसाठी JavaScript टाइमर मूल्य कसे बदलायचे

JavaScript

बटणे वापरून टायपिंग गेमसाठी डायनॅमिक टाइमर समायोजन

टायपिंग गेममध्ये, आकर्षक वापरकर्ता अनुभव सुनिश्चित करण्यासाठी गेमचा वेग नियंत्रित करणे महत्त्वपूर्ण आहे. एक महत्त्वाचा घटक म्हणजे टाइमर, जो वापरकर्त्याला गेम किंवा टायपिंग आव्हान किती वेळ पूर्ण करायचे आहे हे ठरवते. वापरकर्त्यांना साध्या HTML बटणांद्वारे गेम टाइमर समायोजित करण्याची परवानगी देऊन, तुम्ही त्यांना त्यांच्या गेमप्लेवर अधिक नियंत्रण देऊ शकता.

हा लेख तुम्हाला JavaScript मध्ये एक उपाय कसा तयार करायचा ते दर्शवेल जे खेळाडूंना बटणे वापरून वेगवेगळ्या टाइमर सेटिंग्जमधून निवडण्याची परवानगी देते. उदाहरणार्थ, '30s' बटण निवडल्याने टाइमर 30 सेकंदात समायोजित होईल, तर '60s' बटणावर क्लिक केल्याने ते 60 सेकंदात बदलते.

JavaScript फंक्शन क्लिक केलेल्या बटणाचे मूल्य घेईल आणि टाइमर आणि गेमचे शीर्षक दोन्ही डायनॅमिकली अपडेट करेल. या प्रकारची लवचिकता वापरकर्त्याचा अनुभव वाढवू शकते, विविध कौशल्य स्तरांसाठी गेम अधिक सानुकूल आणि आनंददायक बनवते.

या मार्गदर्शकाच्या शेवटी, तुमच्याकडे HTML आणि JavaScript वापरून पूर्णतः कार्यशील टाइमर समायोजन वैशिष्ट्य असेल. निवडलेला टाइमर कालावधी प्रतिबिंबित करण्यासाठी पृष्ठाच्या शीर्षकावर प्रदर्शित टाइमर मूल्य कसे अपडेट करायचे ते देखील आम्ही कव्हर करू.

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

JavaScript आणि HTML बटणे वापरून डायनॅमिक टाइमर तयार करणे

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

डायनॅमिक वर्तनासाठी, आम्ही कार्यक्रम श्रोते वापरतो, विशेषतः आज्ञा जेव्हा वापरकर्ता कोणत्याही बटणावर क्लिक करतो तेव्हा हे स्क्रिप्टला प्रतिक्रिया देण्यास अनुमती देते. प्रत्येक बटणाला एक आयडी नियुक्त केला जातो आणि क्लिक केल्यावर ते ट्रिगर होते फंक्शन, संबंधित वेळ मूल्य उत्तीर्ण करणे. एचटीएमएल स्ट्रक्चरमध्ये इनलाइन जावास्क्रिप्टची पुनरावृत्ती न करता अनेक बटणे कार्यक्षमतेने हाताळण्यासाठी हा दृष्टिकोन उपयुक्त आहे. स्क्रिप्टमध्ये फॉलबॅक पर्याय देखील समाविष्ट आहे जेथे तुम्ही इनलाइन इव्हेंट हँडलर वापरू शकता जर मॉड्यूलरिटीपेक्षा साधेपणाला प्राधान्य दिले जाते.

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

शेवटी, आम्ही Jest, JavaScript चाचणी फ्रेमवर्क वापरून युनिट चाचण्या लागू करतो. द टाइमर योग्यरितीने अद्ययावत होत आहे याची पडताळणी करण्यासाठी फंक्शन्स महत्त्वपूर्ण आहेत. टाइमर 30 सेकंद, 60 सेकंद किंवा 90 सेकंदांमध्ये समायोजित करतो की नाही यासारख्या एकाधिक परिस्थितींची चाचणी करून, या युनिट चाचण्या स्क्रिप्टची शुद्धता सुनिश्चित करतात. सारखे आदेश आणि वास्तविक टाइमर मूल्य आणि पृष्ठ शीर्षक अपेक्षित परिणामांशी जुळत असल्याचे सत्यापित करण्यासाठी वापरले जातात. हा चाचणी टप्पा हे सुनिश्चित करतो की तुमचे टाइमर लॉजिक वेगवेगळ्या वापराच्या प्रकरणांमध्ये योग्यरित्या कार्य करत आहे, तुमच्या सोल्यूशनच्या मजबूततेवर विश्वास प्रदान करते.

टायपिंग गेमसाठी HTML बटणांसह टाइमर मूल्य बदलणे

डायनॅमिक टाइम अपडेट आणि शीर्षक समायोजनासह JavaScript-आधारित फ्रंट-एंड दृष्टीकोन

// 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 आणि JavaScript फंक्शन्स वापरणे

बटण क्लिकवर डायरेक्ट फंक्शन कॉलसह HTML मध्ये इनलाइन JavaScript

वेगवेगळ्या वातावरणात टाइमर मूल्य बदलांसाठी युनिट चाचणी

फ्रंट-एंड पर्यावरण प्रमाणीकरणासाठी जेस्ट वापरून JavaScript-आधारित युनिट चाचण्या

// 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');
});

टाइमर कस्टमायझेशनसह गेम संवाद वाढवणे

टायपिंग गेममध्ये टायमर बदलताना विचारात घेण्यासारखे आणखी एक पैलू म्हणजे एकूण वापरकर्ता अनुभव आणि इंटरफेस. बटणांद्वारे गेम टाइमर समायोजित करण्याव्यतिरिक्त, खेळाडूंना त्यांच्या निवडलेल्या टाइमरवर व्हिज्युअल फीडबॅक देणे महत्त्वाचे आहे. हे पृष्ठावरील इतर घटक अद्यतनित करून प्राप्त केले जाऊ शकते, जसे की काउंटडाउन डिस्प्ले. टाइमर सेट करण्यासाठी बटणावर क्लिक केल्यानंतर, काउंटडाउन टाइमर त्वरित सुरू झाला पाहिजे, वापरकर्त्याला रिअल-टाइम फीडबॅक प्रदान करेल. हे सुनिश्चित करते की परस्परसंवाद गुळगुळीत आणि अंतर्ज्ञानी आहे, गेम अधिक आकर्षक बनवते.

हे लागू करण्यासाठी, तुम्ही JavaScript वापरू शकता कार्य टाइमर सेट केल्यावर, setInterval काउंटडाउन तयार करण्यासाठी वापरले जाऊ शकते जे प्रत्येक सेकंदाला टाइमर मूल्य कमी करते. जेव्हा टाइमर शून्यावर पोहोचतो, तेव्हा फंक्शन एकतर गेम थांबवू शकते किंवा वापरकर्त्याला वेळ संपल्याची सूचना देऊ शकते. ही कार्यक्षमता, बटणे वापरून डायनॅमिकपणे टाइमर बदलण्याच्या क्षमतेसह एकत्रितपणे, गेमप्लेच्या अनुभवामध्ये लक्षणीय वाढ करते. खेळाडूंना गुंतवून ठेवण्यासाठी प्रतिसाद देणारा इंटरफेस महत्त्वाचा आहे आणि ते साध्य करण्याचा रिअल-टाइम फीडबॅक हा एक मार्ग आहे.

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

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

टायपिंग गेममध्ये डायनॅमिक टाइमर ऍडजस्टमेंट समाविष्ट केल्याने खेळाडूचा अनुभव लक्षणीयरीत्या सुधारतो. वापरकर्त्यांना साधी HTML बटणे वापरून टाइमर बदलण्याची परवानगी देऊन आणि गेमचा इंटरफेस रिअल-टाइममध्ये अपडेट करून, विकासक त्यांचे गेम अधिक परस्परसंवादी आणि लवचिक बनवू शकतात. या प्रकारचे नियंत्रण विविध कौशल्य पातळी सामावून घेण्यास मदत करते.

इव्हेंट श्रोते, त्रुटी हाताळणे आणि युनिट चाचण्या यासारख्या सर्वोत्तम पद्धती वापरणे हे सुनिश्चित करते की गेम सुरळीतपणे चालतो आणि एक विश्वासार्ह वापरकर्ता अनुभव प्रदान करतो. ही वैशिष्ट्ये लागू केल्याने केवळ गेमची कार्यक्षमता वाढणार नाही तर खेळाडूंना प्रतिसाद देणाऱ्या, वापरकर्ता-अनुकूल मेकॅनिक्ससह अधिक गुंतवून ठेवता येईल.

  1. DOM मॅनिप्युलेशन आणि इव्हेंट हाताळणीसाठी JavaScript वापरण्याबद्दल तपशीलवार माहिती येथे आढळू शकते MDN वेब डॉक्स .
  2. समजून घेण्यासाठी थट्टा जावास्क्रिप्ट ऍप्लिकेशन्समधील युनिट चाचणीसाठी फ्रेमवर्क आणि त्याची अंमलबजावणी.
  3. वापरण्यावर व्यापक अंतर्दृष्टी AddEventListener JavaScript मधील कार्यक्रम हाताळण्यासाठी W3Schools वर उपलब्ध आहेत.
  4. टाइमरसह वेब ऍप्लिकेशन्समधील रिअल-टाइम अपडेट्सच्या महत्त्वाची चर्चा केली आहे स्मॅशिंग मासिक .