Εργάζεσαι σε μια εταιρεία που φτιάχνει ένα διαδικτυακό παιχνίδι για πολλούς παίκτες, το Lexiconia.
Για να παίξεις το παιχνίδι, κάθε παίκτης παίρνει 13 γράμματα, τα οποία πρέπει να αναδιατάξει για να σχηματίσει λέξεις. Διαφορετικά γράμματα έχουν διαφορετική αξία πόντων, αφού με μερικά γράμματα είναι πιο εύκολο να σχηματίσεις λέξεις απ' ό,τι με άλλα.
Το παιχνίδι κυκλοφόρησε αρχικά στα αγγλικά, αλλά είναι πολύ δημοφιλές, και τώρα η εταιρεία θέλει να επεκταθεί και σε άλλες γλώσσες.
Διαφορετικές γλώσσες χρειάζεται να υποστηρίζουν διαφορετικές τιμές πόντων για τα γράμματα. Οι τιμές πόντων καθορίζονται από το πόσο συχνά χρησιμοποιούνται τα γράμματα σε σχέση με τα άλλα γράμματα αυτής της γλώσσας.
Για παράδειγμα, το γράμμα 'C' είναι αρκετά συνηθισμένο στα αγγλικά, και αξίζει μόνο 3 πόντους. Στα νορβηγικά όμως είναι ένα πολύ σπάνιο γράμμα, και αξίζει 10 πόντους.
Για να είναι πιο εύκολη η προσθήκη νέων γλώσσων, η ομάδα σου πρέπει να αλλάξει τον τρόπο με τον οποίο αποθηκεύονται στο παιχνίδι τα γράμματα και οι τιμές τους.
Η αποστολή σου είναι να αλλάξεις τη μορφή δεδομένων των γραμμάτων και των βαθμών τους στο παιχνίδι.
Προς το παρόν, τα γράμματα είναι αποθηκευμένα σε ομάδες με βάση τη βαθμολογία τους, σε αντιστοίχιση ένα-προς-πολλά.
Αυτό πρέπει να αλλάξει ώστε να αποθηκεύεται κάθε μεμονωμένο γράμμα με τη βαθμολογία του σε αντιστοίχιση ένα-προς-ένα.
Ως μέρος αυτής της αλλαγής, η ομάδα αποφάσισε επίσης να αλλάξει τα γράμματα σε πεζά αντί για κεφαλαία.
Αν θέλεις να δεις πώς ήταν δομημένα προηγουμένως τα δεδομένα και πώς πρέπει να αλλάξουν, ρίξε μια ματιά στα παραδείγματα στη σουίτα δοκιμών.
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Roc με 120 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.