Hobby Basic, ένας μικρός διερμηνευτής για την κονσόλα των Windows

Να 'σαι καλά xdir :thumbup:

Είχα την Commodore Logo σε δισκέτα στα ’80s, αλλά δεν έτυχε να τη δουλέψω πολύ.
Η DR Logo ήταν εξαιρετική έκδοση -όπως οι περισσότερες γλώσσες στον Amstrad. Θυμάμαι ότι είχε ένα εκτενές σετ εντολών.

Πολύ ενδιαφέρον project! Με τι την υλοποίησες; GDI, SDL, DirectX;
Η σχεδίαση γίνεται από το GDI αλλά η προβολή στο παράθυρο της εφαρμογής (Plotter) μπορεί να γίνει είτε μέσω του τυπικού DC είτε μέσω DirectDraw surface (DirectX) -καθορίζεται από τον χρήστη.

Το project είχε ξεκινήσει για πλάκα οπότε αρχικά υποστήριζε μόνο τις τυπικές εντολές γραφικών της LOGO, σταδιακά όμως επεκτάθηκε στο σύνολο των εντολών της DR LOGO (μαζί με κάμποσες νέες) πλην των εντολών εγγραφής και ανάγνωσης δεδομένων σε αποθηκευτικά μέσα (πχ. δίσκο κλπ).

Στο τέλος πρόσθεσα έναν πλήρες editor (με syntax highlight, auto-suggestion κλπ), έναν Debugger / Inspector για όλα τα τμήματα του συστήματος (μεταβλητές , sub functions κλπ) και μια ενσωματωμένη βοήθεια που μοιάζει με το παλιό WinHelp το οποίο προτιμούσα ανέκαθεν από το νεότερο CHM.

Ακολουθεί ένα screen-shot με τα βασικά σημεία του λογισμικού ανοικτά:
TLOGOFSCR.png

Και ένα video που είχα αναρτήσει παλιότερα στο κανάλι μου όπου ο μεταφραστής σχεδιάζει ένα τρίγωνο Sierpinski - port ουσιαστικά από ένα demo του Amstrad CPC πλην ότι τα χρώματα είναι σταθερά.
 
Φαίνεται ότι έχει γίνει πολλή δουλειά -μπράβο για το project xdir, ανταποδίδω το respect.

Ένας μικρός editor με syntax highlighting είναι στα μελλοντικά μου σχέδια για την Hobby BASIC. Πιστεύω πως θα κάνει το project πιο ελκυστικό και θα προσελκύσει περισσότερους φίλους. Επειδή όμως, δεν θέλω σε καμία περίπτωση να χρησιμοποιήσω third-party εργαλείο και η ανάπτυξή του σε assembly είναι χρονοβόρα, θα χρειαστεί χρόνος. Ωστόσο, έχω ήδη ξεκινήσει, με περίπου 20% ολοκληρωμένο. Προς το παρόν, το project βρίσκεται στον πάγο, καθώς έχω επικεντρωθεί στην ανάπτυξη του διερμηνευτή.
 
Φαίνεται ότι έχει γίνει πολλή δουλειά -μπράβο για το project xdir, ανταποδίδω το respect.

Ένας μικρός editor με syntax highlighting είναι στα μελλοντικά μου σχέδια για την Hobby BASIC. Πιστεύω πως θα κάνει το project πιο ελκυστικό και θα προσελκύσει περισσότερους φίλους. Επειδή όμως, δεν θέλω σε καμία περίπτωση να χρησιμοποιήσω third-party εργαλείο και η ανάπτυξή του σε assembly είναι χρονοβόρα, θα χρειαστεί χρόνος. Ωστόσο, έχω ήδη ξεκινήσει, με περίπου 20% ολοκληρωμένο. Προς το παρόν, το project βρίσκεται στον πάγο, καθώς έχω επικεντρωθεί στην ανάπτυξη του διερμηνευτή.
Σε ευχαριστώ!

Για τον editor δες το Rich Edit control, προσφέρει πολλές δυνατότητες παραμετροποίησης των περιεχομένων του σχετικά εύκολα (μέσω μηνυμάτων) δίχως ανάγκη για subclass ενώ παράλληλα υποστηρίζει το TOM COM interface για πιο εξωτικές δυνατότητες (πχ. Text Range collapse/expand κλπ).

Καλή συνέχεια!
 
Υπάρχει ήδη ένας βασικός σκελετός κώδικα (προερχόμενος από τον MASM). To θέμα είναι πως ο προγραμματισμός GUI στα Windows με assembly είναι ιδιαίτερα απαιτητικός-πολύπλοκος, και καταναλώνει αρκετό από τον χρόνο και την ενέργειά μου. Καλή συνέχεια και σε σένα!

Στην φώτο, Rich Edit σε Win32 assembly (μέγεθος εκτελέσιμου 17kb).

1740340485137.png
 
Το MazezaM είναι ένα παιχνίδι παζλ που ξεκίνησε από τον Spectrum και έχει μεταφερθεί σχεδόν σε όλες τις πλατφόρμες.

Η αρχική έκδοση περιλάμβανε 10 δωμάτια, αλλά δημιούργησα ένα remake στην Hobby BASIC, το οποίο αποτελεί πιστή αναπαραγωγή της έκδοσης του Puzzlescript, με 30 δωμάτια. Κάποια από αυτά αποδείχθηκαν τόσο δύσκολα, που σε ορισμένες περιπτώσεις εγκατέλειψα την προσπάθεια και ακολούθησα το walkthrough για να τα ολοκληρώσω!

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

Είναι ένα ενδιαφέρον και ιδιαίτερα απαιτητικό παζλ.

Στον φάκελο EXAMPLES\GAMES\WIN10\MAZEZAM.BAS θα βρείτε τον κώδικα του παιχνιδιού.

Windows 10 console screenshot.

1740614869579.png

Have fun with Hobby BASIC.
 
Πίσω
Μπλουζα