Το Raspberry Pi 2 είναι μια εκπληκτικά ικανή συσκευή, λαμβάνοντας υπόψη την τιμή κάτω των 30 £. Έρχεται με μια έκδοση του Minecraft προεγκατεστημένο, μαζί με ένα API που σας επιτρέπει να γράφετε κώδικα για εκτέλεση στον εικονικό κόσμο. Το κάνετε αυτό στο Python, το οποίο είναι εύκολο να το μάθετε. Ο συνδυασμός των Pi, Python και Minecraft παρέχει μια εξαιρετική ευκαιρία να ξεκινήσετε να εξερευνάτε τις δυνατότητες προγραμματισμού. Και η συγκίνηση να βλέπεις ένα σπίτι να χτίζεται σε ένα εικονικό τοπίο δεν είναι μόνο για παιδιά.
πώς να απενεργοποιήσετε τα σχόλια στο χρονοδιάγραμμα του facebook
Σενάριο στο Minecraft
Το Minecraft είναι ένα ανοιχτό παιχνίδι με άμμο που δεν έχει γραμμή πλοκής για να ακολουθήσει. Μερικές φορές περιγράφεται ως εικονικό Lego, καθώς ο παίκτης μπορεί να κατασκευάσει κάθε είδους δομή χρησιμοποιώντας τα μπλοκ που έχουν στη διάθεσή τους. Η έκδοση που συνδυάζεται με το Raspberry Pi έχει ένα περιορισμένο σύνολο χαρακτηριστικών που ταιριάζει στον εκπαιδευτικό της ρόλο - οπότε δεν χρειάζεται να ανησυχείτε για το να κυνηγηθείτε από ζόμπι, για παράδειγμα. Η αλληλεπίδραση με αυτόν τον κόσμο δεν απαιτεί καμία ειδική ρύθμιση, μόνο μια πρόσφατη έκδοση του Raspbian OS και ένα περιβάλλον προγραμματισμού. Θα προτιμούσα το Geany, το οποίο μπορείτε να εγκαταστήσετε ανοίγοντας το LXTerminal και πληκτρολογώντας:
sudo apt-get εγκατάσταση geany
Ας ξεκινήσουμε δημιουργώντας ένα σενάριο για την οικοδόμηση ενός σπιτιού μπροστά από τον παίκτη - αλλά αντί να χτυπάμε ένα στη θέση του, θα το κάνουμε εμψυχωμένο. Θα δημιουργήσουμε επίσης διάφορες διαμορφώσιμες ρυθμίσεις, οι οποίες θα επιτρέψουν στον παίκτη να πειραματιστεί με διαφορετικές διαστάσεις και υλικά. Αυτό θα κάνει επίσης το πρόγραμμα αρθρωτό, ώστε να μπορεί να χρησιμοποιηθεί ως βάση για τη δημιουργία πιο εξελιγμένων πηγών.
Για να λειτουργήσει ο κώδικας, φορτώστε τον στο Geany και, στη συνέχεια, ξεκινήστε το Minecraft και δημιουργήστε έναν νέο κόσμο. Πατήστε το πλήκτρο Tab για να απελευθερώσετε τον κέρσορα από το παράθυρο Minecraft και κάντε κλικ στο εικονίδιο γραναζιού στο Geany (ή πατήστε F5) για να ξεκινήσει το σενάριο. Θα πρέπει να δείτε ένα σπίτι μαγικά να συναρμολογείται. Εάν όχι, δοκιμάστε να γυρίσετε - μπορεί να είναι πίσω σας! Μπορείτε να δείτε το σενάριο σε δράση εδώ . Πώς λειτουργεί λοιπόν το σενάριο; Λοιπόν, πρώτα ανοίγει έναν σύνδεσμο για το Minecraft:
εισαγωγή mcpi.minecraft ως minecraft, time mc = minecraft.Minecraft.create ()
Στο Python, είναι σημαντικό να δώσετε προσοχή στην εσοχή, καθώς έτσι ο κώδικας χωρίζεται σε μπλοκ. Σε αυτήν την περίπτωση, και οι δύο γραμμές είναι επίπεδες με το αριστερό περιθώριο: η πρώτη γραμμή εισάγει τις βιβλιοθήκες Minecraft και Time και η δεύτερη δημιουργεί ένα αντικείμενο Minecraft για να το χρησιμοποιήσουμε σε ολόκληρο. Οι επόμενες 25 γραμμές ορίζουν μερικές μεταβλητές για τα μπλοκ που πρόκειται να χρησιμοποιήσουμε, ώστε να μπορούμε να τα αναφέρουμε ως, ας πούμε, σανίδες ξύλου και όχι με το αναγνωριστικό μπλοκ (5, σε αυτήν την περίπτωση). Στη συνέχεια υποδεικνύουμε ποια από αυτά τα μπλοκ θα χρησιμοποιηθούν για τους τοίχους, ποια για την οροφή και ούτω καθεξής. Μπορούμε εύκολα να αλλάξουμε την κατασκευή του σπιτιού εντελώς, αλλάζοντας τούβλα τοίχους για λιθόστρωτο, για παράδειγμα. Τέλος, ορίζουμε το πλάτος, το μήκος και το ύψος της επιθυμητής κατοικίας μας.
Τώρα καλούμε τη συνάρτηση Minecraft mc.player.getTilePos () για να εντοπίσετε τη συσκευή αναπαραγωγής στο τοπίο και οι τιμές που επιστρέφουν στη συνέχεια χρησιμοποιούνται για τη δημιουργία δύο μεταβλητών, αριστερά και κάτω, για να περιγράψουν πού θα είναι η πρώτη γωνία της κατοικίας .
Στη συνέχεια, η δομή του σεναρίου ταιριάζει με τη διαδικασία Minecraft της χειροκίνητης οικοδόμησης ενός σπιτιού. Ξεκινάμε με την εκκαθάριση ενός χώρου, ώστε εάν ο παίκτης επιλέξει να χτίσει το σπίτι μέσα, ας πούμε, ένα βουνό, το σαλόνι δεν θα είναι συμπαγής πέτρα. Εδώ είναι το μπλοκ του κώδικα - η λειτουργία στο Python - το κάνει αυτό:
def clear_house (πυρηνικό):
εάν πυρηνικό == Αληθινό:
blast_zone = 20
αλλού:
blast_zone = 0
mc.setBlocks (αριστερή-έκρηξη_ ζώνη, player_
έδαφος, κάτω + έκρηξη_ζώνη, αριστερά + πλάτος + έκρηξη_
ζώνη, player_ground + ύψος + ύψος
ζώνη + 10, κάτω-έκρηξη-ζώνη, μπλοκ αέρα)
Όταν ονομάζουμε clear_house, περνάμε την παράμετρο πυρηνική. Έχει την τιμή True ή False. Μπορείτε να δοκιμάσετε να το καλέσετε με True για να καθαρίσετε έναν μεγαλύτερο όγκο γύρω από την περιοχή προορισμού ή να το καλέσετε με False για να περιορίσετε την απόσταση στις εσωτερικές διαστάσεις του σπιτιού. Στο Minecraft, η συνάρτηση mc.setBlocks χρησιμοποιείται για να δημιουργήσει έναν κύβο μπλοκ περνώντας από αυτόν τις συντεταγμένες, σε τρεις διαστάσεις, αντίθετων γωνιών ακολουθούμενες από τον τύπο μπλοκ που θέλετε να χρησιμοποιήσετε. Σε αυτήν την περίπτωση εκκαθαρίζουμε ένα χώρο, οπότε χρησιμοποιούμε αέρα.
Μόλις εκκαθαρίσουμε το χώρο, ήρθε η ώρα να προχωρήσουμε στην κατασκευή. Κάθε ένα από αυτά τα στάδια κατασκευής πραγματοποιείται με τη δική του λειτουργία. Στο τέλος του σεναρίου, θα δείτε μια συνάρτηση που ονομάζεται main (), η οποία ελέγχει τη ροή του προγράμματος καλώντας κάθε φάση κατασκευής με τη σειρά. Ονομάζοντας τις λειτουργίες μας λογικά και καλώντας τις από το main (), είναι εύκολο να κατανοήσουμε τι κάνει το πρόγραμμα:
def main ():
clear_house (ψεύτικο)
start_pos = [αριστερά, κάτω, player_
έδαφος]
build_floor (start_pos)
μάθημα = build_walls (start_pos)
add_door (θέση_ πόρτας)
time.sleep (καθυστέρηση * 10)
build_roof (start_pos, μάθημα)
Η επόμενη συνάρτηση που ονομάζεται main () χτίζει το πάτωμα - αυτό χρησιμοποιεί mc. setBlocks ξανά για να χαράξουμε ένα θεμέλιο (για καλλιτεχνικό αποτέλεσμα) και στη συνέχεια να προσθέσουμε έναν κύβο πλακιδίων δαπέδου με βάθος ενός μπλοκ για να δημιουργήσουμε ένα συμπαγές δάπεδο στο σπίτι μας.
κανένας ουρανός τι να κάνει
Χτίζοντας τους τοίχους
Η λειτουργία build_walls είναι η καρδιά του προγράμματος. Ο πιο αποτελεσματικός τρόπος για να δημιουργήσετε το κέλυφος ενός σπιτιού θα ήταν να χτυπήσετε ένα συμπαγές κύβο από τούβλα και στη συνέχεια να χρησιμοποιήσετε το clear_house για να χαράξετε το εσωτερικό. Ωστόσο, θέλουμε το σπίτι να φαίνεται να κατασκευάζεται, οπότε πρέπει να τοποθετήσουμε μπλοκ ξεχωριστά, το ένα μετά το άλλο. Ακολουθεί μια απλοποιημένη έκδοση του κώδικα κατασκευής τοίχων:
def build_course (start_pos, κατεύθυνση,
σειρά μαθημάτων):
μπλοκ = 1
current_horiz = start_pos [0]
current_vert = start_pos [1]
εάν κατεύθυνση == πάνω ή
κατεύθυνση == κάτω:
number_of_blocks = μήκος
αλλού:
number_of_blocks = πλάτος
ενώ μπλοκ mc.setBlock (current_horiz, player_)
έδαφος + πορεία, current_vert, wall_block)
εάν κατεύθυνση == πάνω:
current_vert- = 1
κατεύθυνση elif == κάτω:
current_vert + = 1
κατεύθυνση elif == δεξιά:
current_horiz + = 1
αλλού:
current_horiz- = 1
μπλοκ = μπλοκ + 1 # μετακινηθείτε στο επόμενο μπλοκ
time.sleep (καθυστέρηση)
Ξεκινάμε με την αποθήκευση της αρχικής θέσης - αυτή θα είναι η θέση του τελευταίου μπλοκ που τοποθετήθηκε από την προηγούμενη σειρά μπλοκ. Στη συνέχεια, καθορίζουμε πόσα τετράγωνα θα τοποθετηθούν, ανάλογα με το αν πηγαίνουμε κατά μήκος του κτιρίου ή του πλάτους του.
Η φάση οικοδόμησης περιλαμβάνεται στο μπλοκ while - αυτό συνεχίζει να τρέχει μέχρι να τοποθετήσουμε όλα τα μπλοκ. Το mc.setBlock τοποθετεί ένα μόνο μπλοκ στις συντεταγμένες που εμφανίζονται και, στη συνέχεια, αυξάνει μία από αυτές τις συντεταγμένες ανάλογα με την κατεύθυνση στην οποία βάζουμε. Το αποτέλεσμα είναι ότι τα μπλοκ τοποθετούνται κατά μήκος ενός τοίχου πριν γυρίσουν μια γωνία και συνεχίσουν σε ένα ορθογώνιο μέχρι να ολοκληρωθεί η πορεία.
πώς να αλλάξετε τα παράθυρα θέσης αντιγράφων ασφαλείας iphone 10
Η τελική έκδοση του κώδικα είναι λίγο πιο εμπλεκόμενη, προσθέτοντας παράθυρα σε κάθε τοίχο. Τα παράθυρα έχουν δυναμικό μέγεθος έτσι ώστε να έχουν το μισό μήκος του τοίχου και στο κέντρο. Καταγράφει επίσης τη θέση για την πόρτα. προστίθεται μόλις χτιστούν οι τοίχοι. Τα μαθήματα ελέγχονται από τη συνάρτηση build_walls, η οποία επαναλαμβάνει τη συνάρτηση build_course για κάθε πορεία μπλοκ μέχρι να φτάσει στο τελικό ύψος.
Θα μπορούσατε να δοκιμάσετε ακόμη και να χτίσετε το σπίτι σας στον ωκεανό ή στον αέρα - κάντε το με διπλό πάτημα του πλήκτρου διαστήματος για να πετάξετε και, στη συνέχεια, πατήστε ξανά για να σηκώσετε τον εαυτό σας πριν εκτελέσετε το σενάριο. Αλλάξτε τις μεταβλητές wall_block και roof_block για να δείτε τι θα συμβεί εάν δημιουργήσετε τοίχους ή στέγη από χρυσό ή, πράγματι, λάβα. Μπορείτε να προσθέσετε τα δικά σας μπλοκ ανατρέχοντας στην πλήρη λίστα εδώ και προσθέτοντας τη σχετική μεταβλητή στο σενάριο. Οι πιο απαιτητικές τροποποιήσεις μπορεί να περιλαμβάνουν την προσθήκη πολλαπλών ορόφων στη δομή εάν η μεταβλητή ύψους έχει οριστεί σε αρκετά μεγάλη τιμή. Εξετάστε πώς μπορείτε να προσθέσετε πυργίσκους, για παράδειγμα, και έχετε τα προσόντα ενός κάστρου Minecraft.
Αυτά τα τσιμπήματα μπορεί να ακούγονται ασήμαντα, αλλά προγραμματίζω επαγγελματικά για περισσότερα από 20 χρόνια και εξακολουθώ να αισθάνομαι ενθουσιασμό όταν ένα απόσπασμα κώδικα λειτουργεί όπως είχε προβλεφθεί. Εάν δεν έχετε προγραμματίσει ποτέ πριν, ελπίζω να το δοκιμάσετε - και εάν έχετε έναν ανεμιστήρα Minecraft στο νοικοκυριό, προτείνω να τους αφήσετε χαλαρούς στον κώδικα και να δείτε πού τους παίρνει. Θα βρείτε συνδέσμους προς τους πόρους του Minecraft Pi στη διεύθυνση kevpartner.co.uk/ προγραμματισμός .