Αναδημιουργώντας το πιο δύσκολο παιχνίδι στον κόσμο στο Arduino: 7 βήματα
Αναδημιουργώντας το πιο δύσκολο παιχνίδι στον κόσμο στο Arduino: 7 βήματα

Βίντεο: Αναδημιουργώντας το πιο δύσκολο παιχνίδι στον κόσμο στο Arduino: 7 βήματα

Βίντεο: Αναδημιουργώντας το πιο δύσκολο παιχνίδι στον κόσμο στο Arduino: 7 βήματα
Βίντεο: Κρατάμε πίσω τα συναισθήματα μας - Νεφέλη Μέγκ | E389 2025, Ιανουάριος
Anonim
Image
Image

Αυτό το έργο βασίζεται σε ένα παιχνίδι υπολογιστή που μπορείτε να βρείτε στο διαδίκτυο. Το όνομά του είναι "The Worlds Hardest Game". Iμουν σε θέση να το δημιουργήσω ξανά στο Arduino χρησιμοποιώντας μια μήτρα LED τεσσάρων μονάδων. Σε αυτό το διδακτικό σας διδάσκω πώς να το φτιάξετε μόνοι σας. Πριν μπούμε σε πάρα πολλές λεπτομέρειες, θέλω να κάνω μια γρήγορη επισκόπηση των βημάτων που πέρασα για να δημιουργήσω αυτό το παιχνίδι.

  1. Συγκέντρωσα όλα τα απαραίτητα μέρη.
  2. Ένωσα τα μέρη μαζί.
  3. Έγραψα ένα σκίτσο που χρησιμοποίησε το χειριστήριο για να μετακινήσει τα LED των παικτών σε όλες τις ενότητες.
  4. Σχεδίασα τα πρώτα εμπόδια και τα πρόσθεσα στο σκίτσο, ώστε να μιμηθούν το Worlds Hardest Game.
  5. Στη συνέχεια πρόσθεσα κώδικα για να εντοπίσω μια σύγκρουση με τα εμπόδια, τα οποία θα ξεκινήσουν ξανά το παιχνίδι.
  6. Και τότε σχεδίασα δύο ακόμη επίπεδα εμποδίων.

Βήμα 1: Όλα τα μέρη

Όλα τα Μέρη
Όλα τα Μέρη
Όλα τα Μέρη
Όλα τα Μέρη

Ακολουθεί μια λίστα με όλα τα μέρη που χρειάζεστε:

  1. Υποδοχή Arduino UNO και usb:
  2. Μια τετραπλή ενότητα 8x8: μήτρα LED
  3. Ένα Joystick:
  4. 10 αρσενικά προς θηλυκά καλώδια:

Βήμα 2: Πώς να συνδέσετε τα μέρη στο Arduino

Πώς να συνδέσετε τα μέρη στο Arduino
Πώς να συνδέσετε τα μέρη στο Arduino

Πώς να συνδέσετε τη μήτρα LED στο Arduino

  1. Το GND πηγαίνει στο GND
  2. Το VCC πηγαίνει στα 5V
  3. Το DataIn μεταβαίνει στην ψηφιακή ακίδα 12
  4. Το CLK μεταβαίνει στην ψηφιακή ακίδα 11
  5. Το CS ή το LOAD μεταβαίνει στην ψηφιακή ακίδα 10

Πώς να συνδέσετε το χειριστήριο

  1. Το GND πηγαίνει στο GND
  2. 5V πηγαίνει στα 5V
  3. Το VRx πηγαίνει στην αναλογική ακίδα A0
  4. Το VRy πηγαίνει στην αναλογική ακίδα A1
  5. SW δεν χρησιμοποιείται

Η μπαταρία συνδέεται στην υποδοχή 9v για να δώσει στο Arduino ισχύ

Βήμα 3: Διάγραμμα ροής του προγράμματος

Διάγραμμα ροής του προγράμματος
Διάγραμμα ροής του προγράμματος

Το οβάλ δείχνει την έναρξη του προγράμματος.

Το πρώτο βήμα είναι να καθορίσουμε όλα τα εμπόδια.

