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/el/6-space-game/1-introduction/assignment.md

9.1 KiB

Δημιουργία Παιχνιδιού: Εφαρμογή Σχεδιαστικών Προτύπων

Επισκόπηση Εργασίας

Εφαρμόστε τις νέες σας γνώσεις για τα σχεδιαστικά πρότυπα δημιουργώντας ένα απλό πρωτότυπο παιχνιδιού! Αυτή η εργασία θα σας βοηθήσει να εξασκηθείτε τόσο σε αρχιτεκτονικά πρότυπα (κληρονομικότητα ή σύνθεση) όσο και στο σύστημα επικοινωνίας pub/sub που μάθατε στο μάθημα.

Οδηγίες

Δημιουργήστε μια απλή αναπαράσταση παιχνιδιού που να δείχνει τα σχεδιαστικά πρότυπα από αυτό το μάθημα. Το παιχνίδι σας πρέπει να είναι λειτουργικό, αλλά δεν χρειάζεται να έχει περίπλοκα γραφικά \u2013 επικεντρωθείτε στην υποκείμενη αρχιτεκτονική και τα πρότυπα επικοινωνίας.

Απαιτήσεις

Επιλέξτε το Αρχιτεκτονικό σας Πρότυπο:

  • Επιλογή Α: Χρησιμοποιήστε κληρονομικότητα βάσει κλάσεων (όπως το παράδειγμα GameObjectMovableHero)
  • Επιλογή Β: Χρησιμοποιήστε σύνθεση (όπως η προσέγγιση με εργοστασιακή συνάρτηση και μικτές συμπεριφορές)

Υλοποιήστε Επικοινωνία:

  • Περιλάβετε μια κλάση EventEmitter για μηνύματα pub/sub
  • Ρυθμίστε τουλάχιστον 2-3 διαφορετικούς τύπους μηνυμάτων (όπως PLAYER_MOVE, ENEMY_SPAWN, SCORE_UPDATE)
  • Συνδέστε την είσοδο χρήστη (πληκτρολόγιο/ποντίκι) με τα γεγονότα του παιχνιδιού μέσω του συστήματος γεγονότων

Στοιχεία Παιχνιδιού που Πρέπει να Περιλαμβάνονται:

  • Τουλάχιστον ένας χαρακτήρας που ελέγχεται από τον παίκτη
  • Τουλάχιστον ένα άλλο αντικείμενο παιχνιδιού (εχθρός, συλλεκτικό αντικείμενο ή στοιχείο περιβάλλοντος)
  • Βασική αλληλεπίδραση μεταξύ αντικειμένων (σύγκρουση, συλλογή ή επικοινωνία)

Προτεινόμενες Ιδέες Παιχνιδιού

Απλά Παιχνίδια για Εξέταση:

  • Παιχνίδι Φιδιού \u2013 Τα τμήματα του φιδιού ακολουθούν το κεφάλι, η τροφή εμφανίζεται τυχαία
  • Παραλλαγή Pong \u2013 Η ρακέτα ανταποκρίνεται στην είσοδο, η μπάλα αναπηδά στους τοίχους
  • Παιχνίδι Συλλογής \u2013 Ο παίκτης κινείται συλλέγοντας αντικείμενα ενώ αποφεύγει εμπόδια
  • Βασικά Tower Defense \u2013 Οι πύργοι εντοπίζουν και πυροβολούν κινούμενους εχθρούς

Κατευθυντήριες Γραμμές Δομής Κώδικα

// Example starting structure
const Messages = {
  // Define your game messages here
};

class EventEmitter {
  // Your event system implementation
}

// Choose either class-based OR composition approach
// Class-based example:
class GameObject { /* base properties */ }
class Player extends GameObject { /* player-specific behavior */ }

// OR Composition example:
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. Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.