PRG:SLIDE
セツメイEXPLANATION
シンプルなパズルゲームです。全100パターン。This is a simple puzzle game. There are 100 patterns.
5×5マスのフィールドには、"Z"が描かれたパネル、矢印が描かれたパネル、空のパネルが配置されています。There are a "Z" panel, arrow-panels and empty-panels in the 5x5 grid field.
矢印パネルをタップすると、その矢印パネルは空パネルになり、矢印の方向に横1列または縦1列が1マス分スライドします。フィールド外に出て行ったパネルは反対側から出てきます。If you tap an arrow-panel, it becomes an empty-panel and its row or column is slid in the direction of its arrow. A panel going out of field appears from opposite.
スライドした際、その列がすべて空パネルだった場合、空転操作と判定されてしまいます。(その際、画面に "IDLED.." と表示される)If there are only empty-panels on the sliding row or column, it is an idling slide. ( and "IDLED.." message is displayed. )
このスライドのルールを用いて、If it fulfills following conditions:
- 空転操作なしに、No idling slide.
- 全ての矢印パネルを使用して、No other arrow-panels.
- フィールドの左上にある"Z"パネルを右下に移動"Z" panel is at the right-bottom corner.
させればクリアです。Then the pattern is cleared.
フィールドを初期状態に戻します。Reset the pattern.
パズルのパターン番号を変更します。Change the pattern.
現在までの進捗をセーブします。Save your achievement.
QRコードQR CODE
プログラムコードPROGRAM CODE
表示 Show
A | 空転操作していないか |
C | パネルのカラーパレット番号 |
F | アニメーション処理時のスプライトID |
F(,) | フィールドの状態(スプライトID) |
F$ | パズルのパターンデータ |
I | 汎用ループカウンタ |
K | 各種判定用 |
L | 1フレーム前のタッチの状態 |
M$ | 進捗状況の保存先ファイル名 |
N | 矢印パネルの枚数 |
P,Q | アニメーション処理時のパネルの座標 |
R | パズルのパターン番号 |
S | パズルのパターン復号処理用 |
S() | パネルの種類(スプライトIDに対して) |
T | 現在のタッチの状態 |
U | アニメーション処理用スプライトID |
V,W | パネルの移動方向 |
X,Y | パネルの座標(パターン復号時、ゲーム中) |
Z | アニメーション処理時のパネル移動速度 |
01. ACLS:CLEAR:DIM F(5,5),S(26)SPPAGE 1BGPAGE 1PNLTYPE”OFFЛ
02. M$=”MEM:”+PRGNAME$LOAD M$,0IF!RESULT THEN MEM$=”0”*101Л
03. BGFILL 0,0,0,31,23,14BGFILL 0,6,0,25,19,0R=ASC(MID$(MEM$,100,1))-48Л
04. ICONSET 0,62ICONSET 1,47ICONSET 2,45ICONSET 3,59BGMPLAY 27Л
05. @RЛ
06. X=0Y=0S=0N=24A=1C=R/20+10MEM$=SUBST$(MEM$,100,1,CHR$(R+48))CHRREAD(”SPS”,R/4+96),F$Л
07. FOR I=0TO 24IF I%3==1THEN S=VAL(”&H”+MID$(F$,R%4*16+I/3*2,2))Л
08. F(X,Y)=I:S(I)=S%5+!I*5N=N-!S(I)SPSET I,S(I)*4,C,0,0,3,32,32SPOFS I,X*32+48,Y*32Л
09. S=S/5OR 0X=(X+1)%5Y=Y+!X:NEXTЛ
10. SPSET 25,0,C,0,0,3,32,32U=25BEEP 9CLSЛ
11. @EЛ
12. K=VAL(MID$(MEM$,R,1))PNLSTR 6,22,”#”+RIGHT$(STR$(R+1001),3)+” И”*K,K*3Л
13. @LЛ
14. X=(TCHX-48)/32OR 0Y=TCHY/32OR 0K=ICONCHK()L=T:T=TCHSTЛ
15. VSYNC 1IF K==3THEN SAVE M$GOTO@LЛ
16. IF K>=0THEN R=(R+(K==2)+(K==1)*99)%100GOTO@RЛ
17. IF!T+L OR X<0OR X>4OR Y<0OR Y>4THEN@LЛ
18. IF!(S(F(X,Y))%5)THEN@LЛ
19. F=F(X,Y)S=S(F)V=(S==1)-(S==2)W=(S==3)-(S==4)Л
20. K=0FOR I=0TO 4K=K+!S(F(I*!W+X*!V,I*!V+Y*!W))NEXTЛ
21. N=N-1BEEP 29+(K==4)*11IF K==4THEN A=0PNLSTR 13,22,”IDLED..”,2Л
22. S(F)=0SPCHR F,0IF V THEN X=2+V*2ELSE Y=2+W*2Л
23. S(U)=S(F(X,Y))SPCHR U,S(U)*4SPOFS U,(X-V*5)*32+48,(Y-W*5)*32Л
24. SWAP U,F(X,Y)FOR I=0TO 3SWAP F(X,Y),F(X-V,Y-W)X=X-V:Y=Y-W:NEXTЛ
25. FOR Z=8TO 1STEP -1FOR I=0TO 4F=F(I*!W+X*!V,I*!V+Y*!W)GOSUB@M:NEXT:F=U:GOSUB@M:Z=Z-(Z==5)VSYNC 1NEXTЛ
26. IF!N*A*S(F(4,4))<5THEN@LЛ
27. BEEP 32MEM$=SUBST$(MEM$,R,1,”1”)PNLSTR 13,22,”CLEAR!”,12GOTO@EЛ
28. @MЛ
29. SPREAD(F),P,Q:SPOFS F,P+V*Z,Q+W*Z:RETURNЛ
※コードのHTML生成にPTC2HTMLを使用しています。
SPS | |
モドル BACK