Τεκμηρίωσης
Προγράμματα
Γενικά
Βασικές εντολές
Προγραμματιστικές δομές
Προγράμματα
- Γράψε το όνομά σου
- Βρες το σημάδι
- Ακολούθα τη γραμμή
- Λαβύρινθος
Εκπαίδευση

Παραδείγματα προγραμμάτων

Στα πιο κάτω παραδείγματα μπορείτε να δείτε ορισμένες από τις δυνατότητες του ρομπότ. Μπορείτε να αντιγράψετε τον κώδικα στο περιβάλλον του RoboMind και δείτε το ρομπότ σε δράση. Σιγουρευτείτε ότι έχετε επιλέξει το σωστό χάρτη για το πρόγραμμά σας..

Παράδειγμα 1 : Γράψε το όνομα σου

Το ρομπότ μπορεί να χρησιμοποιήσει το πινέλο για να βάψει με μαύρο ή άσπρο χρώμα. Χρησιμοποιώντας τις εντολές μπορείτε να ζωγραφίσετε απλά σχήματα ή και χαρακτήρες όπως το γράμμα 'Α' που βλέπετε δίπλα.

Με το χάρτη openArea.map θα έχετε αρκετό χώρο για να δημιουργήσετε τα σχήματα που θέλετε. Χρησιμοποιήστε το χειριστήριο (Εκτέλεση > Χειριστήριο) και αφήστε το ρομπότ να ζωγραφίσει.

Σχετικά: βασικές εντολές: βάψε, κοίταξε

write 'A'

#χαρακτήρας 'A'
ΒΑΨΕ_ΑΣΠΡΟ()

ΜΠΡΟΣΤΑ(2)
ΔΕΞΙΑ()
ΜΠΡΟΣΤΑ(1)
ΔΕΞΙΑ()
ΜΠΡΟΣΤΑ(2)
ΠΙΣΩ(1)
ΔΕΞΙΑ()
ΜΠΡΟΣΤΑ(1)

ΣΤΑΜΑΤΑ_ΒΑΨΙΜΟ()

 

Παράδειγμα 2 : Βρες το σήμαδι

Μέσα στο χάρτη findSpot1.map θα βρείτε μια εσοχή με ένα άσπρο σημάδι. Το ρομπότ θα προχωρήσει μπροστά μέχρι να εντοπίσει το σημάδι στα αριστερά του και όταν το κάνει θα τερματίσει την εκτέλεση, αλλιώς θα συνεχίσει να ψάχνει

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

find spot
ΕΠΑΝΕΛΑΒΕ(){
    ΑΝΝ(ΑΣΠΡΟ_ΑΡΙΣΤΕΡΑ()){
        # αν υπάρχει άσπρο σημάδι αριστερά
        ΑΡΙΣΤΕΡΑ()
        ΜΠΡΟΣΤΑ(1)
        ΤΕΛΟΣ
    }
    ΑΛΛΙΩΣ{
        # αν δεν υπάρχει άσπρο σημάδι αριστερά
        ΜΠΡΟΣΤΑ(1)
    }
}

Εναλλακτικά μπορούμε να έχουμε το ίδιο αποτέλεσμα με το πιο κάτω:

ΕΠΑΝΕΛΑΒΕ_ΟΣΟ(ΕΜΠΟΔΙΟ_ΑΡΙΣΤΕΡΑ()){
    ΜΠΡΟΣΤΑ(1)
}

ΑΡΙΣΤΕΡΑ()
ΜΠΡΟΣΤΑ(1)
            

 

Παράδειγμα 3 : Ακολούθα τη γραμμή

Στο χάρτη default.map θα βρείτε μια άσπρη, συνεχόμενη γραμμή. Το πιο κάτω πρόγραμμα βάζει το ρομπότ να ακολουθήσει τη γραμμή μέχρι το τέλος της.

Το πρόγραμμα είναι παρόμοιο με το προηγούμενο, δηλαδή συνδυασμός δομής επανάληψης και δομής ελέγχου.

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

line follower
# πήγαινε στην αρχή της γραμμής
ΔΕΞΙΑ()
ΜΠΡΟΣΤΑ(8)