Τα επόμενα δύο βήματα υποδεικνύουν τη ρύθμιση των μεταβλητών και την ενεργοποίηση όλων των ενοτήτων.

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

Στη συνέχεια, εμφανίστε το επίπεδο στο οποίο βρίσκεται η συσκευή αναπαραγωγής.

Ο ρόμβος δείχνει την ανάγνωση του Joystick για να δείτε σε ποια κατεύθυνση ωθείται.

Στη συνέχεια, μετακινήστε τον παίκτη σε οποιαδήποτε κατεύθυνση ωθήθηκε το Joystick.

Ελέγξτε και δείτε αν ο παίκτης συγκρούστηκε με εμπόδιο.

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

Εάν η συσκευή αναπαραγωγής βρίσκεται στο τέλος του επιπέδου, ορίστε το στο επόμενο επίπεδο και μετά επιστρέψτε στην ενότητα "Εμφάνιση τρέχοντος επιπέδου". Εάν δεν είναι στο τέλος, μετακινήστε τα εμπόδια και επιστρέψτε στο "Διαβάστε το Joystick".

Βήμα 4: Προγραμματισμός του Joystick

Φυσικά για να μετακινήσουμε τη μικρή κουκίδα που είναι ο παίκτης, χρειαζόμαστε ένα χειριστήριο. και για να επιτρέψουμε στο joystick να μετακινήσει πραγματικά τη συσκευή αναπαραγωγής πρέπει να την κωδικοποιήσουμε στο Arduino IDE. Πρέπει να συμπεριλάβετε τη βιβλιοθήκη LedControl την οποία μπορείτε να βρείτε πηγαίνοντας στο μενού σκίτσων> Συμπερίληψη βιβλιοθηκών> διαχείριση βιβλιοθηκών και αναζητήστε το LedControl. Δείτε πώς φαίνεται ο κωδικός για το χειριστήριο.

#include "LedControl.h"

int DataIn = 12; int CLK = 11; int DIN = 10; LedControl lc = LedControl (DataIn, CLK, DIN, 4); // Δημιουργεί αντικείμενο για τέσσερις ενότητες int delaytime = 50; // ταχύτητα με την οποία τρέχει το παιχνίδι int joystick_RtLt, joystick_UpDn; int players_x = 0; // οριζόντια θέση παικτών από 0 έως 31 int players_y = 3; // παίκτες κάθετη θέση από 0 έως 7 int σειρά, στήλη, ενότητα. void setup () {initialize_modules (); // ενεργοποιήστε και ορίστε και τις τέσσερις ενότητες led} void loop () {move_player (); // ξεκινήστε το βρόχο ελέγχοντας αν η μετακίνηση του παίκτη καθυστερεί (καθυστέρηση). } void initialize_modules () {lc.shutdown (0, false); // ξεκινά τη μονάδα 0 lc.setIntensity (0, 1); lc. τερματισμός λειτουργίας (1, false); // ξεκινά τη μονάδα 1 lc.setIntensity (1, 1); lc. τερματισμός λειτουργίας (2, false); // ξεκινά τη μονάδα 2 lc.setIntensity (2, 1); lc. τερματισμός λειτουργίας (3, false); // ξεκινά τη μονάδα 3 lc.setIntensity (3, 1); lc.clearDisplay (0); // καθαρίζει τη μονάδα 0} void move_player () {module = players_x/8; // καθορίζει σε ποια μονάδα βρίσκεται ο παίκτης στη στήλη = players_x%8; // ορίζει τη στήλη όπου βρίσκεται η συσκευή αναπαραγωγής στη σειρά μονάδας = players_y; lc.setLed (ενότητα, γραμμή, στήλη, false); // απενεργοποίηση led στην τρέχουσα θέση του παίκτη joystick_RtLt = analogRead (A0)/204 - 2; // διαβάστε το X -joystick και το εύρος χάρτη από 2 έως -2 εάν (joystick_RtLt> 0) // όταν το joystick είναι στα σωστά players_x ++. // πηγαίνετε δεξιά αλλού αν (joystick_RtLt 0) // αν το joystick είναι αριστερά και όχι στην αρχή players_x--; // μετακίνηση αριστερά joystick_UpDn = analogRead (A1)/204 - 2; // διαβάστε το Y-joystick και το εύρος χάρτη από 2 έως -2 εάν (joystick_UpDn 0) // εάν το joystick είναι κάτω και ο παίκτης δεν βρίσκεται στο κάτω μέρος players_y--; // μετακινηθείτε προς τα κάτω if (joystick_UpDn> 0 && players_y <7) // εάν το joystick είναι επάνω και ο παίκτης δεν βρίσκεται στην κορυφή players_y ++; // πάμε επάνω module = players_x/8; // ορίστε τη μονάδα στους παίκτες στήλη νέας θέσης = players_x%8; // ορίστε τη στήλη στους παίκτες νέα θέση σειρά = players_y; // ορίστε σειρά στους παίκτες νέα θέση lc.setLed (ενότητα, σειρά, στήλη, true); // ενεργοποιήστε το led στη νέα θέση του παίκτη}

