# ഇവന്റുകൾ ഉപയോഗിച്ച് ഒരു ഗെയിം സൃഷ്ടിക്കൽ
നിങ്ങൾ ബട്ടൺ ക്ലിക്ക് ചെയ്യുമ്പോൾ അല്ലെങ്കിൽ ടെക്സ്റ്റ് ബോക്സിൽ ടൈപ്പ് ചെയ്യുമ്പോൾ വെബ്സൈറ്റുകൾ എങ്ങനെ അറിയുന്നു എന്ന് ഒരിക്കൽ നിങ്ങൾക്ക് വിചാരിച്ചിട്ടുണ്ടോ? അതാണ് ഇവന്റ് ഡ്രിവൻ പ്രോഗ്രാമിങ്ങിന്റെ മായാജാലം! നിങ്ങൾ ചെയ്യുന്ന ഓരോ കീസ്റ്റ്രോക്കും പ്രതികരിക്കുന്ന ഒരു ടൈപ്പിംഗ് വേഗം ഗെയിം നിർമ്മിച്ച് ഈ അടിസ്ഥാന കഴിവ് നേടുന്നതിന് ഇതു വർഗ്ഗം മികച്ച രീതിയാണ്.
വെബ് ബ്രൗസറുകൾ നിങ്ങളുടെ ജാവാസ്ക്രിപ്റ്റ് കോഡുമായി എങ്ങനെ "സംസരിക്കുന്നു" എന്ന് നിങ്ങൾ നേരിട്ട് കാണുകയും ചെയ്യും. നിങ്ങൾ ക്ലിക്ക് ചെയ്യുമ്പോഴും, ടൈപ്പ് ചെയ്യുമ്പോഴും, മൗസ് നീക്കുമ്പോഴും, ബ്രൗസർ ചെറു സന്ദേശങ്ങൾ (ഇവരെ ഇവന്റുകൾ എന്ന് വിളിക്കുന്നു) നിങ്ങളുടെ കോഡിലേക്ക് അയയ്ക്കുന്നു, നിങ്ങൾ മറുപടി എങ്ങനെ നൽകണമെന്ന് തീരുമാനിക്കാം!
നാം ഇവിടെ വായിക്കുന്നത് കൊണ്ട് നിങ്ങൾ ഒരു യാഥാർത്ഥ്യ ടൈപ്പിംഗ് ഗെയിം നിർമ്മിച്ചിരിക്കും, അത് നിങ്ങളുടെ വേഗതയും കൃത്യതയും ട്രാക്ക് ചെയ്യുന്നു. അതിലും പ്രധാനമായി, നിങ്ങൾ ഇവന്റ് ഡ്രിവൻ വെബ്സൈറ്റുകളുടെ അടിസ്ഥാന ആശയങ്ങൾ മനസ്സിലാക്കും. തുടങ്ങാം!
## ഉപദേശം മുൻകൂട്ടി ചോദ്യോത്തരങ്ങൾ
[Pre-lecture quiz](https://ff-quizzes.netlify.app/web/quiz/21)
## ഇവന്റ് ഡ്രിവൻ പ്രോഗ്രാമിങ്ങ്
നിങ്ങളുടെ പ്രിയപ്പെട്ട ആപ്പ് അല്ലെങ്കിൽ വെബ്സൈറ്റ് - അത് എങ്ങനെ ജീവിക്കുന്നതും പ്രതികരണ ശേഷിയുള്ളതും ആണ് എന്നു നിങ്ങൾക്ക് തോന്നിക്കേണ്ടത് എന്താണെന്ന് ചിന്തിക്കൂ? നിങ്ങൾ ചെയ്യുന്നതിന് എങ്ങനെ അതു പ്രതികരിക്കുന്നു എന്നതാണ് കാര്യം! ഓരോ ട്യാപ്, ക്ലിക്ക്, സ്വൈപ്പ്, അല്ലെങ്കിൽ കീസ്റ്റ്രോക്കും നമ്മൾ "ഇവന്റ്" എന്ന് വിളിക്കുന്നതും സൃഷ്ടിക്കുന്നു, അതാണ് വെബ് ഡെവലപ്പ്മെന്റിന്റെ യഥാർത്ഥ മായാജാലം.
വെബിനുള്ള പ്രോഗ്രാമിങ്ങ് ഭേദമാക്കുന്നത് ഇതാണ്: ആരോ ആ ബട്ടൺ ക്ലിക്ക് ചെയ്യുമോ അല്ലെങ്കിൽ ടെക്സ്റ്റ് ബോക്സിൽ ടൈപ്പ് തുടങ്ങുമോ എന്ന് നമുക്ക് ഒരിക്കലും അറിയില്ല. അവർ ഉടനെ ക്ലിക്ക് ആകാം, അഞ്ചു മിനിറ്റ് കാത്തിരിക്കാം, ആദ്യങ്ങൾ എക്കാലവും ക്ലിക്ക് എവിടെയുമാകുമെന്നും! ഈ അനിശ്ചിതത്വം കൊണ്ട് നമ്മൾ നമ്മുടെ കോഡ് എഴുതുന്നത് വ്യത്യസ്ഥമായി ആലോചിക്കേണ്ടിവരും.
മുകളിൽ നിന്ന് താഴേക്ക് ഒരു രെസിപ്പി പോലെ ഓടുന്ന കോഡ് എഴുതുന്നത് പകരം, എന്തെങ്കിലും സംഭവിക്കാന് കാത്തിരിക്കുoതുകൊണ്ട് നിശ്ചലമായി നില്ക്കുന്ന കോഡ് എഴുതുന്നു. 1800 കളിൽ ടെലഗ്രാഫ് ഓപ്പറേറ്റർമാർ അവരുടെ മെഷീനുകളുടെ സമീപം ഇരുന്ന് സന്ദേശം കേബിളിലൂടെ വന്നവട്ടം പ്രതികരിക്കാൻ തയ്യാറായി നിന്നതുപോലെ.
അതിനാൽ "ഇവന്റ്" എന്ന് കൃത്യമായി എന്താണ്? അതത് സംഭവിക്കുന്ന ഒന്നാണ്! നിങ്ങൾ ഒരു ബട്ടൺ ക്ലിക്ക് ചെയ്താൽ - അത് ഒരു ഇവന്റ് ആണ്. നിങ്ങൾ ഒരു അക്ഷരം ടൈപ്പ് ചെയ്താൽ - അത് ഒരു ഇവന്റ് ആണ്. നിങ്ങൾ മൗസ് നീക്കുമ്പോൾ - അത് മറ്റൊരു ഇവന്റ് ആണ്.
ഇവന്റ് ഡ്രിവൻ പ്രോഗ്രാമിങ്ങ് നമ്മുടെ കോഡ് ലൈസൻ ചെയ്യാനും പ്രതികരിക്കാനും ഒരുക്കി വെക്കാൻ സഹായിക്കുന്നു. നാം **ഇവന്റ് ലിസ്സണറുകൾ** എന്ന പ്രത്യേക ഫംഗ്ഷനുകൾ സൃഷ്ടിക്കുന്നു, ഇവ നിശ്ചിത കാര്യങ്ങൾ സംഭവിക്കാൻ കാത്തിരിക്കുന്നു, സംഭവിക്കുമ്പോൾ പ്രവർത്തനക്ഷമമാകുന്നു.
ഇവന്റ് ലിസ്സണറുകളെ നിങ്ങൾ നിങ്ങളുടെ കോഡിന് വേണ്ടി ദ്വാരക്കണിഞ്ഞു കാത്തിരിക്കുന്ന ഡോർബെൽപോലെ കരുതാം. നിങ്ങൾ ഡോർബെൽ (`addEventListener()`) സെറ്റ് ചെയ്യുന്നു, ഏത് ശബ്ദം കേൾക്കണമെന്ന് (ഉദാ: 'click' അല്ലെങ്കിൽ 'keypress') പറയുന്നു, പിന്നെ ആരെങ്കിലും അത് തട്ടി വിളിച്ചതോടെ എന്ത് സംഭവിക്കുമെന്ന് (നിങ്ങളുടെ ഇഷ്ടാനുസൃത ഫങ്ഷൻ) വ്യക്തമാക്കുന്നു.
**ഇവന്റ് ലിസ്സണറുകൾ എങ്ങനെ പ്രവർത്തിക്കുന്നു:**
- **നിശ്ചിത ഉപയോക്തൃ പ്രവർത്തനങ്ങൾ** വഴി കേൾക്കുന്നത്, ഉദാ: ക്ലിക്കുകൾ, കീസ്റ്റ്രോക്കുകൾ, മൗസ് ചലനങ്ങൾ
- **നിശ്ചിത ഇവന്റ് സംഭവിക്കുമ്പോൾ** നിങ്ങളുടെ ഇഷ്ടാനുസൃത കോഡ് പ്രവർത്തിപ്പിക്കുന്നു
- **ഉപയോക്തൃ ഇടപെടലുകൾക്ക്** ഉടൻ പ്രതികരിച്ച് സുഗമ അനുഭവം സൃഷ്ടിക്കുന്നു
- **അതിരായ listener ഉപയോഗിച്ച്** ഒരേ എലമെന്റിൽ നിരവധി ഇവന്റുകൾ കൈകാര്യം ചെയ്യുന്നു
> **കുറിപ്പ്:** ഇവന്റ് ലിസ്സണറുകൾ സൃഷ്ടിക്കാൻ അനേകം മാർഗ്ഗങ്ങൾ ഉണ്ട്. നിങ്ങൾ നാമരഹിത ഫംഗ്ഷനുകളോ, പേരുള്ളവയോ ഉപയോഗിക്കാം. `click` പ്രോപ്പർട്ടി സജ്ജീകരിക്കൽ പോലുള്ള ഷോർട്ട്കട്ടുകൾ ഉപയോഗിക്കാം, അല്ലെങ്കിൽ `addEventListener()` ഉപയോഗിക്കാം. ഈ പരിശീലനത്തിൽ നാം `addEventListener()`യും നാമരഹിത ഫംഗ്ഷനുകളും ഉപയോഗിക്കുകയാണ്, അതാണ് വെബ് ഡെവലപ്പർമാർ സാധാരണയായി ഉപയോഗിക്കുന്ന ഏറ്റവും സാധാരണമായ രീതിയെന്നും ഇത് ഏറ്റവും ലളിതവുമാണ്. `addEventListener()` എല്ലാ ഇവന്റുകൾക്കും പ്രവർത്തിക്കുന്നു, ഇവന്റ് നാമം പാരാമീറ്ററായി നൽകാം.
### സാധാരണ ഇവന്റുകൾ
വെബ് ബ്രൗസറുകൾ അനേകം വ്യത്യസ്ത ഇവന്റുകൾ കേൾക്കുവാൻ നിങ്ങൾക്ക് അനുവദിക്കുന്നു, എന്നാൽ ഭൂരിഭാഗം ഇന്ററാക്ടീവ് ആപ്പ്ലിക്കേഷനുകൾ ആവശ്യമായ ചില പ്രധാന ഇവന്റുകളിൽ അടിച്ചമർത്തുന്നു. ഈ അടിസ്ഥാന ഇവന്റുകൾ മനസ്സിലാക്കുന്നത് പ്രഗത്ഭ ഉപയോക്തൃ ഇടപെടലുകൾ നിർമ്മിക്കാൻ സഹായിക്കും.
ഒരു ആപ്ലിക്കേഷൻ സൃഷ്ടിക്കുമ്പോൾ കേൾക്കാൻ ലഭ്യമായ [മിക്ക ഇവന്റുകളും](https://developer.mozilla.org/docs/Web/Events) ഉണ്ട്. അടിസ്ഥാനത്തിൽ ഒരു പേജിൽ ഉപയോക്താവ് ചെയ്യുന്ന ഏതൊരു പ്രവർത്തനവും ഒരു ഇവന്റ് ഉയർത്തും, ഇതു നിങ്ങളെ ഉപയോഗിച്ച് വളരെയധികം ശക്തി നൽകുന്നു ഉപയോക്തൃ അനുഭവം നിയന്ത്രിക്കാൻ. ഭാഗ്യം വശാൽ, സാധാരണയായി നിങ്ങൾക്ക് ചെറിയ ചില ഇവന്റുകൾ മാത്രം വേണ്ടതാണ്. ചില സാധാരണ ഇവന്റുകൾ (നമുക്ക് ഗെയിം സൃഷ്ടിക്കുമ്പോൾ ഉപയോഗിക്കാനുള്ള രണ്ട് ഇവന്റുകൾ ഉൾപ്പെടെ):
| ഇവന്റ് | വിവരണം | സാധാരണ ഉപയോഗങ്ങൾ |
|--------|----------|--------------------|
| `click` | ഉപയോക്താവ് ഒന്നിനെ ക്ലിക്ക് ചെയ്തു | ബട്ടണുകൾ, ലിങ്കുകൾ, ഇന്ററാക്ടീവ് ഘടകങ്ങൾ |
| `contextmenu` | ഉപയോക്താവ് മൗസിന്റെ വലത് ബട്ടൺ ക്ലിക്ക് ചെയ്തു | റൈറ്റ് ക്ലിക്ക് മെനുകളും കസ്റ്റം മെനുകളും |
| `select` | ഉപയോക്താവ് ചില ടെക്സ്റ്റ് ഹൈലൈറ്റ് ചെയ്തു | ടെക്സ്റ്റ് എഡിറ്റിംഗ്, കോപി പ്രവർത്തനങ്ങൾ |
| `input` | ഉപയോക്താവ് ടെക്സ്റ്റ് ഇൻപുട്ട് ചെയ്തു | ഫോറം പരിശോധന, റിയൽ-ടൈം സേച്ച് |
**ഈ ഇവന്റ് തരം മനസ്സിലാക്കുക:**
- **ട്രിഗർ ചെയ്യുന്നു** ഉപയോക്താക്കൾ നിങ്ങളുടെ പേജിലെ നിശ്ചിത ഘടകങ്ങളുമായി ഇടപെടുമ്പോൾ
- **നൽകുന്നു** ഇവന്റ് ഒബ്ജക്ടുകൾ വഴി ഉപയോക്താവിന്റെ പ്രവർത്തനങ്ങളുടെ വിശദാംശങ്ങൾ
- **സാധ്യമാക്കുന്നു** പ്രതികരണശീലമുള്ള, ഇന്ററാക്ടീവ് വെബ് ആപ്ലിക്കേഷനുകൾ സൃഷ്ടിക്കുന്നത്
- **പ്രവർത്തിക്കുന്നു** വ്യത്യസ്ത ബ്രൗസറുകളിൽ, ഉപകരണങ്ങളിൽ സ്ഥിരമായി
## ഗെയിം സൃഷ്ടിക്കൽ
ഇവന്റുകൾ എങ്ങനെ പ്രവർത്തിക്കുന്നു എന്ന് നിങ്ങൾ മനസ്സിലാക്കിയതിനുശേഷം, പ്രായോഗികമായി എന്തെങ്കിലും ഉപകാരപ്രദം നിർമ്മിക്കാം. നാം ഒരു ടൈപ്പിംഗ് വേഗം ഗെയിം സൃഷ്ടിക്കാം, ഇത് ഇവന്റ് ഹാൻഡ്ലിംഗിനെ പ്രദർശിപ്പിക്കുമ്പോൾ പ്രധാന ഡെവലപ്പർ കഴിവ് വികസിപ്പിക്കാനും സഹായിക്കും.
നാം ജാവാസ്ക്രിപ്റ്റിൽ ഇവന്റുകൾ എങ്ങനെ പ്രവർത്തിക്കുന്നതെന്ന് വിശദീകരിക്കാൻ ഒരു ഗെയിം സൃഷ്ടിക്കാം. നമ്മുടെ ഗെയിം ഒരു പ്ലെയറുടെ ടൈപ്പിംഗ് കഴിവ് പരിശോധിക്കും, എല്ലാ ഡെവലപ്പർമാർക്കും വേണമെന്ന് പരിഗണിക്കപ്പെടാത്ത ഒരു പ്രധാന കഴിവ്. രസകരമായ വസ്തുത: നാം ഇന്ന് ഉപയോഗിക്കുന്ന QWERTY കീബോർഡ് ലേഔട്ട് പിറവിപെടുത്തിയത് 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
```
**ഞങ്ങളുടെ ഗെയിം എങ്ങനെ പ്രവർത്തിക്കും:**
- **ആരംഭിക്കും** പ്ലേയർ സ്റ്റാർട്ട് ബട്ടൺ ക്ലിക് ചെയ്യുമ്പോൾ ഒരു യാദൃച്ഛിക ഉദ്ധരണം പ്രദർശിപ്പിച്ചു
- **ട്രാക്ക് ചെയ്യും** പ്ലേയറിന്റെ ടൈപ്പിംഗ് പുരോഗതി വാക്കു വാക്കായി റിയൽ ടൈമിൽ
- **മികച്ചവാക്കുകൾക്ക് ഹൈലൈറ്റ് നൽകും** പ്ലേയറുടെ ശ്രദ്ധ നിർദ്ദേശിക്കാൻ
- **തീർച്ചയായ തെറ്റുകൾക്ക്** ഉടൻ ദൃശ്യഫീഡ്ബാക്ക് നൽകും
- ** calculates** ഉദ്ധരണി പൂർത്തിയായപ്പോൾ മൊത്തം സമയം കണക്കാക്കി പ്രദർശിപ്പിക്കും
നമുക്ക് ഗെയിം നിർമ്മിക്കാം, ഇവന്റുകൾ കുറിച്ച് പഠിക്കാം!
### ഫയൽ ഘടന
കോഡിംഗ് തുടങ്ങുന്നതിന് മുമ്പ്, ക്രമത്ത് വരൂ! ആരംഭത്തിൽ ഒറ്റനോട്ടത്തിൽ മനസ്സിലാകുന്ന ഫയൽ ഘടന ഉണ്ടെങ്കിൽ പിന്നീട് ഇത്തരം പ്രശ്നങ്ങളിൽ കുറവ് ഉണ്ടായിരിക്കും, പ്രൊഫഷണൽ പ്രോജക്ടായി മാറുന്നതിന് ഇത് സഹായിക്കുന്നു. 😊
നാം മൂന്ന് ഫയലുകൾ മാത്രമാണ് സാദ്ധ്യമാക്കുന്നത്: `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"` ഉപയോഗിച്ച് |
| സ്റ്റാർട്ട് ബട്ടൺ | ഗെയിം ആരംഭിക്കുന്നു | `