Botbright: Ένα παιχνίδι προγραμματισμού.

🇬🇧 English · 🇪🇸 Español · 🇫🇷 Français · 🇩🇪 Deutsch · 🇮🇹 Italiano · 🇵🇹 Português · 🇷🇺 Русский · 🇨🇳 中文 · 🇯🇵 日本語 · 🇰🇷 한국어 · 🇮🇳 हिन्दी · 🇧🇩 বাংলা · 🇻🇳 Tiếng Việt · 🇸🇦 العربية · 🇹🇭 ไทย · 🇳🇴 Norsk · 🇳🇱 Nederlands · 🇸🇪 Svenska · 🇹🇷 Türkçe · 🇰🇪 Kiswahili · 🇮🇩 Bahasa Indonesia · 🇵🇱 Polski · 🇬🇷 Ελληνικά · 🇮🇱 עברית · 🇵🇭 Filipino · 🇨🇿 Čeština · 🇩🇰 Dansk · 🇫🇮 Suomi · 🇷🇴 Română · 🇭🇺 Magyar · 🇭🇷 Hrvatski


Το Botbright είναι ένας κλώνος σε JavaScript ενός αρχείου του παιχνιδιού γρίφων Flash Lightbot. Προγραμμάτισε ένα ισομετρικό ρομπότ να περπατήσει σε ένα τρισδιάστατο πλέγμα πλακιδίων και να φωτίσει τα μπλε πλακίδια-στόχους. Σύρε πλακίδια εντολών στη μνήμη του ρομπότ, πάτησε Εκτέλεση και παρακολούθησε το πρόγραμμά σου να εκτελείται.

Όλο το παιχνίδι είναι ένα αρχείο HTML (botbright.html) με ενσωματωμένο CSS και JavaScript — χωρίς βήμα build, χωρίς εξωτερικές εξαρτήσεις, χωρίς κλήσεις δικτύου. Άνοιξε το αρχείο σε οποιονδήποτε σύγχρονο περιηγητή και παίξε. Αποθήκευσέ το στον σκληρό σου δίσκο και θα δουλεύει εκτός σύνδεσης για πάντα.

Μπορείς επίσης να αλλάξεις το χρωματικό σχήμα και να βάλεις διάφορα καπέλα στο ρομπότ σου. Υπάρχει ενσωματωμένος επεξεργαστής πιστών, και οι πίστες και τα καπέλα μπορούν να εισαχθούν ή να εξαχθούν σε μορφή JSON.

Παίξε

Απλώς κάνε διπλό κλικ στο αρχείο botbright.html ή άνοιξέ το στον περιηγητή σου. Το παιχνίδι λειτουργεί εκτός σύνδεσης.

Ζωντανή έκδοση: https://inventwithpython.com/botbright/

Πώς λειτουργεί

Το ρομπότ έχει τρεις περιοχές μνήμης:

  • Κύρια Μνήμη — 12 θέσεις εντολών, εκτελείται όταν πατάς Εκτέλεση
  • Μνήμη F1 — 8 θέσεις εντολών, μία καλέσιμη συνάρτηση
  • Μνήμη F2 — 8 θέσεις εντολών, μία δεύτερη καλέσιμη συνάρτηση

Σύρε πλακίδια εντολών από την παλέτα στη μνήμη. Άλλαξε σειρά σύροντας μεταξύ θέσεων. Σύρε ένα πλακίδιο έξω από οποιαδήποτε θέση για να το διαγράψεις.

Εντολή Τι κάνει
Εμπρός Πάτησε στο μπροστινό πλακίδιο, αν είναι στο ίδιο ύψος
Στροφή αριστερά Περιστροφή 90° αριστερόστροφα
Στροφή δεξιά Περιστροφή 90° δεξιόστροφα
Άλμα Πήδα ένα επίπεδο πάνω, ή πήδα οποιοδήποτε αριθμό επιπέδων κάτω
Φως Εναλλάσσει το πλακίδιο-στόχο κάτω από το ρομπότ
Κάλεσε F1 / F2 Σπρώχνει αυτή τη συνάρτηση στη στοίβα κλήσεων (επιτρέπεται αναδρομή, με όρια)

Η πίστα ολοκληρώνεται όταν κάθε πλακίδιο-στόχος είναι κίτρινο.

Προγράμματα που τρέχουν πολύ ώρα σταματούν: το πολύ 1000 συνολικές εντολές, το πολύ 100 πλαίσια στη στοίβα κλήσεων.

Χειρισμός

Κάμερα — WASD ή βέλη για μετατόπιση, Q/E ή PageUp/PageDown για περιστροφή 90°, +/− ή ροδάκι για μεγέθυνση. Πάτα 0 για επαναφορά της προβολής. Σύρε τον καμβά για μετατόπιση, τσιμπώντας για μεγέθυνση, στρίβοντας με δύο δάχτυλα για περιστροφή. Πάτα παρατεταμένα τα κουμπιά κάμερας στην οθόνη για ομαλή συνεχή κίνηση.

