Προσπαθώ σε κάθε νέο πρόγραμμα σε Hobby BASIC να δοκιμάζω κάτι διαφορετικό, να πιέζω τον διερμηνευτή στα όριά του, από απλή περιέργεια για το τι μπορεί πραγματικά να κάνει. Κι όμως, υπάρχουν στιγμές που αυτή η μικρή έκδοση της BASIC συνεχίζει να με εκπλήσσει ευχάριστα. Με κάνει να αναθεωρώ όσα θεωρούσα δεδομένα και, ταυτόχρονα, να ανεβάζω τον πήχη στους στόχους μου.
Σκέφτηκα να υλοποιήσω ένα Boulder Dash-like παιχνίδι στην κονσόλα των Windows 11, χρησιμοποιώντας ANSI γραφικά. Το παιχνίδι θα τρέχει σε grid: θα υπάρχουν βράχοι με βαρύτητα και λογική πλάγιου slide, διαμάντια που μαζεύει ο παίκτης, και όταν συγκεντρώσει τον απαιτούμενο αριθμό, θα ανοίγει μια κρυφή έξοδος. Παράλληλα, ένας αντίπαλος θα περιπολεί στον χάρτη.
Μα γίνεται κάτι τέτοιο στη γραμμή εντολών των Windows; Και μπορεί η Hobby BASIC να το φέρει εις πέρας;
Η συγγραφή του κώδικα κράτησε 3 μέρες, αλλά μετά χρειάστηκα περίπου μια ακόμα εβδομάδα για να τον φέρω εκεί που ήθελα. Έγραφα και ξαναέγραφα τις ρουτίνες, δοκίμαζα, μετρούσα, προσπαθώντας να βρω τον καλύτερο δυνατό συνδυασμό σε κίνηση και ταχύτητα. Και μην ξεχνάτε, όλα αυτά μέσα στο παράθυρο της κονσόλας. Το τελικό αποτέλεσμα με ικανοποιεί πολύ, είναι από τις στιγμές που νιώθω πως έβγαλα κάτι καλό στον διερμηνευτή.
ANSI Boulder Dash-style παιχνίδι στην κονσόλα (v1.0)
Πλατφόρμα: Windows 10/11
Γλώσσα: Hobby BASIC
Source:
BDASH.BAS
➤ Στόχος του παιχνιδιού:
➤ Μαζεύεις όλα τα διαμάντια για να εμφανιστεί η έξοδος
➤ Η πόρτα εμφανίζεται τυχαία σε διαφορετικό τεταρτημόριο από εκεί που είναι ο παίκτης.
➤ Πρέπει να φτάσεις στην πόρτα πριν τελειώσει ο χρόνος.
➤ Ό,τι χρόνος περισσέψει, μετατρέπεται σε bonus έξτρα χρόνο για την επόμενη πίστα.
➤ Μηχανισμοί παιχνιδιού:
➤ Βράχοι και διαμάντια πέφτουν και γλιστρούν ρεαλιστικά.
➤ Αν σε πλακώσει κάτι, πεθαίνεις αμέσως.
➤ Ο παίκτης έχει animation και ήχο όταν πεθαίνει.
➤ Η πόρτα εμφανίζεται δυναμικά μόλις μαζευτούν όλα τα διαμάντια.
➤ Ο χάρτης χωρίζεται σε 4 περιοχές (A, B, C, D) και λειτουργεί ανάλογα με το πού βρίσκεται ο παίκτης.
➤ Τα γραφικά είναι tile-based μέσω της draw_tile().
➤ Υποστηρίζονται ήχοι (.wav) για βήματα, συλλογή διαμαντιού, θάνατο και άνοιγμα πόρτας.
➤ Συμβατότητα:
➤ Τρέχει κανονικά σε Windows 10/11 χωρίς να χρειάζεται "Use legacy console"
➤ Πλήρης υποστήριξη για χρώματα, tiles και ήχο στη μοντέρνα κονσόλα.
➤ Windows 11 Console screenshots.



Have fun with
Hobby BASIC.