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

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

Μέτριο

Οδηγίες

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

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

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

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

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

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

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

Η κατεύθυνση προς την οποία κοιτάει το ρομπότ θα εκφράζεται ως ένας από τους παρακάτω αριθμούς:

  • Βορράς = 0
  • Ανατολή = 1
  • Νότος = 2
  • Δύση = 3

Όταν η είσοδος δεν είναι έγκυρη, επίστρεψε κατεύθυνση -1 (οι άλλες τιμές θα αγνοηθούν).

Δεσμευμένη μνήμη

Ο buffer για τη συμβολοσειρά εισόδου χρησιμοποιεί τα byte 64-319 της γραμμικής μνήμης.

Η συμβολοσειρά εισόδου μπορεί να τροποποιηθεί αν το θέλεις.


Πηγή

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

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

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