Πλάτος πλευρικής μπάρας — σύρε τον διαχωριστή μεταξύ καμβά και πλευρικής μπάρας.

Ταχύτητα — ολισθητής στην πλευρική μπάρα: αργή / κανονική / γρήγορη. Προσαρμόζεται και κατά την εκτέλεση.

Επεξεργαστής Πιστών

Πλήρης επεξεργαστής συνοδεύει το παιχνίδι. Πρόσθεσε/αντίγραψε/διέγραψε πίστες, άλλαξε το μέγεθος του πλέγματος (1–32 σε κάθε διάσταση), ζωγράφισε ύψη 0–9, μάρκαρε πλακίδια-στόχους, όρισε αρχική θέση και προσανατολισμό, και δοκίμασε χωρίς να φύγεις από τον επεξεργαστή.

Το πλήρες σύνολο πιστών εξάγεται ως JSON και εισάγεται με τον ίδιο τρόπο, ώστε να μοιράζεσαι πίστες ή να φτιάχνεις αντίγραφα ασφαλείας των επεξεργασιών σου.

Επεξεργαστής Καπέλων

Το ρομπότ μπορεί να φοράει καπέλα. Έρχεται με δεκαεννέα επιλογές: Κανένα, Ψηλό Καπέλο, Καπέλο Μάγου, Στέμμα, Σκουφάκι, Κασκέτο Μπέιζμπολ, Καπέλο Καουμπόι, Καπέλο Πάρτι, Μελόν, Φωτοστέφανο, Κέρατα Διαβόλου, Σομπρέρο, Καπέλο Μάγισσας, Φέσι, Κέρατα Ελαφιού, Αυτιά Λαγού, Αυτιά Γάτας, Καπέλο Δύτη και Καπέλο Βίκινγκ. Κάθε καπέλο ορίζεται από τέσσερα σπράιτ SVG — ένα για κάθε προσανατολισμό σε σχέση με την οθόνη — έτσι ώστε το καπέλο να ακολουθεί την κατεύθυνση του ρομπότ σε όλες τις περιστροφές της κάμερας (το γείσο του κασκέτου, η αγκράφα του καπέλου της μάγισσας, το παράθυρο του καπέλου του δύτη και τα αυτιά λαγού/γάτας μετατοπίζονται ανάλογα). Μια ζωντανή προεπισκόπηση περιστρέφει το ρομπότ μία φορά το δευτερόλεπτο για να βλέπεις το καπέλο από όλες τις γωνίες. Τα καπέλα εξάγονται και εισάγονται επίσης ως JSON για προσαρμοσμένα σχέδια.

Χρωματικά Σχήματα

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

Γλώσσες

Μεταφράσεις διεπαφής σε 23 γλώσσες: Αγγλικά, Ισπανικά, Γαλλικά, Γερμανικά, Ιταλικά, Πορτογαλικά, Ρωσικά, Κινεζικά, Ιαπωνικά, Κορεατικά, Χίντι, Μπενγκάλι, Βιετναμικά, Αραβικά (με διάταξη από δεξιά προς αριστερά), Ταϊλανδικά, Ταγκάλογκ, Νορβηγικά, Ολλανδικά, Σουηδικά, Τουρκικά, Σουαχίλι, Ινδονησιακά και Πολωνικά. Η προεπιλεγμένη γλώσσα ακολουθεί το navigator.language του περιηγητή· ο επιλογέας γλώσσας στην αρχική οθόνη το παρακάμπτει για τη συνεδρία. Τα ονόματα και οι περιγραφές των ενσωματωμένων πιστών, καθώς και τα ονόματα των ενσωματωμένων καπέλων, είναι μεταφρασμένα σε όλες τις υποστηριζόμενες γλώσσες. Όταν επεξεργάζεσαι όνομα ή περιγραφή, ο επεξεργαστής γράφει μόνο στη θέση της τρέχουσας επιλεγμένης γλώσσας, αφήνοντας τις άλλες μεταφράσεις ανέπαφες.

Φωτεινό / Σκούρο Θέμα

Ακολουθεί το prefers-color-scheme του περιηγητή για το πλαίσιο της εφαρμογής. Επιλέγοντας το θέμα Προεπιλογή στο πάνελ Χρώματα εφαρμόζεται η παλέτα που ταιριάζει στην τρέχουσα λειτουργία του περιηγητή, οπότε παραμένει συγχρονισμένη αν αλλάξεις λειτουργία. Οποιοδήποτε άλλο ενσωματωμένο θέμα — ή μια προσαρμοσμένη παλέτα — υπερισχύει αυτής της συμπεριφοράς.

Συντελεστές

Δημιουργήθηκε από τον Al Sweigart — https://inventwithpython.com/botbright/

Εμπνευσμένο από το Lightbot του Daniel Yaroslavski.