Απλοποιημένη εκδοχή του παιχνιδιού Scrabble στα Ελληνικά, υλοποιημένη σε αντικειμενοστρεφή Python. Το παιχνίδι παίζεται σε character mode (γραμμή εντολών) ανάμεσα σε έναν παίκτη-άνθρωπο και τον υπολογιστή.
Εργασία για το μάθημα «Θεωρίες Μάθησης & Εκπαιδευτικό Λογισμικό 2026», Τμήμα Πληροφορικής, ΑΠΘ.
- Αντικειμενοστρεφής σχεδίαση με 5 κλάσεις (Game, SakClass, Player, Human, Computer) + Mediator
- Κληρονομικότητα & Πολυμορφισμός: Οι Human/Computer κληρονομούν από την Player και επεκτείνουν τη μέθοδο
play() - Πρότυπο Mediator για τον συντονισμό της επικοινωνίας μεταξύ των κλάσεων
- Επίσημη κατανομή γραμμάτων ελληνικού Scrabble (102 πλακίδια)
- 3 επίπεδα δυσκολίας για τον υπολογιστή: MIN, MAX, SMART
- O(1) αναζήτηση λέξεων με χρήση
setαντί για list - Ανεξάρτητο από εξωτερικές βιβλιοθήκες (μόνο standard library:
random,itertools,os)
.
├── classes.py # Όλες οι κλάσεις του παιχνιδιού + documentation()
├── main.py # Κύριο πρόγραμμα με μενού επιλογών
├── greek7.txt # Λεξικό ελληνικών λέξεων (δεν περιλαμβάνεται)
└── README.md # Αυτό το αρχείο
⚠️ Τοgreek7.txtδεν περιλαμβάνεται στο repository (είναι υλικό μαθήματος). Θα πρέπει να το αποκτήσεις από τη σελίδα του μαθήματος και να το τοποθετήσεις στον ίδιο φάκελο.
- Python 3.7 ή νεότερη
- Το αρχείο
greek7.txtστον ίδιο φάκελο
python main.pyΣτο μενού που εμφανίζεται:
- 1: Σκορ — Ιστορικό προηγούμενων παρτίδων
- 2: Ρυθμίσεις — Επιλογή δυσκολίας υπολογιστή & ονόματος παίκτη
- 3: Παιχνίδι — Έναρξη νέας παρτίδας
- q: Έξοδος
- Κάθε παίκτης ξεκινά με 7 τυχαία γράμματα
- Στη σειρά του, ο παίκτης σχηματίζει μια έγκυρη ελληνική λέξη από τα γράμματά του
- Παίρνει πόντους ίσους με το άθροισμα της αξίας των γραμμάτων της λέξης
- Στη συνέχεια συμπληρώνει ξανά τα γράμματά του ώστε να έχει 7
- Ο παίκτης μπορεί να πατήσει:
PήΠ— αλλαγή όλων των γραμμάτων (χάνει τη σειρά του)Q— παραίτηση από το παιχνίδι
- Το παιχνίδι τελειώνει όταν αδειάσει το σακουλάκι ή κάποιος παραιτηθεί
| Πόντοι | Γράμματα |
|---|---|
| 1 | Α (×12), Ο (×9), Ε (×8), Ι (×8), Τ (×8), Η (×7), Σ (×7), Ν (×6) |
| 2 | Ρ (×5), Κ (×4), Π (×4), Υ (×4) |
| 3 | Λ (×3), Μ (×3), Ω (×3) |
| 4 | Γ (×2), Δ (×2) |
| 8 | Β, Φ, Χ |
| 10 | Ζ, Θ, Ξ, Ψ |
Σύνολο πλακιδίων: 102
Ο παίκτης-υπολογιστής υποστηρίζει 3 επίπεδα δυσκολίας:
- MIN — Παίζει την πρώτη αποδεκτή λέξη ξεκινώντας από μεταθέσεις 2 γραμμάτων (εύκολο)
- MAX — Παίζει την πρώτη αποδεκτή λέξη με τα περισσότερα γράμματα (μέτριο)
- SMART — Εξαντλεί όλες τις μεταθέσεις 2..7 και επιλέγει τη λέξη με τους περισσότερους πόντους (δύσκολο)
Οι μεταθέσεις υπολογίζονται με itertools.permutations().
┌──────────┐
│ Player │ (βασική κλάση)
└────┬─────┘
│
┌─────────┴─────────┐
▼ ▼
┌───────┐ ┌──────────┐
│ Human │ │ Computer │
└───────┘ └──────────┘
│ │
└────┐ ┌────┘
▼ ▼
┌──────────────┐
│ Mediator │ ← Πρότυπο σχεδίασης
└──────┬───────┘
│
┌─────────┴─────────┐
▼ ▼
┌──────────┐ ┌──────┐
│ SakClass │ │ Game │
└──────────┘ └──────┘
***** SCRABBLE *****
--------------------
1: Σκορ
2: Ρυθμίσεις
3: Παιχνίδι
q: Έξοδος
--------------------
Επιλογή: 3
============================================================
ΞΕΚΙΝΑ ΤΟ ΠΑΙΧΝΙΔΙ!
============================================================
************************************************************
*** Παίκτης: Stavros *** Σκορ: 0
>>> Γράμματα: ['Α', 'Υ', 'Τ', 'Η', 'Ν', 'Ψ', 'Ρ']
ΛΕΞΗ: ΑΥΤΗ
Πόντοι Λέξης: 5
*** Παίκτης: Stavros *** Σκορ: 5
>>> Γράμματα: ['Ν', 'Ψ', 'Ρ', 'Β', 'Μ', 'Η', 'Ι']
Το project αυτό δημιουργήθηκε ως ακαδημαϊκή εργασία. Είναι ελεύθερο για εκπαιδευτική χρήση και αναφορά.
Εργασία στο πλαίσιο του μαθήματος «Θεωρίες Μάθησης & Εκπαιδευτικό Λογισμικό», Τμήμα Πληροφορικής Α.Π.Θ., 2026.