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

Hobby BASIC 1.8.1
Ένα νέο update στον διερμηνευτή.

Προστέθηκε ένας νέος TIMER ιδιαίτερα εύκολος στην χρήση.
Κώδικας:
    ! TIMER(ms)        start timer with ms period
    ! TIMER(0)         stop timer
    ! TIMER(-1)        zero timer value
    ! TIMER()          get timer value

Ένα απλό παράδειγμα χρήσης.
Κώδικας:
    view 11
    screen 80,30,300
    color 0,7
    cls

    now = 0
    TIMER(1000)   ! start 1 second timer

    do

        if TIMER() > now
            print "Timer Value ",TIMER()
            now = TIMER()
        endif

        wait 1
    until KEY(27)

    TIMER(0)
    end
1708733719396.png


Ας δούμε τώρα κάτι από αυτά που κανονικά δεν γίνονται στην κονσόλα.
Στον φάκελο EXAMPLES\MISC προστέθηκε ένα νέο παράδειγμα το DRAGON.BAS.
Καράτε στο CMD.EXE με την Hobby BASIC.

1708734115626.png
1708734281222.png

Have fun with Hobby BASIC.
 
Το coffee project της ημέρας.
Fifteen παζλ με ANSI εικόνες στο παράθυρο τη κονσόλας.

Πριν λίγο καιρό παρουσίασα ένα απλοϊκό 15 Puzzle.

1709205109790.png

Σκέφτηκα να το ξαναγράψω, αλλά με ANSI εικόνες.
Θα το βρείτε στον φάκελο EXAMPLES\GAMES\PUZZLE.BAS.

Στην πρώτη οθόνη επιλέγουμε μία από τις 7 διαθέσιμες εικόνες.
Πατώντας 1 φορτώνει ο "G-Man", και κάνουμε κλικ για να ανακατέψει.
Έτοιμοι για παιχνίδι, με το ποντίκι φυσικά. Υπάρχει slide εφέ, και ήχος.

1709205353978.png
1709205416787.png
1709205472333.png

Have fun with Hobby BASIC.
 
To coffee project της ημέρας, Spy (κατάσκοπος) για την Hobby BASIC.

To Spy είναι ένα απλό παζλ που έγραψα πριν πολλά χρόνια στα Windows και μετά στο flash.

1710157130846.png
1710157151770.png

Εμφανίστηκαν κλώνοι του, όπως το πολύ καλό Squaresliding για GP2X, και το Spy 4K για Atari ST/STE/TT/Falcon 030, και τα δύο εμπνευσμένα από το Spy. Μπορεί να υπάρχουν και άλλοι, το αγνοώ.

1710157642697.png
1710157615614.png


Έγραψα το παιχνίδι στην Hobby BASIC, για την κονσόλα των Windows με ANSI γραφικά.
Θα το βρείτε στον φάκελο EXAMPLES\GAMES.

Στον πίνακα υπάρχουν αριθμοί και νεκροκεφαλές.
Ο παίκτης μπορεί να κινηθεί προς τις τέσσερις κατευθύνσεις, καθώς και διαγώνια πατώντας τους αριθμούς που βρίσκονται δίπλα του.
Πρέπει να αποφύγει τις νεκροκεφαλές, τις άκρες του πίνακα, και την ουρά του.
Θεωρείται νικητής αν καταφέρει να μειώσει την πίστα στο ποσοστό target που δίνει το παιχνίδι.


1710157908844.png
1710157926873.png

Have fun with Hobby BASIC.
 
Τελευταία επεξεργασία:
Θυμίζει minesweeper αλλά το δικό σου παιχνίδι είναι πιο ωραίο γιατί είναι γραμμένο σε hobby basic και έχει τα ρετρό γραφικά που αγαπάμε! :thumbup:
 
Τελευταία επεξεργασία:
Με την πρώτη ματιά ναι, αλλά έχει διαφορετικό gameplay. Εδώ το board είναι ανοιχτό και μετακινείσαι με τους αριθμούς.

Έχω γράψει ένα ναρκαλιευτή αλλά με actionscript (μου έδωσες ωραία ιδέα, μπορεί άλλη στιγμή να το γράψω στην Hobby BASIC). :thumbdown:

1710165235091.png
 
έχει τα ρετρό γραφικά που αγαπάμε! :thumbup:
Αυτό είναι νομίζω που κάνει τον διερμηνευτή (ας πούμε) κάπως ξεχωριστό. Σκέφτομαι πως, ίσως και μεγαλύτερα text-game project θα μπορούσαν να γίνουν. Για παράδειγμα ένα adventure με ANSI γραφικά εν έτει 2024.
 
Ένα πρώτο update στα γραφικά του Spy.
Δείχνει και παίζει καλύτερα, πιο κοντά στον αρχικό κατάσκοπο.
Σχεδόν χωρίς αλλαγές στον κώδικα.

