You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/km/6-space-game/6-end-condition/assignment.md

164 lines
19 KiB

# បង្កើតហ្គេមគំរូមួយ
## រូបមន្តការងារ
ឥឡូវនេះអ្នកបានឆ្លើយតបទៅនឹងលក្ខខ័ណ្ឌបញ្ចប់ហ្គេម និងមុខងារចាប់ផ្ដើមឡើងវិញក្នុងហ្គេមអាកាសរបស់អ្នករួចហើយ វានៅពេលដើម្បីអនុវត្តគំនិតទាំងនេះទៅនឹងបទពិសោធន៍ហ្គេមថ្មីមួយ។ អ្នកនឹងរចនានិងបង្កើតហ្គេមផ្ទាល់ខ្លួនរបស់អ្នកដែលបង្ហាញពីទំរង់លក្ខខ័ណ្ឌបញ្ចប់ផ្សេងៗ និងគ្រប់គ្រងចាប់ផ្ដើមឡើងវិញ។
ការងារនេះបង្ហាញឲ្យអ្នកគិតដោយច្នៃប្រឌិតអំពីការរចនាហ្គេម ខណៈដែលហ្វឹកហាត់ជំនាញបច្ចេកទេសដែលអ្នកបានរៀន។ អ្នកនឹងស្វែងយល់ពីស្ថានការណ៍ជ័យជំនះ និងការបរាជ័យផ្សេងៗ អនុវត្តន៍ការរីកចម្រើនរបស់អ្នកលេង និងបង្កើតបទពិសោធន៍ចាប់ផ្ដើមឡើងវិញដ៏ទាក់ទាញ។
## តម្រូវការប្រព្រឹត្តិ
### លក្ខណៈសម្បត្តិមូលដ្ឋានរបស់ហ្គេម
ហ្គេមរបស់អ្នកត្រូវមានធាតុដែលចាំបាច់ដូចតទៅ៖
**ចំបាំងលក្ខខ័ណ្ឌបញ្ចប់**៖ អនុវត្តយ៉ាងតិចពីរបៀបទាំងអស់ដែលហ្គេមអាចបញ្ចប់បាន៖
- **ជ័យជំនះដោយពិន្ទុ**៖ អ្នកលេងឈានដល់ពិន្ទុខលើកំណត់ ឬប្រមូលធាតុជាក់លាក់
- **បរាជ័យដោយជីវិត**៖ អ្នកលេងបាត់បង់ជីវិត ឬចំនួនសុខភាពទាំងអស់
- **បញ្ចប់បេសកកម្ម**៖ សម្លាប់សត្រូវទាំងអស់ ប្រមូលធាតុជាក់លាក់ ឬសម្រេចគោលបំណង
- **ពេលវេលាកំណត់**៖ ហ្គេមបញ្ចប់បន្ទាប់ពីរយៈពេល កំណត់ឬរាប់ថយដល់សូន្យ
**មុខងារចាប់ផ្ដើមឡើងវិញ**៖
- **សម្អាតស្ថានភាពហ្គេម**៖ លុបវត្ថុហ្គេមមុនទាំងអស់ និងកំណត់តម្លៃអថេរ
- **ចាប់ផ្ដើមឡើងវិញប្រព័ន្ធ**៖ ចាប់ផ្ដើមឡើងវិញជាមួយស្ថិតិសម្រាប់អ្នកលេង សត្រូវ និងបេសកកម្មថ្មី
- **គ្រប់គ្រងងាយស្រួលសម្រាប់អ្នកប្រើ**៖ ផ្តល់ជូននូវសេចក្ដីណែនាំច្បាស់លាស់សម្រាប់ចាប់ផ្ដើមឡើងវិញហ្គេម
**មតិប្រតិកម្មពីអ្នកលេង**៖
- **សារ​ជ័យ​ជំនះ**៖ អបអរសាទរជោគជ័យអ្នកលេងដោយមតិយោបល់វិជ្ជមាន
- **សារ​បរាជ័យ**៖ ផ្តល់សារចំរូងចំរាសដែលបង្កើនការចាប់ផ្តើមឡើងវិញ
- **សង្ខេបជំហាន**៖ បង្ហាញពិន្ទុ បរិមាណជីវិត ឬស្ថានភាពបេសកកម្មបច្ចុប្បន្ន
### គំនិតហ្គេម និងការបង្កើតចិត្ត​ប្រហែល
ជ្រើសរើសពីគំនិតហ្គេមទាំងនេះ ឬបង្កើតមួយជាផ្ទាល់៖
#### ១. ហ្គេមការផ្សងព្រេងតាមកុងសូល
បង្កើតហ្គេមការផ្សងព្រេងផ្អែកលើអត្ថបទជាមួយប្រព័ន្ធប្រយុទ្ធ៖
```
Hero> Strikes with broadsword - orc takes 3p damage
Orc> Hits with club - hero takes 2p damage
Hero> Kicks - orc takes 1p damage
Game> Orc is defeated - Hero collects 2 coins
Game> ****No more monsters, you have conquered the evil fortress****
```
**លក្ខណៈសំខាន់ដែលត្រូវអនុវត្ត**៖
- **ប្រយុទ្ធតាមលំដាប់ជុំ** ជាមួយជម្រើសប្រយុទ្ធប្លែកៗ
- **ចំនួនសុខភាព** សម្រាប់អ្នកលេង និងសត្រូវ
- **ប្រព័ន្ធស្តុកទំនិញ** សម្រាប់ប្រមូលកាក់ ឬធាតុ
- **ប្រភេទសត្រូវច្រើន** មានកម្រិតគ្រប់គ្រាន់និងលំបាកខុសគ្នា
- **លក្ខណៈជ័យជំនះ** ពេលសម្លាប់សត្រូវទាំងអស់បានជោគជ័យ
#### ២. ហ្គេមប្រមូល
- **គោលបំណង**៖ ប្រមូលធាតុជាក់លាក់ ខណៈជៀសវាងឧបសគ្គ
- **លក្ខខ័ណ្ឌបញ្ចប់**៖ ឈានដល់ចំនួនប្រមូលឬបាត់បង់ជីវិតទាំងអស់
- **ការរីកចម្រើន**៖ ធាតុពិបាកទទួលបានបន្ថែមឡើងទៅពេលហ្គេមដំណើរការ
#### ៣. ហ្គេមផាស់ខ្សែ
- **គោលបំណង**៖ ដោះស្រាយបញ្ហាពិបាកកាន់តែលំបាក
- **លក្ខខ័ណ្ឌបញ្ចប់**៖ បញ្ចប់លំដាប់ទាំងអស់ឬឆ្ងាយច្បាស់ពីចលនាឬពេលវេលា
- **ចាប់ផ្ដើមឡើងវិញ**៖ កំណត់ឡើងវិញទៅលំដាប់ទីមួយជាមួយការសម្អាតជំហាន
#### ៤. ហ្គេមការពារ
- **គោលបំណង**៖ ការពារយកមូលដ្ឋានពីរលំនាំសត្រូវ
- **លក្ខខ័ណ្ឌបញ្ចប់**៖ រស់រានមានជីវិតនៅរលំនាំទាំងអស់ (ជ័យជំនះ) ឬមូលដ្ឋានបំផ្លាញ (បរាជ័យ)
- **ការរីកចម្រើន**៖ រលំនាំសត្រូវមានកម្រិតលំបាក និងចំនួនកើនឡើង
## មគ្គុទេសក៍អនុវត្តន៍
### ការចាប់ផ្ដើម
1. **គ្រោងការរចនាហ្គេម**៖
- គំនូរស្ទាត់ចុះនូវរងចង្វាក់លំហាត់ហ្គេមមូលដ្ឋាន
- កំណត់លក្ខខ័ណ្ឌបញ្ចប់ឲ្យច្បាស់
- បញ្ជាក់ទិន្នន័យដែលត្រូវបំលែងនៅពេលចាប់ផ្ដើមឡើងវិញ
2. **រៀបចំរចនាសម្ព័ន្ធគម្រោង**៖
```
my-game/
├── index.html
├── style.css
├── game.js
└── README.md
```
3. **បង្កើតរងចង្វាក់ហ្គេមមូលដ្ឋាន**៖
- កំណត់ស្ថានភាពហ្គេម
- គ្រប់គ្រងការបញ្ចូលពីអ្នកប្រើ
- បច្ចុប្បន្នភាពលូហ្គិចហ្គេម
- ពិនិត្យលក្ខខ័ណ្ឌបញ្ចប់
- បង្ហាញស្ថានភាពបច្ចុប្បន្ន
### តម្រូវការបច្ចេកទេស
**ប្រើ JavaScript ទាន់សម័យ**៖
- ប្រើ `const` និង `let` សម្រាប់ការប្រកាសអថេរ
- ប្រើ arrow functions ដែលសមរម្យ
- អនុវត្តលក្ខណៈ ES6+ ដូចជារបៀបសរសេរសរសេរពាក្យប្លង់ និងផ្ទុកអថេរ
**ស្ថាបត្យកម្មបើកបរ​ដោយព្រឹត្តិការណ៍**៖
- បង្កើតអ្នកដំណើរការព្រឹត្តិការណ៍សម្រាប់អន្តរកម្មអ្នកប្រើ
- អនុវត្តការផ្លាស់ប្តូរស្ថានភាពហ្គេមតាមព្រឹត្តិការណ៍
- ប្រើនរណាម្នាក់ស្តាប់ព្រឹត្តិការណ៍សម្រាប់មុខងារចាប់ផ្ដើមឡើងវិញ
**អនុវត្តទំនៀមទំលាប់កូដស្អាត**៖
- សរសេរតែម្ដងងាយយល់មុខងារ
- ប្រើឈ្មោះអថេរនិងមុខងារដែលពិពណ៌នាបានច្បាស់
- រួមបញ្ចូលមតិយោបល់ពន្យល់លទ្ធផលនិងច្បាប់ហ្គេម
- រៀបចំកូដជាផ្នែកមានរបៀប
## តម្រូវការដាក់ស្នើ
### ឯកសារដឹកនាំ
1. **ឯកសារហ្គេមពេញលេញ**៖ នេះរួមមានឯកសារ HTML, CSS និង JavaScript ទាំងអស់ដែលចាំបាច់ដើម្បីដំណើរការហ្គេម
2. **README.md**៖ ឯកសារពិពណ៌នាអំពី៖
- របៀបលេងហ្គេម
- លក្ខណៈបញ្ចប់ដែលបានអនុវត្ត
- សេចក្ដីណែនាំសម្រាប់ចាប់ផ្ដើមឡើងវិញ
- មុខងារពិសេស ឬមេកានិចបន្ថែម
3. **មតិពន្យល់កូដ**៖ ពន្យល់ច្បាស់លាស់អំពីលូហ្គិច និងalgorithm ក្នុងហ្គេមរបស់អ្នក
### បញ្ជីពិនិត្យសម្រាប់សាកល្បង
មុនដាក់ទៅ សូមធានា​ឲ្យហ្គេមរបស់អ្នក៖
- [ ] **ដំណើរការជោគជ័យដោយគ្មានកំហុស** នៅក្នុងកុងសូលកម្មវិធី
- [ ] **អនុវត្តលក្ខខ័ណ្ឌបញ្ចប់ច្រើនប្រភេទ** ដូចបានបញ្ជាក់
- [ ] **ចាប់ផ្ដើមឡើងវិញបានឡើងវិញ** ជាមួយស្ថានភាពស្អាត
- [ ] **ផ្តល់មតិច្បាស់លាស់** ទៅអ្នកលេងអំពីស្ថានភាពហ្គេម
- [ ] **ប្រើ JavaScript ទាន់សម័យ** និងការអនុវត្តល្អបំផុត
- [ ] **មានឯកសារពេញលេញ** ក្នុង README.md
## វិធីវាយតម្លៃ
| ការវាយតម្លៃ | ល្អឥតខ្ចោះ (4) | អាចទទួលយកបាន (3) | កំពុងអភិវឌ្ឍ (2) | ចាប់ផ្ដើម (1) |
|--------------|------------------|----------------------|-------------------|---------------|
| **មុខងារហ្គេម** | ហ្គេមពេញលេញមានលក្ខខណ្ឌបញ្ចប់ច្រើន ចាប់ផ្ដើមឡើងវិញរលូន និងបទពិសោធន៍លេងល្អ | ហ្គេមពេញលេញ មានលក្ខខណ្ឌបញ្ចប់មូលដ្ឋាននិងមុខងារចាប់ផ្ដើមឡើងវិញប្រើបាន | ហ្គេមមួយផ្នែក អនុវត្តលក្ខខណ្ឌបញ្ចប់ខ្លះៗ ចាប់ផ្ដើមឡើងវិញមានបញ្ហាខ្នាតតូច | ហ្គេមមិនពេញលេញមុខងារកំណត់ និងមានកំហុសធំ |
| **គុណភាពកូដ** | កូដស្អាត រៀបចំបានល្អ ប្រើ JavaScript ថ្មីៗ មានមតិយោបល់ពេញលេញ និងរចនាសម្ព័ន្ធល្អ | កូដរៀបចំបានល្អ ប្រើសំណុំរូបមន្តថ្មីៗ មតិត្រឹមត្រូវ និងរចនាសម្ព័ន្ធច្បាស់លាស់ | រៀបចំកូដមូលដ្ឋាន ប្រើរូបមន្តបច្ចុប្បន្នខ្លះៗ មតិតិច | រៀបចំកូដមិនបានល្អ សរសេរចាស់ មិនគ្រប់គ្រាន់មតិ និងរចនាសម្ព័ន្ធខ្សោយ |
| **បទពិសោធន៍អ្នកប្រើ** | លំហាត់លេងយ៉ាងស្រួល នឹងមានគោលការណ៍ច្បាស់ លទ្ធផលល្អ និងបញ្ចប់/ចាប់ផ្ដើមឡើងវិញទាក់ទាញ | លំហាត់លេងល្អ មានគោលការណ៍ និងមតិយោបល់គ្រប់គ្រាន់ ចាប់ផ្ដើមឡើងវិញប្រើបាន | លំហាត់លេងមូលដ្ឋាន មានគោលការណ៍តិច និងមតិយោបល់កំណត់ | លំហាត់លេងគ្រាន់តែច្របូកច្របល់ គ្មានគោលការណ៍ និងមតិអ្នកប្រើមិនល្អ |
| **ការអនុវត្តបច្ចេកទេស** | បង្ហាញជំនាញខ្ពស់ក្នុងការអភិវឌ្ឍហ្គេម ការគ្រប់គ្រងព្រឹត្តិការណ៍ និងស្ថានភាព | បង្ហាញការយល់ដឹងល្អ ក្នុងមូលដ្ឋានហ្គេម និងការអនុវត្តល្អ | យល់ដឹងមូលដ្ឋាន និងអនុវត្តបានត្រឹមត្រូវ | យល់ដឹងកំណត់ និងអនុវត្តខ្សោយ |
| **ឯកសារ** | README ពេញលេញ ជាមួយការណែនាំច្បាស់ កូដពន្យល់ល្អ និងបញ្ជាក់ការសាកល្បង | ឯកសារល្អ មានការណែនាំ និងពន្យល់គ្រប់គ្រាន់ | ឯកសារមូលដ្ឋាន មានការណែនាំតិច | ឯកសារខ្វះ ឬមិនមាន |
### កម្រិតពិន្ទុវាយតម្លៃ
- **ល្អឥតខ្ចោះ (16-20 ពិន្ទុ)**៖ លើសកំណត់ជាមួយលក្ខណៈច្នៃប្រឌិត និងការអនុវត្តល្អ
- **អាចទទួលយកបាន (12-15 ពិន្ទុ)**៖ ตรงตามทุกតម្រូវការជាមួយការអនុវត្តរឹងមាំ
- **កំពុងអភិវឌ្ឍ (8-11 ពិន្ទុ)**៖érielตรงភាពត្រូវបានដល់ភាគច្រើន បញ្ហាតិចតួច
- **ចាប់ផ្ដើម (4-7 ពិន្ទុ)**៖ ตรงความត្រូវการខ្លះ ប៉ុន្តែតំរូវការនៅឆ្ងាយទៅ
## ឧបករណ៍រៀន​បន្ថែម
- [MDN គណបក្សអភិវឌ្ឍហ្គេម](https://developer.mozilla.org/en-US/docs/Games)
- [មេរៀនអភិវឌ្ឍហ្គេម JavaScript](https://developer.mozilla.org/en-US/docs/Games/Tutorials)
- [ឯកសារ API ក្រឡាចត្រង្គ](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API)
- [គោលការណ៍រចនាហ្គេម](https://www.gamasutra.com/blogs/)
> 💡 **របៀបពិសេស**៖ ចាប់ផ្ដើមដោយសាមញ្ញ ហើយបន្ថែមលក្ខណៈដោយជំហាន។ ហ្គេមសាមញ្ញដែលបានផ្ដល់ប្រសិទ្ធភាពល្អលើសហ្គេមស្មុគស្មាញដែលមានខុសត្រូវ!
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**ការបដិសេធ**៖
ឯកសារនេះបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះយើងខិតខំនឹងភាពត្រឹមត្រូវ ក៏សូមដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិកម្មអាចមានការខុសឆ្គង ឬភាពមិនត្រឹមត្រូវខ្លះ។ ឯកសារដើមនៅក្នុងភាសាដើមគួរត្រូវបានគេចាត់ទុកជាដើមទិន្នន័យដែលមានសុពលភាព។ សម្រាប់ព័ត៌មានសំខាន់ៗ អ្នកគួរជ្រើសរើសការបកប្រែដោយមនុស្សជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំនិងការបកប្រែខុសដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។
<!-- CO-OP TRANSLATOR DISCLAIMER END -->