Post Reply 
Sokoban game for HP Prime
01-05-2014, 03:29 PM
Post: #9
RE: Sokoban game for HP Prime
Here is a little rewrite of your code for Moves and Pushes in the 4 directions.
Code:
local DX, DY;
...
        IF xmouse<80 AND ymouse>60 AND ymouse<180 THEN DY:=0; DX:=-1; END;
        IF xmouse>240 AND ymouse>60 AND ymouse<180 THEN DY:=0; DX:=1; END;
        IF xmouse>80 AND xmouse<240 AND ymouse<60 THEN DY:=-1; DX:=0; END;
        IF xmouse>80 AND xmouse<240 AND ymouse>180 THEN DY:=1; DX:=0; END;

        CASE
          IF matriz [YYP+1+DY, XXP+1+DX] == 0 OR matriz [YYP+1+DY, XXP+1+DX] == 3 THEN
            IF matriz [YYP+1,XXP+1] == 0 THEN BLIT_P(G5,XXP*16,YYP*16); END;
            IF matriz [YYP+1,XXP+1] == 3 THEN BLIT_P(G3,XXP*16,YYP*16); END;
            YYP := YYP+DY; XXP := XXP+DX;
            BLIT_P(G4,XXP*16,YYP*16);
            MOVI := MOVI + 1;
          END; //-----------------------------------
          IF ((matriz [YYP+1+DY,XXP+1+DX]==2) OR (matriz [YYP+1+DY,XXP+1+DX]==5)) AND ((matriz [YYP+1+2*DY,XXP+1+2*DX]==0) OR (matriz [YYP+1+2*DY,XXP+1+2*DX]==3)) THEN
            IF matriz [YYP+1,XXP+1] == 0 THEN BLIT_P(G5,XXP*16,YYP*16); END;
            IF matriz [YYP+1,XXP+1] == 3 THEN BLIT_P(G3,XXP*16,YYP*16); END;
            YYP := YYP+DY; XXP := XXP+DX;
            BLIT_P(G4,XXP*16,YYP*16);
            BLIT_P(G2,(XXP+DX)*16,(YYP+DY)*16);
            IF (matriz [YYP+1,XXP+1]==2) THEN matriz [YYP+1,XXP+1] := 0; ELSE matriz [YYP+1,XXP+1] := 3; END;
            IF (matriz [YYP+1+DY,XXP+1+DX]==0) THEN matriz [YYP+1+DY,XXP+1+DX] := 2; ELSE matriz [YYP+1+DY,XXP+1+DX] := 5; END;
            MOVI := MOVI + 1;
            PUSH := PUSH + 1;
          END; //-----------------------------------
        END;
Since Moves and Pushes are the same in each directions, this code is doing the trick without duplicating the code. It save about 20K in source code.

Patrice
“Everything should be made as simple as possible, but no simpler.” Albert Einstein
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
Sokoban game for HP Prime - ArielPalazzesi - 01-04-2014, 10:58 AM
RE: Sokoban game for HP Prime - Les_Koller - 01-04-2014, 10:39 PM
RE: Sokoban game for HP Prime - patrice - 01-05-2014, 09:11 AM
RE: Sokoban game for HP Prime - patrice - 01-05-2014, 11:01 AM
RE: Sokoban game for HP Prime - patrice - 01-05-2014 03:29 PM
Sokoban game for HP Prime - Dante - 01-09-2014, 03:36 PM
RE: Sokoban game for HP Prime - Tugdual - 01-10-2014, 09:59 PM
RE: Sokoban game for HP Prime - patrice - 01-14-2014, 11:25 AM
RE: Sokoban game for HP Prime - patrice - 01-14-2014, 05:42 PM
RE: Sokoban game for HP Prime - patrice - 01-15-2014, 08:37 AM
RE: Sokoban game for HP Prime - patrice - 01-27-2014, 11:21 PM
RE: Sokoban game for HP Prime - patrice - 02-24-2014, 04:05 PM
RE: Sokoban game for HP Prime - patrice - 03-10-2014, 05:15 AM
RE: Sokoban game for HP Prime - patrice - 03-10-2014, 11:50 AM
RE: Sokoban game for HP Prime - patrice - 03-10-2014, 06:24 PM
RE: Sokoban game for HP Prime - patrice - 03-14-2014, 11:56 PM
RE: Sokoban game for HP Prime - patrice - 05-30-2014, 09:28 PM
RE: Sokoban game for HP Prime - jonakeys - 03-04-2024, 06:52 PM
RE: Sokoban game for HP Prime - rprosperi - 03-04-2024, 11:01 PM
RE: Sokoban game for HP Prime - jonakeys - 03-05-2024, 06:17 PM



User(s) browsing this thread: 1 Guest(s)