A downloadable game

10 Line BASIC 

=============

Category : PUR-80 

TITLE    : pacman

PLATFORM : Oric Atmos

LANGUAGE : BASIC 1.1b

AUTHOR   : RAX

VIDEO    :


CODE:

0---------1---------2---------3---------4---------5---------6---------7-----78
0D$="333b%%%b###//####APbVb5##?1)1?###?aaa?":FORA=1TO38:T=ASC(MID$(D$,A,1))-35
1POKE#B907+A,T:NEXT:D$="####_^Z27-7-71?-?+'13bb%a$CB3bb%?4E174E-7TF-_Ba2####":
2DIMM(30,20):DEFFNC(X)=(DANDX)/X+33:POKE#26A,10:LORES1:FORY=0TO12:FORX=0TO3'''
3D=ASC(MID$(D$,I+1,1))-35:FORK=0TO5:C=FNC(2^K):C=C-(C=33)*128:M(X*6+K,Y)=C''''
4INK3:PLOT9+X*6+K,Y+4,C:NEXT:I=I+1:NEXTX,Y:X=9:Y=7:E=9:DEFFNR(X)=INT(RND(1)*X)
5R=4:B=161:P=130:REPEAT:K=PEEK(#208):M(Q,W)=32:Q=X:W=Y:Y=Y+(K=156)-(K=180)''''
6X=X+(K=172)-(K=188):X=X-((X=1))*21+((X=22))*21:Z=SCRN(9+X,4+Y):PLAY7,0,2,S*10
7F=E:G=R:E=E+(D=0)-(D=1):R=R+(D=2)-(D=3):IFZ=161THENX=Q:Y=WELSE:S=S-(Z=34)''''
8IFM(E,R)=161THENE=F:R=G:D=FNR(4)ELSE:PLOT9+F,4+G,M(F,G):PLOT9+E,4+R,35'''''''
9M(X,Y)=32:M=1-M:PLOT9+Q,4+W,32:PLOT9+X,4+Y,36+M:UNTILX=EANDY=RORS=P:RUN''''''

RUN


CODE EXPLANATION:

================================

0D$="333b%%%b###//####APbVb5##?1)1?###?aaa?":FORA=1TO38:T=ASC(MID$(D$,A,1))-35

    D$="333b%%%b###//####APbVb5##?1)1?###?aaa?"                         - chars/sprites data

    FOR A = 1 TO 38                                                     - chars modify loop

        T=ASC(MID$(D$,A,1))-35                                          - get data from string

================================


1POKE#B907+A,T:NEXT:D$="####_^Z27-7-71?-?+'13bb%a$CB3bb%?4E174E-7TF-_Ba2####":

        POKE#B907+A,T                                                   - change line of char/sprite    

    NEXT

    D$="####_^Z27-7-71?-?+'13bb%a$CB3bb%?4E174E-7TF-_Ba2####"           - level data

================================


2DIMM(30,20):DEFFNC(X)=(DANDX)/X+33:POKE#26A,10:LORES1:FORY=0TO12:FORX=0TO3

    DIMM(30,20)                                                         - playgraund array

    DEFFNC(X)=(DANDX)/X+33                                              - this function get bit from char (for level)

    POKE#26A,10                                                         - stop system blinking cursor and the sounds when press a key

    LORES1                                                              - set lo-res mod

    FORY=0TO12                                                          - print level loop Y

        FORX=0TO3                                                       - print level loop X

================================


3D=ASC(MID$(D$,I+1,1))-35:FORK=0TO5:C=FNC(2^K):C=C-(C=33)*128:M(X*6+K,Y)=C

            D=ASC(MID$(D$,I+1,1))-35                                    - get char form level string

                FORK=0TO5                                               - bits loop

                    C=FNC(2^K)                                          - get curent bit from char

                    C=C-(C=33)*128                                      - calc sprite

                    M(X*6+K,Y)=C                                        - save sprite in playground array

================================


4INK3:PLOT9+X*6+K,Y+4,C:NEXT:I=I+1:NEXTX,Y:X=9:Y=7:E=9:DEFFNR(X)=INT(RND(1)*X)

                    INK3                                                - set ink 3

                    PLOT9+X*6+K,Y+4,C                                   - sprinte sprite on a screen

                NEXT

                I=I+1                                                   - char index

    NEXTX,Y

    X=9                                                                 - palyer X

    Y=7                                                                 - palyer X

    E=9                                                                 - ghost X

    DEFFNR(X)=INT(RND(1)*X)                                             - define random function FNR

================================


5R=4:B=161:P=130:REPEAT:K=PEEK(#208):M(Q,W)=32:Q=X:W=Y:Y=Y+(K=156)-(K=180):

    R=4                                                                 - ghost Y

    B=161                                                               - brick ascii char number

    P=130                                                               - max dots on level

    REPEAT                                                              - game loop

        K=PEEK(#208)                                                    - read key in K

        M(Q,W)=32                                                       - clear field on playgraund array

        Q=X                                                             - old player x pos

        W=Y                                                             - old player y pos

        Y=Y+(K=156)-(K=180)                                             - calc new Y pos

================================


6X=X+(K=172)-(K=188):Z=SCRN(9+X,4+Y):X=X-((X=1))*21+((X=22))*21

        X=X+(K=172)-(K=188)                                             - calc new X pos

        Z=SCRN(9+X,4+Y)                                                 - scan screen on player pos in Z

        X=X-((X=1))*21+((X=22))*21                                      - ix player on teleport pos - calc new X pos

        PLAY7,0,2,S*10                                                  - play little sound effect

================================


7F=E:G=R:E=E+(D=0)-(D=1):R=R+(D=2)-(D=3):IFZ=161THENX=Q:Y=WELSE:S=S-(Z=34)

        F=E                                                             - old ghost pos X

        G=R                                                             - old ghost pos Y

        E=E+(D=0)-(D=1)                                                 - calc new ghost pos X

        R=R+(D=2)-(D=3)                                                 - calc new ghost pos Y

        IF Z=161 THEN                                                   - if player new pos is on brick then

            X=Q                                                         - return old X and Y

            Y=W

        ELSE                                                            - else

            :                                                           - nothing

        S=S-(Z=34)                                                      - calc the points collected from the playing field

================================


8IFM(E,R)=161THENE=F:R=G:D=FNR(4)ELSE:PLOT9+F,4+G,M(F,G):PLOT9+E,4+R,35:

        IF M(E,R)=161 THEN                                              - if ghost on brick then

            E=F                                                         - return old X

            R=G                                                         - return old Y

            D=FNR(4)                                                    - get new random ghost direction 

        ELSE                                                            - else

            :                                                           - nothing

        PLOT9+F,4+G,M(F,G)                                              - remove ghost

        PLOT9+E,4+R,35                                                  - print ghost

================================


9M(X,Y)=32:M=1-M:PLOT9+Q,4+W,32:PLOT9+X,4+Y,36+M:UNTILX=EANDY=RORS=P:RUN

        M(X,Y)=32                                                       - clear field on playgraund array

        M=1-M                                                           - pacman animation index

        PLOT9+Q,4+W,32                                                  - remove player

        PLOT9+X,4+Y,36+M                                                - print player

    UNTIL X=E AND Y=R OR S=P                                            - game loop ends when the position of the ghost and the player are the same or all points are stopped

    RUN                                                                 - restart game

StatusReleased
Rating
Rated 4.0 out of 5 stars
(1 total ratings)
AuthorBASIC 10Liner
GenreAction
Tags8-Bit, basic, basic10liner, oric

Download

Download
pacman.txt 8 kB
Download
PACMAN10.tap 735 bytes

Install instructions

INSTALLATION INSTRUCTIONS:

1. Download the zip file from here: http://www.petergordon.org.uk/oricutron/files/Oricutron_win32_v12.zip

2. Copy the file PACMAN10.TAP to the Oric\tapes folder

3. Start the emulator oricutron.exe

4. Type CLOAD"PACMAN10.TAP" and press enter

5. LIST to show the program

6. Type RUN to play the game

KEYS: Arrows

Comments

Log in with itch.io to leave a comment.

(1 edit)

With oricutron emulator. The game doesn´t run.