Τώρα που προσθέσατε το joystick, ας δουλέψουμε το πρώτο εμπόδιο!

Βήμα 5: Το πρώτο επίπεδο

Εντάξει, τώρα ήρθε η ώρα να μπούμε στο κύριο μέρος του προγράμματος, τα εμπόδια! Τα εμπόδια είναι αυτά που πραγματικά κάνουν αυτό το "Το πιο δύσκολο παιχνίδι του κόσμου". Έτσι, εάν θέλετε να παίξετε το παιχνίδι, τότε πρέπει να το προσθέσετε στον κωδικό σας:

byte εμπόδιο [ΕΠΙΠΕΔΑ] [ΣΚΗΝΕΣ] [ΣΤΗΛΕΣ] [ΣΕΙΡΕΣ] = {// τρία επίπεδα, 8 σκηνές, 8 συγκρούσεις, 8 σειρές

{{{1, 1, 1, 1, 1, 1, 0, 0}, // πρώτο επίπεδο, πρώτη σκηνή {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1}, { 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}}, {{1, 1, 1, 1, 1, 0, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, // πρώτο επίπεδο, δεύτερη σκηνή {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 1, 1, 1, 1, 1 }, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}, {{1, 1, 1, 1, 0, 0, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, // πρώτο επίπεδο, τρίτο σκηνή {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {1, 1, 0, 0, 1, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}, {{1, 1, 1, 0, 0, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, // πρώτα επίπεδο, τέταρτη σκηνή {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {1, 1, 1, 0, 0, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}, {{1, 1, 0, 0, 1, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, // πρώτο επίπεδο, πέμπτη σκηνή {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {1, 1, 1, 1, 0, 0, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}, {{1, 0, 0, 1, 1, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, // πρώτο επίπεδο, έκτη σκηνή {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, { 1, 1, 1, 1, 1, 0, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}, {{0, 0, 1, 1, 1, 1, 1, 1}, // πρώτο επίπεδο, έβδομη σκηνή {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0 }, {1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}, {{0, 1, 1, 1, 1, 1, 1, 1}, // πρώτο επίπεδο, όγδοο σκηνή {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {1, 1, 1, 1, 1, 1, 1, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}}}, void setup () {initialize_modules (); // ενεργοποιήστε και ορίστε και τις τέσσερις ενότητες led start_level (0). void loop () {move_player (); // ξεκινήστε το βρόχο ελέγχοντας αν ο παίκτης κινείται εάν (σύγκρουση ()) {// ελέγξτε για επίπεδο σύγκρουσης = 0; // εάν η σύγκρουση είναι αληθινή, επαναφέρετε το επίπεδο start_level (επίπεδο). // επανεκκίνηση του παιχνιδιού} else if (delay_count == obstence_delay) {// εάν καμία σύγκρουση μετακινήσει εμπόδιο κάθε άλλη καθυστέρηση moveobstacle (); delay_count = 0; } else delay_count ++; καθυστέρηση (καθυστέρηση) // καθυστέρηση κατά την ταχύτητα του παιχνιδιού}

Και αυτό είναι το πρώτο εμπόδιο! Εάν το βαρεθείτε αυτό ως το πρώτο σας επίπεδο, μπορείτε πάντα να αλλάξετε τα byte, απλώς θυμηθείτε ότι πρέπει να έχετε οκτώ διαφορετικές σκηνές! Ας συνεχίσουμε στο επόμενο βήμα, τον εντοπισμό σύγκρουσης!

Βήμα 6: Ανίχνευση σύγκρουσης

Αυτό το βήμα είναι ένα άλλο σημαντικό μέρος του παιχνιδιού, χωρίς αυτό δεν θα ήταν μεγάλη πρόκληση! θα μπορούσατε απλά να διανύσετε το δρόμο σας μέσα από τα εμπόδια χωρίς οποιεσδήποτε συνέπειες! αυτό δεν θα ήταν πολύ διασκεδαστικό σωστά; ας κάνουμε το παιχνίδι πιο δύσκολο (και πολύ πιο διασκεδαστικό!) προσθέτοντας αυτό το τμήμα του προγράμματος:

void loop () {

move_player (); // ξεκινήστε το βρόχο ελέγχοντας αν ο παίκτης κινείται εάν (σύγκρουση ()) {// ελέγξτε για επίπεδο σύγκρουσης = 0; // εάν η σύγκρουση είναι αληθινή, επαναφέρετε το επίπεδο start_level (επίπεδο). // επανεκκίνηση του παιχνιδιού} else if (delay_count == obstence_delay) {// εάν καμία σύγκρουση μετακινήσει εμπόδιο κάθε άλλη καθυστέρηση moveobstacle (); delay_count = 0; } else delay_count ++; καθυστέρηση (καθυστέρηση) // καθυστέρηση κατά την ταχύτητα του παιχνιδιού} int σύγκρουση () {// ελέγξτε αν ο παίκτης χτύπησε εμπόδιο στη μονάδα σκηνής = players_x/8; στήλη = players_x%8; σειρά = players_y; if (module> 0) if (εμπόδιο [επίπεδο] [σκηνή] [στήλη] [σειρά] == 1) // εάν η θέση του παίκτη είναι ίδια με την επιστροφή εμποδίων (1). // ανίχνευση σύγκρουσης επιστροφή πραγματικής επιστροφής (0). // καμία σύγκρουση επιστροφή ψευδής}

Και ορίστε! τώρα μπορείτε να απολαύσετε το παιχνίδι πολύ περισσότερο! Τώρα θα σας δείξω πώς να προγραμματίσετε τα δύο τελευταία επίπεδα του παιχνιδιού! τελειώσατε με αυτό το διδακτικό και είμαι σίγουρος ότι είστε έτοιμοι να το δοκιμάσετε!

Βήμα 7: Τα δύο τελευταία επίπεδα

Φτάνοντας στο τέλος του διδάσκοντος, αυτά τα δύο τελευταία επίπεδα είναι το μόνο που χρειάζεστε για να τελειώσετε αυτό το παιχνίδι. Στη συνέχεια, μπορείτε να το δοκιμάσετε μόνοι σας! εδώ είναι ο κωδικός:

byte εμπόδιο [LEVELS] [SCENES] [COLUMNS] [ROWS] = {// δεύτερο και τρίτο επίπεδο, 8 σκηνές, 8 στήλες, 8 σειρές

{{{1, 0, 0, 0, 0, 0, 0, 1}, // δεύτερο επίπεδο, πρώτη σκηνή {0, 1, 0, 0, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0}, { 0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 0, 0, 1, 0}, {1, 0, 0, 0, 0, 0, 0, 1}}, {{1, 1, 0, 0, 0, 0, 0, 1}, // δεύτερο επίπεδο, δεύτερη σκηνή {0, 0, 1, 0, 0, 0, 0, 1}, {0, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 0, 1, 1, 1, 0, 0}, {0, 0, 1, 1, 1, 0, 0, 0 }, {0, 1, 0, 0, 1, 0, 0, 0}, {1, 0, 0, 0, 0, 1, 0, 0}, {1, 0, 0, 0, 0, 0, 1, 1}}, {{0, 1, 0, 0, 0, 0, 0, 0}, // δεύτερο επίπεδο, τρίτη σκηνή {0, 0, 1, 1, 0, 0, 0, 1}, {0, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 0, 1, 1, 1, 1, 0}, {0, 1, 1, 1, 1, 0, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 0}, {0, 1, 0, 0, 0, 1, 1, 0}, {0, 0, 0, 0, 0, 0, 1, 0}}, {{0, 0, 1, 0, 0, 0, 0, 0}, // δεύτερο επίπεδο τέταρτη σκηνή {0, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 1}, {0, 1, 1, 1, 1, 0, 1, 0}, {0, 1, 0, 1, 1, 1, 1, 0}, {1, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0}}, {{0, 0, 0, 1, 0, 0, 0, 0}, // δεύτερο επίπεδο, πεντάδα σκηνή {0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 1, 1, 0, 0, 1}, {1, 0, 0, 1, 1, 0, 1, 0}, {0, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0}}, {{0, 0, 0, 0, 1, 0, 0, 0}, // δεύτερο επίπεδο, έκτη σκηνή {0, 0, 0, 0, 0, 1, 0, 0}, {0, 1, 1, 0, 0, 1, 0, 0}, {1, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 0, 1, 1, 0, 1, 1}, {0, 0, 1, 0, 0, 1, 1, 0}, {0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 0}}, {{0, 0, 0, 0, 0, 0, 1, 0, 0}, // δεύτερο επίπεδο, έβδομη σκηνή {0, 0, 0, 0, 0, 1, 0, 0}, {1, 1, 1, 0, 0, 1, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 1, 0, 0, 1, 1, 1}, {0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0, 0, 0}}, {{0, 0, 0, 0, 0, 0, 0, 1, 0}, // όγδοη σκηνή δεύτερου επιπέδου {1, 1, 0, 0, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 0, 0, 1, 1}, {0, 1, 0, 0, 0, 0, 0, 0}}}, {{{0 0, 1, 0, 0, 0, 0, 0, 1}, // τρίτο επίπεδο, πρώτη σκηνή {0, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 0, 1, 0, 0}, {1, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 1}, {0, 0, 0, 1, 0, 0, 0, 0} }, {{0, 0, 0, 0, 1, 0, 0, 1}, // τρίτο επίπεδο, δεύτερη σκηνή {1, 0, 0, 0, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0}, {1, 0, 0, 1, 0, 0, 1, 0}}, {{0, 1, 0, 0, 1, 0, 0, 1}, // τρίτο επίπεδο, τρίτη σκηνή {0, 0, 0, 1, 0, 0, 1, 0}, { 0, 0, 0, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 1, 0, 0, 0, 0}}, {{0, 0, 0, 0, 1, 0, 0, 1}, // τρίτο επίπεδο, τέταρτη σκηνή {1, 0, 0, 1, 0, 0, 1, 0 }, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 1, 0, 0, 1, 0}}, {{0, 1, 0, 0, 1, 0, 0, 1}, // τρίτο επίπεδο, πέμπτη σκηνή {0, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 0, 0, 0, 1}, {0, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 0, 0}}, {{0, 0, 0, 0, 1, 0, 0, 1}, // τρίτο επίπεδο, έκτη σκηνή {1, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 1, 0, 0, 1, 0}}, {{0, 1, 0, 0, 1, 0, 0, 1}, // τρίτο επίπεδο, έβδομη σκηνή {0, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 1, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 1, 0, 0, 0, 0}}, {{0, 0, 0, 0, 1, 0, 0, 0}, // τρίτο επίπεδο, όγδοη σκηνή { 1, 0, 0, 0, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 1}, {1, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 0}, {1, 0, 0, 1, 0, 0, 1, 0}}}};

Και αυτό είναι! είστε έτοιμοι να προσπαθήσετε να ολοκληρώσετε το πιο δύσκολο παιχνίδι στον κόσμο. Επίσης, ο πλήρης κωδικός Arduino επισυνάπτεται παρακάτω.