Γράψε έναν προσομοιωτή ρομπότ.
Οι εγκαταστάσεις δοκιμών ενός εργοστασίου ρομπότ χρειάζονται ένα πρόγραμμα για να επαληθεύουν τις κινήσεις των ρομπότ.
Τα ρομπότ έχουν τρεις δυνατές κινήσεις:
Τα ρομπότ τοποθετούνται σε ένα υποθετικό άπειρο πλέγμα, κοιτώντας προς μια συγκεκριμένη κατεύθυνση (βόρεια, ανατολικά, νότια ή δυτικά) και βρίσκονται σε ένα σύνολο συντεταγμένων {x,y}, π.χ. {3,8}, με τις συντεταγμένες να αυξάνονται προς τα βόρεια και τα ανατολικά.
Στη συνέχεια το ρομπότ λαμβάνει έναν αριθμό εντολών, και τότε οι εγκαταστάσεις δοκιμών επαληθεύουν τη νέα θέση του ρομπότ και προς τα πού δείχνει.
Σε αυτή την άσκηση, μπορεί να παρατήρησες ότι το stub ορίζει getters, όπως getX(), αλλά τα tests έχουν πρόσβαση στην τιμή απευθείας ως .x. Αυτό οφείλεται στο πώς η Groovy ορίζει τις ιδιότητες. Ας το αναλύσουμε:
Βασικά σημεία για τις ιδιότητες της Groovy:
final).Σε αυτή την άσκηση, έχουμε καθορίσει μόνο τους απαιτούμενους getters (και επομένως τις ιδιότητες όπως παραπάνω) για να επιβάλουμε τη σωστή υλοποίηση. Μπορείς να αποφασίσεις ελεύθερα ποια πεδία (και οι τύποι τους) είναι τα πιο κατάλληλα για τη λύση σου.
Αν θέλεις να εξερευνήσεις περαιτέρω το θέμα των πεδίων και των ιδιοτήτων, ανατρέξε στο Κεφάλαιο 3.3. Πεδία και Ιδιότητες στην τεκμηρίωση της Groovy.
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Groovy με 66 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.