Διαδρομές
/
Java
Java
/
Ασκήσεις
/
Λαβυρινθώδη ποντίκια
Λαβυρινθώδη ποντίκια

Λαβυρινθώδη ποντίκια

Δύσκολο

Εισαγωγή

Γνώρισε τον Mickey και τη Minerva, δύο έξυπνα ποντίκια που λατρεύουν να βρίσκουν τον δρόμο τους μέσα σε έναν λαβύρινθο για να φτάσουν στο τυρί. Τους αρέσει η πρόκληση, αλλά με τα μικροσκοπικά ποντικίσια μυαλά τους προτιμούν να υπάρχει μόνο ένας σωστός δρόμος προς το τυρί.

Οδηγίες

Η αποστολή σου είναι να δημιουργήσεις τους τέλειους λαβύρινθους για τον Mickey και τη Minerva, αυτούς που έχουν μόνο μία λύση και κανένα απομονωμένο τμήμα. Να τι πρέπει να ξέρεις:

  • Ο λαβύρινθος έχει ορθογώνιο σχήμα, με ένα άνοιγμα στην αρχή και στο τέλος.
  • Ο λαβύρινθος έχει δωμάτια και διαδρόμους, που τέμνονται κάθετα.
  • Το πρόγραμμα πρέπει να δέχεται δύο παραμέτρους: rows και columns. Ο λαβύρινθος πρέπει να έχει μέγεθος από 5 έως 100 κελιά.
  • Ένας λαβύρινθος που έχει πλάτος x columns και ύψος y rows πρέπει να έχει 2x + 1 χαρακτήρες πλάτος και 2y + 1 χαρακτήρες ύψος.
  • Αν δε δοθεί seed, δημιούργησε έναν τυχαίο λαβύρινθο. Αν δοθεί το ίδιο seed πολλές φορές, ο λαβύρινθος που προκύπτει πρέπει να είναι ο ίδιος κάθε φορά.
  • Χρησιμοποίησε χαρακτήρες σχεδίασης πλαισίων για να σχεδιάσεις τους τοίχους, και ένα σύμβολο βέλους (⇨) για την είσοδο στα αριστερά και την έξοδο στα δεξιά.

Ήρθε η ώρα να φτιάξεις μερικούς τέλειους λαβύρινθους για αυτά τα περιπετειώδη ποντίκια!

Παραδείγματα

  1. Ένας μικρός τετράγωνος λαβύρινθος 5x5 κελιά (ή 11x11 χαρακτήρες)

    ┌───────┬─┐
    │       │ │
    │ ┌─┬── │ │
    │ │ │   │ ⇨
    │ │ │ ──┤ │
    ⇨ │ │   │ │
    ┌─┤ └── │ │
    │ │     │ │
    │ │ ────┘ │
    │         │
    └─────────┘
    
  2. Ένας ορθογώνιος λαβύρινθος 6x18 κελιά

    ┌───────────┬─────────┬───────────┬─┐
    │           │         │           │ │
    │ ┌───────┐ │ ┌─┐ ──┐ └───┐ ┌───┐ │ │
    │ │       │ │ │ │   │     │ │   │   ⇨
    │ └─┐ ┌─┐ │ │ │ ├── ├───┐ │ │ ──┼── │
    │   │ │ │   │   │   │   │ │ │   │   │
    └── │ │ ├───┴───┤ ┌─┘ ┌─┘ │ ├── │ ──┤
    ⇨   │   │       │ │   │   │ │   │   │
    ┌─┬─┴─┐ └─┐ ┌─┐ │ └─┐ │ ┌─┘ │ ──┴─┐ │
    │ │   │   │ │ │ │   │   │   │     │ │
    │ │ │ └── │ │ │ └── │ ──┘ ┌─┘ ──┐ │ │
    │   │       │       │     │     │   │
    └───┴───────┴───────┴─────┴─────┴───┘
    
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Java Exercism

Έτοιμος να ξεκινήσεις την άσκηση Λαβυρινθώδη ποντίκια;

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