# ಈವೆಂಟ್ಗಳನ್ನು ಬಳಸಿ ಆಟವನ್ನು ಸೃಜನೆ ಮಾಡುವುದು
ನೀವು ഒരುದೊಮ್ಮೆ ಚಿಂತಿಸಿದ್ದೀರಾ ವೆಬ್ಸೈಟ್ಗಳು ನೀವು ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ ಅಥವಾ ಟೆಕ್ಸ್ಟ್ ಬಾಕ್ಸ್ನಲ್ಲಿ ಟೈಪ್ ಮಾಡಿದಾಗ ಹೇಗೆ ತಿಳಿಯುತ್ತವೆ? ಅದೇ ಈವೆಂಟ್-ಚಾಲಿತ ಪ್ರೋಗ್ರಾಮಿಂಗ್ನ ಮಾಯಾಜಾಲ! ಈ ಅತಿಹೆಚ್ಚು ಮಹತ್ವದ ಕೌಶಲ್ಯವನ್ನು ಕಲಿಯಲು ಉತ್ತಮ ವಿಧಾನ ಏನು ಎಂದರೆ — ನೀವು ಮಾಡುತ್ತಿರುವ ಪ್ರತಿ ಕೀಸ್ಟ್ರೋಕ್ಗೆ ಪ್ರತಿಕ್ರಿಯಿಸುವ ಟೈಪಿಂಗ್ ವೇಗದ ಆಟವನ್ನು ರಚಿಸುವುದು.
ನೀವು ನೇರವಾಗಿ ನೋಡಲಿದ್ದೀರಿ ಹೇಗೆ ವೆಬ್ ಬ್ರೌಸರಗಳು ನಿಮ್ಮ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಕೋಡ್ಗೆ "ಮಾತನಾಡುತ್ತವೆ". ನೀವು ಪ್ರತೀ ಬಾರಿ ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ, ಟೈಪ್ ಮಾಡಿದಾಗ, ಅಥವಾ ನಿಮ್ಮ ಮೌಸ್ ಅನ್ನು ನಿಯಂತ್ರಿಸಿದಾಗ, ಬ್ರೌಸರ್ ಸಣ್ಣ ಸಂದೇಶಗಳನ್ನು (ನಾವು ಅದನ್ನು ಈವೆಂಟುಗಳು ಎಂದು ಕರೆಯುತ್ತೇವೆ) ನಿಮ್ಮ ಕೋಡಿಗೆ ಕಳುಹಿಸುತ್ತಿದೆ, ಮತ್ತು ನೀವು ಹೇಗೆ ಪ್ರತಿಕ್ರಿಯಿಸಬೇಕೆಂದರೆ ಅದನ್ನು ನಿರ್ಧರಿಸಬೇಕು!
ನಾವು ಇಲ್ಲಿ ಮುಗಿಸಿದಾಗ, ನೀವು ನಿಮ್ಮದ್ದು ಒಂದು ನಿಜವಾದ ಟೈಪಿಂಗ್ ಆಟ ರಚಿಸಿದ್ದೀರಿ ಇದು ನಿಮ್ಮ ವೇಗ ಮತ್ತು ನಿಖರತೆಯನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡುತ್ತದೆ. ಹೆಚ್ಚಿನ ಮಹತ್ವದಲ್ಲಿ, ನೀವು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿರಿ ಸಬ್ಸ್ಕ್ರಿಪ್ಟ್ ಪ್ರತಿಯೊಂದು ಸ್ನೇಹಪರ ವೆಬ್ಸೈಟ್ ಕೆಲಸ ಮಾಡಿಸುವ ಮೂಲಭೂತ ಧಾರಣೆಗಳನ್ನು. ಬನ್ನಿ ಪ್ರಾರಂಭಿಸೋಣ!
## ಪೂರ್ವ ಉಪನ್ಯಾಸ ಪ್ರಶ್ನೋತ್ತರ
[ಪೂರ್ವ ಉಪನ್ಯಾಸ ಪ್ರಶ್ನೋತ್ತರ](https://ff-quizzes.netlify.app/web/quiz/21)
## ಈವೆಂಟ್ ಚಾಲಿತ ಪ್ರೋಗ್ರಾಮಿಂಗ್
ನಿಮ್ಮ ಪ್ರಿಯ ಅಪ್ಲಿಕೇಶನ್ ಅಥವಾ ವೆಬ್ಸೈಟ್ ಬಗ್ಗೆ ಯೋಚಿಸಿ — ಅದು ಚೈತನ್ಯ ಮತ್ತು ಪ್ರತಿಕ್ರಿಯಾಶೀಲತೆಯನ್ನು ಹೇಗೆ ಹೊಂದಿದೆ? ಅದು ನಿಮ್ಮ ಮಾಡಿದ ಕಾರ್ಯಗಳಿಗೆ ಹೇಗೆ ಪ್ರತಿಕ್ರಿಯಿಸುವುದರಿಂದಲೇ! ಪ್ರತಿ ಟ್ಯಾಪ್, ಕ್ಲಿಕ್, ಸ್ವೈಪ್, ಅಥವಾ ಕೀಸ್ಟ್ರೋಕ್ ಒಂದು "ಈವೆಂಟ್" ಅನ್ನು ಸೃಜಿಸುತ್ತದೆ, ಮತ್ತು ಅಲ್ಲಿ ವೆಬ್ ಡೆವಲಪ್ಮೆಂಟ್ನ ನಿಜವಾದ ಮಾಯಾಜಾಲವು ನಡೆಯುತ್ತದೆ.
ಇದು ವೆಬ್ಗಾಗಿ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಅನ್ನು ಇಷ್ಟನೀಯವಾಗಿಸುವುದು: ನಾವು ಯಾರಾದರೂ ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡುವುದು ಅಥವಾ ಟೆಕ್ಸ್ಟ್ ಬಾಕ್ಸ್ನಲ್ಲಿ ಟೈಪ್ ಆರೆಂಬುದನ್ನು ಗುರುತಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಅವರು ತಕ್ಷಣ ಕ್ಲಿಕ್ ಮಾಡಬಹುದು, ಐದು ನಿಮಿಷ ಕಾಯಬಹುದು ಅಥವಾ ಇಲ್ಲವೇ ಒಂದು ಬಾರಿ ಕೂಡ ಕ್ಲಿಕ್ ಮಾಡದು! ಈ ಅನಿಶ್ಚಿತತೆ ಕಾರಣ ನಾವು ನಮ್ಮ ಕೋಡ್ ಬರೆಯುವ ರೀತಿಯನ್ನು ತಾರತಮ್ಯ ರೀತಿಯಲ್ಲಿ ಯೋಚಿಸಬೇಕಾಗುತ್ತದೆ.
ನೀವು ಪದಾರ್ಥವನ್ನು ಮೇಲಿನಿಂದ ಕೆಳಗೆ ಚಾಲನೆ ಮಾಡುವಂತೆ ಕೋಡ್ ಬರೆಯುವ ಬದಲು, ನಾವು ಏನಾದರೂ ಸಂಭವಿಸಲು ಕಾಯುತ್ತಿರುವ ಕೋಡ್ ಬರೆಯುತ್ತೇವೆ. ಇದು 1800ರ ಲಾಸ್ ಕ್ಯಾಲ್ಗಳಲ್ಲಿ ಟೈಲಿಗ್ರಾಫ್ ಆಪರೇಟರ್ಗಳು ತಮ್ಮ ಯಂತ್ರಗಳ ಬಳಿಯಲ್ಲಿ ಕುಳಿತುಕೊಂಡು, ಸಂದೇಶ ಬಂದ ತಕ್ಷಣ ಪ್ರತಿ ಕ್ಷಣದಲ್ಲಿ ಪ್ರತಿಕ್ರಿಯಿಸುವಂತೆ ಇರುತ್ತದೆ.
ಆಗ "ಈವೆಂಟ್" ಎಂದರೆ ಏನು? ಸರಳವಾಗಿ ಹೇಳುವುದಾದರೆ, ಅದು ಸಂಭವಿಸುವುದು! ನೀವು ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ – ಅದು ಒಂದು ಈವೆಂಟ್. ನೀವು ಅಕ್ಷರವನ್ನು ಟೈಪ್ ಮಾಡಿದಾಗ – ಅದು ಒಂದು ಈವೆಂಟ್. ನೀವು ನಿಮ್ಮ ಮೌಸ್ ಅನ್ನು ಸರಿಸಿದಾಗ – ಅದು ಇನ್ನೊಂದು ಈವೆಂಟ್.
ಈವೆಂಟ್-ಚಾಲಿತ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ನಮಗೆ ನಮ್ಮ ಕೋಡ್ ಅನ್ನು ಕೇಳಲು ಮತ್ತು ಪ್ರತಿಕ್ರಿಯಿಸಲು ಸಜ್ಜಾಗಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ನಾವು ವಿಶೇಷ ಫಂಕ್ಶನ್ಗಳನ್ನು ಸೃಷ್ಟಿಸುತ್ತೇವೆ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ **ಈವೆಂಟ್ ಶ್ರೋತ**ಗಳು (event listeners) ವಿಶೇಷ ಘಟನೆಗಳು ಸಂಭವಿಸಲು ಕಾಯುತ್ತವೆ, ಆಗ ಅವು ಸಕ್ರಿಯವಾಗುತ್ತವೆ.
ಈವೆಂಟ್ ಶ್ರೋತಗಳನ್ನು ನಿಮ್ಮ ಕೋಡಿಗೆ ಬಾಗಿಲುನಿಗ್ಗಾದ ಬಂತು ಎಂದು ಯೋಚಿಸಿ. ನೀವು ಬಾಗಿಲುನಿಗ್ಗಾದವನ್ನು (`addEventListener()`) ಸೆಟ್ ಮಾಡುತ್ತೀರಿ, ಯಾವ ಶಬ್ದವನ್ನು ಕೇಳಬೇಕೆಂದು ಹೇಳುತ್ತೀರಿ (ಒಂದು 'click' ಅಥವಾ 'keypress' ಹಾಗೆ), ಮತ್ತು ಯಾರಾದರೂ ಅದನ್ನು ಒತ್ತಿದಾಗ ಏನು ನಡೆಯಬೇಕು ಎಂದು ನಿಮಗೆ ತಿಳಿಸುತ್ತದೆ (ನಿಮ್ಮ ಕಸ್ಟಮ್ ಫಂಕ್ಶನ್).
**ಈವೆಂಟ್ ಶ್ರೋತಗಳು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ:**
- **ನೋಡುತ್ತದೆ** ವಿಶೇಷ ಉಪಯೋಗದ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು, ಉದಾಹರಣೆಗೆ ಕ್ಲಿಕ್, ಕೀಸ್ಟ್ರೋಕ್, ಅಥವಾ ಮೌಸ್ ಚಲನೆಗಳು
- **ನಿರ್ವಹಿಸುತ್ತದೆ** ನಿಮ್ಮ ಕಸ್ಟಮ್ ಕೋಡ್ ಅನ್ನು ಆ ಕಾರ್ಯ ಸಂಭವಿಸಿದಾಗ
- **ತಕ್ಷಣವೇ ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತದೆ** ಉಪಯೋಗದ ಸಂತುಷ್ಟಿಗಾಗಿ
- **ನಿರ್ವಹಿಸುತ್ತದೆ** ಒಂದೇ ತತ್ವದ ಮೇಲೆ ಹಲವಾರು ಈವೆಂಟ್ಗಳನ್ನು ವಿಭಿನ್ನ ಶ್ರೋತಗಳ ಮೂಲಕ
> **ಟಿಪ್ಪಣಿ:** ಈವೆಂಟ್ ಶ್ರೋತಗಳನ್ನು ಸೃಷ್ಟಿಸುವ ಅನೇಕ ಮಾರ್ಗಗಳಿವೆ. ನೀವು ಅನಾಮಿಕ ಫಂಕ್ಶನ್ಗಳನ್ನು ಅಥವಾ ವ್ಯಕ್ತಿಗತ ಹೆಸರಿನ ಫಂಕ್ಶನ್ಗಳನ್ನು ಬಳಸಬಹುದು. ನೀವು ವಿಭಿನ್ನ ತ್ವರಿತ ಮಾರ್ಗಗಳನ್ನು ಬಳಸಬಹುದು, ಉದಾ. `click` ಪ್ರಾಪರ್ಟಿಯನ್ನು ಸೆಟ್ ಮಾಡುವುದು ಅಥವಾ `addEventListener()` ಅನ್ನು ಬಳಸುವುದು. ನಮ್ಮ ಅಭ್ಯಾಸದಲ್ಲಿ ನಾವು `addEventListener()` ಮತ್ತು ಅನಾಮಿಕ ಫಂಕ್ಷನ್ಗಳ ಮೇಲೆ ಗಮನಹರಿಸುತ್ತೇವೆ, ಏಕೆಂದರೆ ಇದು ಸೇವಕ ಪ್ರಧಾನವಾಗಿದ್ದು ಬಹುಮಾನವಾಗಿ ಬಳಸಲ್ಪಡುವ ವಿಧಾನ. ಇದು ಅತ್ಯಂತ ಸ್ವ Eleanor ಸಾಧಕೀಯವೂ ಆಗಿದ್ದು, ಏಕೆಂದರೆ `addEventListener()` ಎಲ್ಲಾ ಈವೆಂಟ್ಗಳಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ ಮತ್ತು ಈವೆಂಟ್ ಹೆಸರನ್ನು ಪ್ಯಾರಾಮೀಟರ್ ಆಗಿ ನೀಡಬಹುದು.
### ಸಾಮಾನ್ಯ ಈವೆಂಟುಗಳು
ವೆಬ್ ಬ್ರೌಸರಗಳು ಬಹಳಷ್ಟು ವಿಭಿನ್ನ ಈವೆಂಟ್ಗಳನ್ನು ಕೇಳಲು ಅವಕಾಶ ನೀಡುತ್ತವೆ, ಆದಾಗ್ಯೂ ಬಹುತೇಕ ಸಂವಹನಾತ್ಮಕ ಅಪ್ಲಿಕೇಶನ್ಗಳು ಕೆಲವು ಮೂಲಭೂತ ಈವೆಂಟ್ಗಳ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸುತ್ತವೆ. ಈ ಆಧಾರದ ಈವೆಂಟ್ಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಸೇವಕ ನಿತ್ಯ ನವೀನ ಸಂವಹನಗಳನ್ನು ನಿರ್ಮಿಸಲು ಮೂಲಭೂತ ಅಡಿಪಾಯವನ್ನು ಕೊಡುವುದು.
ನೀವು ಕೇಳಲು ಸಾಧ್ಯ ಇರುವ [ಬಹುಸಂಖ್ಯೆ ಈವೆಂಟುಗಳು](https://developer.mozilla.org/docs/Web/Events) ಲಭ್ಯವಿವೆ. ಸಾಮಾನ್ಯವಾಗಿ, ಬಳಕೆದಾರರು ಪುಟದಲ್ಲಿ ಮಾಡುವ ಯಾವುದೇ ಕಾರ್ಯವು ಒಂದು ಈವೆಂಟ್ ಅನ್ನು ಹೋರುತ್ತದೆ, ಇದು ನಿಮಗೆ ಬೇಕಾದ ಅನುಭವವನ್ನು ಬೆಳೆಗೊಳಿಸಲು ಹೆಚ್ಚು ಶಕ್ತಿ ನೀಡುತ್ತದೆ. ಒಗ್ಗಟ್ಟಾಗಿ, ನಿಮಗೆ ಸಾಮಾನ್ಯವಾಗಿ ಕೆಲವು ಈವೆಂಟ್ಗಳಷ್ಟೇ ಬೇಕಾಗುತ್ತದೆ. ಇಲ್ಲಿವೆ ಕೆಲವು ಸಾಮಾನ್ಯ ಈವೆಂಟ್ಗಳು (ನಾವು ನಮ್ಮ ಆಟ ರಚಿಸುವಾಗ ಬಳಸುವ ಎರಡು ಸಹ ಸೇರಿವೆ):
| ಈವೆಂಟ್ | ವಿವರಣೆ | ಸಾಮಾನ್ಯ ಬಳಕೆ ಪ್ರಕರಣಗಳು |
|---------|---------|-------------------------|
| `click` | ಬಳಕೆದಾರನು ಏನಾದಾದರೂ ಕ್ಲಿಕ್ ಮಾಡಿದರೆ | ಬಟನ್ಗಳು, ಲಿಂಕ್ಗಳು, ಪ್ರತ್ಯಾಧಾರಿತ ಭಾಗಗಳು |
| `contextmenu` | ಬಳಕೆದಾರನು ಬಲಕೈ ಮೌಸ್ ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿದರೆ | ಕಸ್ಟಮ್ ಬಲ-ಕ್ಲಿಕ್ ಮೆನುಗಳು |
| `select` | ಬಳಕೆದಾರನು ಕೆಲವು ಪಠ್ಯವನ್ನು ಆಯ್ಕೆ ಮಾಡಿದಾಗ | ಪಠ್ಯ ಸಂಪಾದನೆ, ನಕಲಾತಿ ಕಾರ್ಯಗಳು |
| `input` | ಬಳಕೆದಾರನು ಕೆಲವು ಪಠ್ಯವನ್ನು ನಮೂದಿಸಿದಾಗ | ಫಾರ್ಮ್ ಪರಿಶೀಲನೆ, ರಿಯಲ್ಟೈಮ್ ಶೋಧನೆ |
**ಈ ಈವೆಂಟ್ ವಿಧಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು:**
- **ಪ್ರೇರಣೆ** ಆಗುತ್ತದೆ ಬಳಕೆದಾರರು ಪುಟದ ನಿರ್ದಿಷ್ಟ ಅಂಶಗಳಲ್ಲಿ ಕ್ರಿಯೆ ಸಲ್ಲಿಸಿದಾಗ
- **ನೀಡುತ್ತದೆ** ಉಪಯೋಗದ ಕಾರ್ಯಾಚರಣೆಗಳ ವಿವರವನ್ನು ಈವೆಂಟ್ ಒಬ್ಜೆಕ್ಟ್ಗಳ ಮೂಲಕ
- **ಸಾಧಿಸಲು** ಪ್ರತಿಕ್ರಿಯಾಶೀಲ, ಸಂವಹನಾತ್ಮಕ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ಗಳ ರಚನೆ
- **ಕಾರ್ಯಕ್ಷಮವಾಗುತ್ತದೆ** ವಿಭಿನ್ನ ಬ್ರೌಸರ್ಗಳು ಮತ್ತು ಸಾಧನಗಳಲ್ಲಿ ಸತತವಾಗಿ
## ಆಟ ಸೃಷ್ಟಿಸುವುದು
ಈಗ ನೀವು ಈವೆಂಟ್ಗಳು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಂಡಿರುವುದರಿಂದ, ಅದನ್ನು ಪ್ರಾಯೋಗದಲ್ಲಿ ಇಡೋಣ ಮತ್ತು ಕೌಶಲ್ಯವನ್ನು ಅಭ್ಯಾಸ ಮಾಡೋಣ. ನಾವು ಒಂದು ಟೈಪಿಂಗ್ ವೇಗದ ಆಟವನ್ನು ರಚಿಸುತ್ತೇವೆ ಇದು ಈವೆಂಟ್ ನಿರ್ವಹಣೆಯನ್ನು ತೋರಿಸುತ್ತದೆ ಮತ್ತು ನಿಮಗೆ ಒಂದು ಪ್ರಮುಖ ಡೆವಲಪರ್ ಕೌಶಲ್ಯವನ್ನು ಪಡೆಯಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.
ನಾವು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ನಲ್ಲಿ ಈವೆಂಟ್ಗಳು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ ಎಂದು ಹುಡುಕಾಟ ಮಾಡೋಣ. ನಮ್ಮ ಆಟ ಆಡುವವರ ಟೈಪಿಂಗ್ ಕೌಶಲ್ಯವನ್ನು ಪರೀಕ್ಷಿಸುವುದು, ಇದು ಎಷ್ಟೋ ಉಪೇಕ್ಷಿತ ಮಹತ್ವದ ಕೌಶಲ್ಯವಾಗಿದೆ ಎಲ್ಲಾ ಡೆವಲಪರ್ಗಳಿಗೆ. ಹ್ಯಾಂಡ್ ಫ್ಯಾಕ್ಟ್: ನಾವು ಇಂದು ಬಳಸುತ್ತಿರುವ ಕ್ಯೂಡಬ್ಲ್ಯೂಇಆರ್ಟಿವೈ ಕೀಬೋರ್ಡ್ ವಿನ್ಯಾಸವು 1870ರ ದಶಕದಲ್ಲಿ ಟೈಪ್ರೈಟರ್ಗಳಿಗಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲ್ಪಟ್ಟಿದ್ದು — ಮತ್ತು ಉತ್ತಮ ಟೈಪಿಂಗ್ ಕೌಶಲ್ಯಗಳು ಇಂದುವೂ ಪ್ರೋಗ್ರಾಮರ್ಗಳಿಗೆ ಬಹಳ ಮುಖ್ಯವಾಗಿವೆ! ಆಟದ ಸಾಮಾನ್ಯ потоки ಹೀಗೆ ಇರುತ್ತದೆ:
```mermaid
flowchart TD
A[ತಂಡ ಆರಂಭಿಸಲು ಕ್ಲಿಕ್ ಮಾಡುತ್ತದೆ] --> B[ಯಾದೃಚ್ಛಿಕ ಉಕ್ತಿಯನ್ನು ತೋರಿಸುತ್ತದೆ]
B --> C[ತಂಡ ಪಠ್ಯಪಟ್ಟಿಕೆನೊಳಗೆ ಟೈಪ್ ಮಾಡುತ್ತದೆ]
C --> D{ಪದ ಪೂರ್ಣವಾಯಿತೇ?}
D -->|ಹೌದು| E[ಮುಂದಿನ ಪದವನ್ನು ಹೈಲೈಟ್ ಮಾಡಿ]
D -->|ಇಲ್ಲ| F{ಇದರವರೆಗೆ ಸರಿದಿದ್ದೇ?}
F -->|ಹೌದು| G[ಸಾಮಾನ್ಯ ಶೈಲಿಯನ್ನು ಉಳಿಸಿ]
F -->|ಇಲ್ಲ| H[ದೋಷ ಶೈಲಿಯನ್ನು ತೋರಿಸಿ]
E --> I{ಉಕ್ತಿ ಪೂರ್ಣವಾಯಿತೇ?}
I -->|ಇಲ್ಲ| C
I -->|ಹೌದು| J[ಸಮಯದೊಂದಿಗೆ ಯಶಸ್ವಿ ಸಂದೇಶವನ್ನು ತೋರಿಸಿ]
G --> C
H --> C
```
**ನಮ್ಮ ಆಟ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ:**
- **ಪ್ರಾರಂಭವಾಗುತ್ತದೆ** ಆಟಗಾರ ಪ್ರಾರಂಭ ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ ಮತ್ತು ಯಾದೃಚ್ಛಿಕ ಉಲ್ಲೇಖವನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತದೆ
- **ಟ್ರ್ಯಾಕ್ ಮಾಡುತ್ತದೆ** ಆಟಗಾರನ ಟೈಪಿಂಗ್ ಪ್ರಗತಿಯನ್ನು ಪದದಂತೆ ನೈಜ ಸಮಯದಲ್ಲಿ
- **ಹೈಲೈಟ್ ಮಾಡುತ್ತದೆ** ಪ್ರಸ್ತುತ ಪದವನ್ನು ಆಟಗಾರನ ಗಮನ ಸರಿಸಲು
- **ನೀಡುತ್ತದೆ** ಟೈಪಿಂಗ್ ದೋಷಗಳಿಗೆ ತಕ್ಷಣದ ದೃಶ್ಯ ಪ್ರತಿಕ್ರಿಯೆ
- **ಗಣನೆ ಮಾಡುತ್ತದೆ** ಮತ್ತು ಪ್ರದರ್ಶಿಸುತ್ತದೆ ಒಟ್ಟು ಸಮಯವನ್ನು ಉಲ್ಲೇಖ ಮುಗಿದ ಮೇಲೆ
ಬನ್ನಿ ನಮ್ಮ ಆಟ ನಿರ್ಮಿಸೋಣ, ಮತ್ತು ಈವೆಂಟುಗಳ ಬಗ್ಗೆ ಕಲಿಯೋಣ!
### ಕಡತ ರಚನೆ
ನಾವು ಕೋಡ್ ಬರೆಯುವ ಮೊದಲು, ವ್ಯವಸ್ಥಿತವಾಗೋಣ! ಪ್ರಾರಂಭದಿಂದ ಸ್ವಚ್ಛ ಕಡತ ರಚನೆ ಹೊಮ್ಮಿಸಲು ನಿಮಗೆ ನಂತರ ತಲೆನೋವು ಕಮ್ಮಿಯಾಗುತ್ತದೆ ಮತ್ತು ನಿಮ್ಮ ಯೋಜನೆಯನ್ನು ವೃತ್ತಿಪರವಾಗಿಸುತ್ತದೆ. 😊
ನಾವು ಸರಳವಾಗಿ ಮೂರು ಕಡತಗಳನ್ನು ಇಡುತ್ತೇವೆ: `index.html` ನಮ್ಮ ಪುಟ ರಚನೆಗೆ, `script.js` ನಮ್ಮ ಆಟದ ಲಾಜಿಕ್ಗಳಿಗೆ, ಮತ್ತು `style.css` ಎಲ್ಲವನ್ನು ಸುಂದರವಾಗಿ ತೋರಿಸಲು. ಇದೇ ವೆಬ್ಗಳ ಬಹುಮಾನವಾದ ಕ್ಲಾಸಿಕ್ ಟ್ರಿಯೋ!
**ನಿಮ್ಮ ಕೆಲಸಕ್ಕೆ ಹೊಸ ಫೋಲ್ಡರ್ ರಚಿಸಲು ಕಾನ್ಸೋಲ್ ಅಥವಾ ಟರ್ಮಿನಲ್ ವಿಂಡೋ ತೆರೆದ ಬಳಿಕ ಕೆಳಗಿನ ಆದೇಶ ನಡಪಡಿಸಿ:**
```bash
# ಲಿನಕ್ಸ್ ಅಥವಾ ಮ್ಯಾಕ್ಒಎಸ್
mkdir typing-game && cd typing-game
# ವಿಂಡೋಸ್
md typing-game && cd typing-game
```
**ಈ ಆದೇಶಗಳು ಮಾಡುವುದೇನು:**
- ನಿಮ್ಮ ಯೋಜನೆ ಕಡತಗಳಿಗಾಗಿ `typing-game` ಎಂದು ಹೊಸ ಡೈರೆಕ್ಟರಿ ಸೃಷ್ಟಿಸುತ್ತದೆ
- ತಕ್ಷಣಾಗಿ ಆ ಡೈರೆಕ್ಟರಿಯ ಒಳಗೆ ನವಿಗೇಟ್ ಆಗುತ್ತದೆ
- ನಿಮ್ಮ ಆಟ ಅಭಿವೃದ್ಧಿಗಾಗಿ ಸ್ವಚ್ಛ ಕಾರ್ಯಸ್ಥಳವನ್ನು ಸಿದ್ಧಪಡಿಸುತ್ತದೆ
**ವಿಜುವಲ್ ಸ್ಟುಡಿಯೋ ಕೋಡ್ ತೆರೆಯಿರಿ:**
```bash
code .
```
**ಈ ಆದೇಶಕ್ಕೆ:**
- ಪ್ರಸ್ತುತ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ವಿಜುವಲ್ ಸ್ಟುಡಿಯೋ ಕೋಡ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತದೆ
- ನಿಮ್ಮ ಯೋಜನೆ ಫೋಲ್ಡರನ್ನು ಸಂಕಲಕರಿನಲ್ಲಿ ತೆರೆಯುತ್ತದೆ
- ಅಭಿವೃದ್ಧಿ ಉಪಕರಣಗಳಿಗೆ ಸತ್ವಬಾಧಿತ ಪ್ರವೇಶ ನೀಡುತ್ತದೆ
**ಈ ಫೋಲ್ಡರ್ಗೆ ತಿದ್ದುಪಡಿ ಮಾಡಿ ಮೂರು ಕಡತಗಳನ್ನು ವಿಜುವಲ್ ಸ್ಟುಡಿಯೋ ಕೋಡ್ನಲ್ಲಿ ಸೇರಿಸಿ:**
- `index.html` - ನಿಮ್ಮ ಆಟದ ರಚನೆ ಮತ್ತು ವಿಷಯವನ್ನು ಹೊಂದಿದೆ
- `script.js` - ಎಲ್ಲಾ ಆಟ ಲಾಜಿಕ್ ಮತ್ತು ಈವೆಂಟ್ ಶ್ರೋತಗಳ ನಿರ್ವಹಣೆ
- `style.css` - ದೃಶ್ಯ ಪರಿಣಾಮ ಮತ್ತು ಶೈಲಿಯನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ
## ಬಳಕೆದಾರ ಇಂಟರ್ಫೇಸ್ ರಚನೆ
ಈಗ ನಾವು ಎಲ್ಲರ ಘಟನಾಚರಣೆ ನಡೆಯುವ ವೇದಿಕೆಯನ್ನು ನಿರ್ಮಿಸೋಣ! ಇದು ಒಂದು ಬಾಹ್ಯಾಕಾಶ ನೌಕೆಯ ನಿಯಂತ್ರಣ ಫಲಕವನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸುವಂತೆ — ನಾವು ಖಚಿತಪಡಿಸೋಣ ಪ್ಲೇಯರ್ಗಳಿಗೆ ಬೇಕಾದ ಎಲ್ಲವೂ ಸ್ವಭಾವಿಕವಾಗಿ ಅಲ್ಲಿ ಇರುವಂತೆ.
ನಮ್ಮ ಆಟಕ್ಕೆ ಬೇಕಾದುದೇನೋ ತಿಳಿದುಕೊಳ್ಳೋಣ. ನೀವು ಒಂದು ಟೈಪಿಂಗ್ ಆಟ ಆಡುತ್ತಿದ್ದರೆ, ಪರದೆ ಮೇಲೆ ಏನು ನೋಡಲು ಇಷ್ಟಪಡುತ್ತೀರಿ? ನಾವು ಬೇಕಾದವು ಇಲ್ಲಿ:
| UI ಅಂಶ | ಉದ್ದೇಶ | HTML ಅಂಶ |
|----------|---------|-----------|
| ಉಲ್ಲೇಖ ಪ್ರದರ್ಶನ | ಟೈಪ್ ಮಾಡುವ ಪಠ್ಯ ತೋರಿಸುತ್ತದೆ | `
` ಜೊತೆಗೆ `id="quote"` |
| ಸಂದೇಶ ಪ್ರದೇಶ | ಸ್ಥಿತಿ ಮತ್ತು ಯಶಸ್ಸಿನ ಸಂದೇಶಗಳ ಪ್ರದರ್ಶನ | `
` ಜೊತೆಗೆ `id="message"` |
| ಟೆಕ್ಸ್ಟ್ ಇನ್ಪುಟ್ | ಆಟಗಾರರು ಉಲ್ಲೇಖವನ್ನು ಟೈಪ್ ಮಾಡುತ್ತಾರೆ | `` ಜೊತೆಗೆ `id="typed-value"` |
| ಪ್ರಾರಂಭ ಬಟನ್ | ಆಟ ಪ್ರಾರಂಭಿಸುತ್ತದೆ | `