# ακολούθα τη γραμμή
ΕΠΑΝΕΛΑΒΕ()
{
    ΑΝ(ΑΣΠΡΟ_ΜΠΡΟΣΤΑ()){	
        ΜΠΡΟΣΤΑ(1)
    }
    ΑΛΛΙΩΣ ΑΝ(ΑΣΠΡΟ_ΔΕΞΙΑ()){
        ΔΕΞΙΑ()
    }
    ΑΛΛΙΩΣ ΑΝ(ΑΣΠΡΟ_ΑΡΙΣΤΕΡΑ()){
        ΑΡΙΣΤΕΡΑ()
    }
    ΑΛΛΙΩΣ ΑΝ(ΕΜΠΌΔΙΟ_ΜΠΡΟΣΤΑ()){
        ΤΕΛΟΣ
    }
}     

Εναλλακτικά μπορούμε να χρησιμοποιήσουμε μια διαδικασία. Στο πιο κάτω πρόγραμμα η διαδικασία ΑΚΟΛΟΥΘΑ καλεί τον εαυτό της μέσα στον ορισμό της. Αυτό ονομάζεται αναδρομή (recursion). Με αυτό τον τρόπο η διαδικασία εκτελείτε ξανά και ξανά μέχρι να εκπληρώσει το σκοπό της.

# πήγαινε στην αρχή της γραμμής
ΔΕΞΙΑ()
ΜΠΡΟΣΤΑ(8)

# ακολούθα τη γραμμή
ΑΚΟΛΟΎΘΑ()


# αναδρομική διαδικασία ΑΚΟΛΟΥΘΗΣΕ
ΔΙΑΔΙΚΑΣΙΑ ΑΚΟΛΟΥΘΗΣΕ(){
    ΑΝ(ΑΣΠΡΟ_ΜΠΡΟΣΤΑ()){	
        ΜΠΡΟΣΤΑ(1)
        ΑΚΟΛΟΥΘΑ()
    }
    ΑΛΛΙΩΣ ΑΝ(ΑΣΠΡΟ_ΔΕΞΙΑ()){
        ΔΕΞΙΑ()
        ΑΚΟΛΟΥΘΑ()
    }
    ΑΛΛΙΩΣ ΑΝ(ΑΣΠΡΟ_ΑΡΙΣΤΕΡΑ()){
        ΑΡΙΣΤΕΡΑ()
        ΑΚΟΛΟΥΘΑ()
    }
    ΑΛΛΙΩΣ ΑΝ(ΕΜΠΟΔΙΟ_ΜΠΡΟΣΤΑ()){
        # τερμάτισε την κλήση της διαδικασίας
        # (επειδή δεν υπάρχει εντολή μετά 
        # την επιστροφή οι κλήσεις τερματίζονται
        # και το πρόγραμμα σταματά)
        ΕΠΙΣΤΡΟΦΗ
    }
}

 

Παράδειγμα 4 : Λαβύρινθος

Σε αυτό το παράδειγμα το ρομπότ πρέπει να βρει τη σημαδούρα (συμβολίζει την έξοδο) μέσα σε ένα λαβύρινθο. Το ρομπότ ακολουθά τον τοίχο που βρίσκεται στα δεξιά κάνοντας πάντα δεξιά στροφή. Ο χάρτης που χρησιμοποιούμε ονομάζεται maze1.map.

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

ΕΠΑΝΕΛΑΒΕ(){	
    ΑΝ(ΕΜΠΟΔΙΟ_ΔΕΞΙΑ()){
        ΑΝ(ΚΑΘΑΡΑ_ΜΠΡΟΣΤΑ()){
            ΜΠΡΟΣΤΑ(1)
        }
        ΑΛΛΙΩΣ{
            ΑΡΙΣΤΕΡΑ()
        }
    }
    ΑΛΛΙΩΣ{
        ΔΕΞΙΑ()
        ΜΠΡΟΣΤΑ(1)
    }

    ΑΝ(ΣΗΜΑΔΟΥΡΑ_ΜΠΟΡΣΤΑ()){	
        ΠΙΑΣΕ()
        ΤΕΛΟΣ
    }
}
      

RoboMind - Copyright © 2005 - 2016 - Research Kitchen