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/1-introduction/assignment.md

93 lines
11 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# បង្កើតហ្គេមមួយ៖ អនុវត្តគំរូរចនាសម្ព័ន្ធ
## សេចក្តីផ្តើម ឧទាហរណ៍
យកចំណេះដឹងថ្មីរបស់អ្នកអំពីគំរូរចនាសម្ព័ន្ធមកប្រើប្រាស់ដោយបង្កើតគំរូហ្គេមសាមញ្ញមួយ! ការងារនេះនឹងជួយអ្នកហ្វឹកហាត់ទាំងគំរូស្ថាបត្យកម្ម (អាជីពរកស៊ីឬសមាសធាតុ) និងប្រព័ន្ធផ្សព្វផ្សាយ/pubsub ដែលអ្នកបានរៀនក្នុងវគ្គសិក្សា។
## សេចក្តីណែនាំ
បង្កើតតំណាងហ្គេមសាមញ្ញមួយដែលបង្ហាញពីគំរូរចនាសម្ព័ន្ធពីវគ្គនេះ។ ហ្គេមរបស់អ្នកគួរតែអាចដំណើរការ យ៉ាងไรก็ตาม មិនចាំបាច់ខ្លាំងនូវក្រាហ្វិកស្មុគស្មាញទេ — សំខាន់គឺផ្តោតលើស្ថាបត្យកម្មជាគ្រឹះ និងគំរូខ្ទង់ផ្សព្វផ្សាយ។
### តម្រូវការ
**ជ្រើសរើសគំរូស្ថាបត្យកម្មរបស់អ្នក៖**
- **ជម្រើស ក**៖ ប្រើការទាញទារកនៅលើថ្នាក់ (ឧ. `GameObject``Movable``Hero`)
- **ជម្រើស ខ**៖ ប្រើសមាសធាតុ (ឧ. វិធីសាស្រ្តរោងចក្រជាមួយឥរិយាបថចម្រុះ)
**អនុវត្តការទំនាក់ទំនង៖**
- **រួមបញ្ចូល** ថ្នាក់ `EventEmitter` សម្រាប់សារផ្សព្វផ្សាយ/pubsub
- **រៀបចំ** ប្រភេទសារចំនួនយ៉ាងហោចណាស់ 2-3 (ឧ. `PLAYER_MOVE`, `ENEMY_SPAWN`, `SCORE_UPDATE`)
- **ភ្ជាប់** ការបញ្ចូលអ្នកប្រើ (ក្តារចុច/មណ្ឌលសុីម៉ៅ) ទៅកាន់ព្រឹត្តិការណ៍ហ្គេមតាមរយៈប្រព័ន្ធព្រឹត្តិការណ៍
**ធាតុហ្គេមដែលត្រូវរួមបញ្ចូល៖**
- តួអង្គមួយយ៉ាងហោចណាស់ដែលគ្រប់គ្រងដោយអ្នកលេង
- វត្ថុហ្គេមមួយផ្សេងទៀត (សត្រូវ, វត្ថុប្រមូលបាន, ឬធាតុបរិស្ថាន)
- ការប៉ះទង្គិចមូលដ្ឋានរវាងវត្ថុ (ប៉ះទង្គិច ប្រមូល ឬទំនាក់ទំនង)
### គំនិតហ្គេមសម្រាប់ពិចារណា
**ហ្គេមសាមញ្ញដែលអាចជ្រើសរើស៖**
- **ហ្គេមព្រួញ** ខ្សែមាត់ប្រតិបត្តិទៅផ្នែកមុខ, អាហារបង្ហាញបៃតងពីចម្ងាយ
- **ការប្រែប្រួល Pong** ខ្សែប៊ិចឆ្លើយតបនឹងការបញ្ចូល, បាល់ត្រៀមកែតម្រូវលើជញ្ជាំង
- **ហ្គេមប្រមូល** អ្នកលេងផ្លាស់ទីប្រមូលវត្ថុខណៈរត់គេចខ្លួនពីឧបសគ្គ
- **មូលដ្ឋានការពារកាណូត** ប្រដាប់បាញ់កាំភ្លើងចាប់ផ្តើមប្រយុទ្ធប្រឆាំងសត្រូវចល័ត
### แนวทางរចនាសម្ព័ន្ធកូដ
```javascript
// រចនាសម្ព័ន្ធចាប់ផ្តើមគំរូ
const Messages = {
// កំណត់សារប្រកួតរបស់អ្នកនៅទីនេះ
};
class EventEmitter {
// ការអនុវត្តប្រព័ន្ធព្រឹត្តិការណ៍របស់អ្នក
}
// ជ្រើសរើសរបៀបផ្អែកលើថ្នាក់ ឬ វិធីសាស្ត្រចងក្រង
// ឧទាហរណ៍ផ្អែកលើថ្នាក់៖
class GameObject { /* base properties */ }
class Player extends GameObject { /* player-specific behavior */ }
// ឬ ឧទាហរណ៍ចងក្រង៖
const gameObject = { /* base properties */ };
const movable = { /* movement behavior */ };
function createPlayer() { /* combine behaviors */ }
```
### ការពិនិត្យការអនុវត្តរបស់អ្នក
**ផ្ទៀងផ្ទាត់កូដរបស់អ្នកដោយ៖**
- **សាកល្បង** ថាវត្ថុរបស់អ្នកចល័តឬផ្លាស់ប្តូរប្រែប្រួលនៅពេលព្រឹត្តិការណ៍បញ្ចេញ
- **បញ្ជាក់** ថាវត្ថុជាច្រើនអាចឆ្លើយតបទៅព្រឹត្តិការណ៍ដូចគ្នា
- **ពិនិត្យ** ថាអ្នកអាចបន្ថែមឥរិយាបថថ្មីដោយមិនកែប្រែកូដដែលមានរួច
- **ធានា** ការបញ្ចូលក្តារចុច/មណ្ឌលសុីម៉ៅបញ្ចេញព្រឹត្តិការណ៍ហ្គេមបានត្រឹមត្រូវ
## លក្ខណៈសំខាន់សម្រាប់ដាក់ស្នើ
**ការដាក់ស្នើរបស់អ្នកគួរតែរួមបញ្ចូល៖**
1. **ឯកសារ JavaScript** ដែលមានការអនុវត្តហ្គេមរបស់អ្នក
2. **ឯកសារ HTML** សម្រាប់បើក និងសាកល្បងហ្គេម (អាចមានភាពសាមញ្ញ)
3. **មតិយោបល់** ដែលពន្យល់ពីគំរូដែលអ្នកបានជ្រើសរើស និងហេតុផល
4. **ឯកសារផ្ដល់ព័ត៌មានខ្លី** អំពីប្រភេទសារនានា និងមុខងាររបស់ពួកវា
## វេចខ្លាច
| លក្ខខណ្ឌ | ល្អបំផុត (3 ពិន្ទុ) | សមរម្យ (2 ពិន្ទុ) | ត្រូវការកែលម្អ (1 ពិន្ទុ) |
|----------|---------------------|---------------------|-----------------------------|
| **គំរូស្ថាបត្យកម្ម** | អនុវត្តត្រឹមត្រូវនៅក្នុងអាជីពរកស៊ី ឬសមាសធាតុជាមួយលំដាប់ថ្នាក់/វត្ថុច្បាស់លាស់ | ប្រើគំរូបាន ប៉ុន្តែមានបញ្ហាពិបាកខ្លះៗ ឬមិនស៊ាំល្អ | ព្យាយាមប្រើគំរូ តែការអនុវត្តមានបញ្ហាសំខាន់ៗ |
| **ប្រព័ន្ធ Pub/Sub** | EventEmitter ដំណើរការបានត្រឹមត្រូវជាមួយប្រភេទសារជាច្រើន និងដំណើរការព្រឹត្តិការណ៍ត្រឹមត្រូវ | ប្រព័ន្ធ pub/sub មូលដ្ឋានដំណើរការបានមានការគ្រប់គ្រងព្រឹត្តិការណ៍ខ្លះៗ | ប្រព័ន្ធព្រឹត្តិការណ៍មាន ប៉ុន្តែមិនដំណើរការបានយកចិត្តទុកដាក់ទេ |
| **មុខងារហ្គេម** | មានធាតុអន្តរកម្មបីឬច្រើនជាង ប្រាស្រ័យទាក់ទងតាមព្រឹត្តិការណ៍ | មានធាតុអន្តរកម្មពីរជាមួយការប្រាស្រ័យទាក់ទងព្រឹត្តិការណ៍មូលដ្ឋាន | មានធាតុមួយឆ្លើយតបនឹងព្រឹត្តិការណ៍ ឬមានអន្តរកម្មមូលដ្ឋាន |
| **គុណភាពកូដ** | កូដស្អាត មានមតិយោបល់ល្អ និងមានរៀបចំត្រឹមត្រូវជាមួយ JavaScript ពេលបច្ចុប្បន្ន | កូដរៀបចំបានល្អជាទូទៅ មានមតិយោបល់គ្រប់គ្រាន់ | កូដដំណើរការ បាន ប៉ុន្តែខ្វះរចនាសម្ព័ន្ធឬមតិយោបល់ច្បាស់លាស់ |
**ពិន្ទុបន្ថែម៖**
- **ប្រព័ន្ធហ្គេមច្នៃប្រឌិត** ដែលបង្ហាញកម្រិតប្រើប្រាស់គំរូអស្ចារ្យ
- **វិធីបញ្ចូលច្រើន** (ទាំងក្តារចុច និងមណ្ឌលសុីម៉ៅ)
- **ស្ថាបត្យកម្មអាចពង្រីកបាន** ដែលងាយស្រួលបន្ថែមមុខងារថ្មីៗ
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**ការបដិសេធ**៖
ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខំប្រឹងប្រែងសម្រាប់ភាពត្រឹមត្រូវ សូមដឹងថាការបកប្រែដោយអូតូម៉ាទិកអាចមានកំហុស ឬការខកខានបាន។ ឯកសារដើមដោយភាសាម្ដុំណឹងគួរត្រូវបានគិតថាជាដើមពិតប្រាកដ។ សម្រាប់ព័ត៌មានសំខាន់ៗ គឺមានការផ្ដល់អនុសាសន៍ឲ្យប្រើការបកប្រែដោយមនុស្សវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុស ដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។
<!-- CO-OP TRANSLATOR DISCLAIMER END -->