1710592737487.png
1710592622704.png
1710592634024.png


Τα υπέροχα γραφικά του παιχνιδιού είναι χαρακτήρες ASCII σχεδιασμένα στο DRAW, το σχεδιαστικό πρόγραμμα που είναι γραμμένο στην Hobby BASIC.

1710593147767.png

Have fun with Hobby BASIC.
 
Hobby BASIC 1.8.3
Ένα νέο update στον διερμηνευτή, μαζί και ένα νέο παιχνίδι.

To coffee project της ημέρας.
Ναρκαλιευτής στο παράθυρο της κονσόλας γραμμένος στην Hobby BASIC.
Θα το βρείτε στον φάκελο EXAMPLES\GAMES\MINES.BAS

Minesweeper rules are very simple.
The board is divided into cells, with mines randomly distributed.
To win, you need to open all the cells.
The number on a cell shows the number of mines adjacent to it.
Using this information, you can determine cells that are safe, and cells that contain mines.
Cells suspected of being mines can be marked with a flag using the right mouse button.
Press spacebar to restart game.

1711012071607.png

Have fun with Hobby BASIC.
 
1713194140736.png

Hobby BASIC 1.8.6
Ένα νέο update στον διερμηνευτή.

Τα συνοδευτικά παραδείγματα έφτασαν τα 84.
Δοκιμάστηκαν όλα σε Windows 7 και 10, χωρίς να παρουσιαστεί κάποιο πρόβλημα.
Θυμίζω στα Windows 10 και πάνω, πρέπει να ενεργοποιηθεί η Legacy Option της κονσόλας.
H Hobby BASIC πλησιάζει τα 130k views στο φόρουμ του flat assembler (ενώ ξεπέρασε τα 14k γραμμές πηγαίου κώδικα).
Η εκεί ανάρτηση δέχεται πλέον σταθερά 40 με 60 views την ημέρα.
Εικάζω πως και τα συχνά update βοηθάνε σε αυτό, δείχνουν ότι πρόκειται για ενεργό project.

Λίγα λόγια για το τελευταίο update.
Διορθώθηκε bug που αφορά το εκτελέσιμο που εξάγει η Hobby BASIC. Δεν συμπεριλάμβανε τον κώδικα από τα include files στο εκτελέσιμο.

Προστέθηκε η συνάρτηση FILE(path$,n) για λειτουργίες που αφορούν φακέλους ή αρχεία.
Εργασίες που προηγουμένως γίνονταν μόνο με την εντολή EXEC.
! FILE(path$,n)
! file path, 0 - delete file or folder
! file path, 1 - create folder
! file path, 2 - create file
! file path, 3 - check if file or folder exists
! file path, 4 - set current directory
! returns error value in V0

Το πρόγραμμα δημιουργεί 10 αρχεία κειμένου μέσα στον φάκελο DATA\TEMP (αν δεν υπάρχει ο φάκελος, τον δημιουργεί).
Κώδικας:
        CREATE_FOLDER = 1
        CREATE_FILE = 2
        FILE_OR_FOLDER_EXISTS = 3
        SET_CURRENT_DIRECTORY = 4

        path$ = PATH("DATA\TEMP")

        if ~FILE(path$,FILE_OR_FOLDER_EXISTS)
            if ~FILE(path$,CREATE_FOLDER)
                print "Can''t create folder, error ",V0
                goto continue
            endif
        endif

        if ~FILE(path$,SET_CURRENT_DIRECTORY)
            print "Can''t set current directory, error ",V0
            goto continue
        endif

        for i=1 to 10
            a$ = "Text" + STR(i) +".txt"
            if ~FILE(a$,FILE_OR_FOLDER_EXISTS)
                FILE(a$,CREATE_FILE)
            endif
        next

        print "Success!"

        continue#
        pause
        end

1713193331532.png


Η συνάρτηση TICK(2) επιστρέφει την μνήμη που χρησιμοποιεί η Hobby BASIC ανά πάσα στιγμή.
Στα Windows 7 η Hobby BASIC έχει περίπου 6 MB footprint στο ξεκίνημα της.
Κώδικας:
        view 11
        screen 80,10,0
        color 0,7
        cls
        print "Memory used: ",TICK(2)/1024," KB"
        pause
        end

1713193154384.png


Ξεκίνησα να βελτιώνω το εικαστικό μέρος των παραδειγμάτων.
Είναι όμως πολλά τα παραδείγματα και θα χρειαστεί χρόνος.
Παράδειγμα, το MISC.BAS ανανεώθηκε σε MEMO.BAS.
ANSI γραφικά όπως πάντα.

1713192444194.png
1713192457667.png

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