Διαδρομές
/
Erlang
Erlang
/
Ασκήσεις
/
Προσομοιωτής ρομπότ
Προσομοιωτής ρομπότ

Προσομοιωτής ρομπότ

Μέτριο

Οδηγίες

Γράψε έναν προσομοιωτή ρομπότ.

Οι εγκαταστάσεις δοκιμών ενός εργοστασίου ρομπότ χρειάζονται ένα πρόγραμμα για να επαληθεύουν τις κινήσεις των ρομπότ.

Τα ρομπότ έχουν τρεις δυνατές κινήσεις:

  • στρίψε δεξιά
  • στρίψε αριστερά
  • προχώρησε

Τα ρομπότ τοποθετούνται σε ένα υποθετικό άπειρο πλέγμα, κοιτώντας προς μια συγκεκριμένη κατεύθυνση (βόρεια, ανατολικά, νότια ή δυτικά) και βρίσκονται σε ένα σύνολο συντεταγμένων {x,y}, π.χ. {3,8}, με τις συντεταγμένες να αυξάνονται προς τα βόρεια και τα ανατολικά.

Στη συνέχεια το ρομπότ λαμβάνει έναν αριθμό εντολών, και τότε οι εγκαταστάσεις δοκιμών επαληθεύουν τη νέα θέση του ρομπότ και προς τα πού δείχνει.

  • Η συμβολοσειρά γραμμάτων "RAALAL" σημαίνει:
    • Στρίψε δεξιά
    • Προχώρησε δύο φορές
    • Στρίψε αριστερά
    • Προχώρησε μία φορά
    • Στρίψε αριστερά για άλλη μια φορά
  • Ας πούμε ότι ένα ρομπότ ξεκινά από το {7, 3} κοιτώντας βόρεια. Τότε, εκτελώντας αυτή τη σειρά εντολών θα πρέπει να καταλήξει στο {9, 4} κοιτώντας δυτικά.

Υλοποίηση

Αυτή η άσκηση απαιτεί πράγματι κάποια μορφή καθολικής κατάστασης για το ρομπότ σου. Στην Erlang αυτό μπορεί να γίνει με διάφορους τρόπους (ξεκινώντας από τον πιο ιδιωματικό):

  1. Χρησιμοποίησε κάποιο gen_* από το OTP
  2. Γράψε τη δική σου διεργασία, δέξου μηνύματα σε έναν βρόχο και περνά την κατάσταση ως παράμετρο από δω και από κει.
  3. Γράψε τη δική σου διεργασία και χρησιμοποίησε το λεξικό της διεργασίας.

Πηγή

Εμπνευσμένο από μια ερώτηση συνέντευξης σε μια διάσημη εταιρεία.
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Erlang Exercism

Έτοιμος να ξεκινήσεις την άσκηση Προσομοιωτής ρομπότ;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις Erlang με 85 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.