PRG:47PZL
動いている様子はコチラ
セツメイEXPLANATION
いわゆる「15パズル」の類のパズルゲーム。1か所開いているスペースを利用してピースを移動させ、47枚のピースを左上から順に並べれば完成。This is a puzzle similar to "15-puzzle". Place 47 pieces in order by making sliding moves that use the empty space.
プログラムを開始するとすぐにシャッフルされた状態になる。画面をタッチしてピースを移動。パズルが完成したら、画面をタッチでする事でまたシャッフル。The pieces are shuffled when the program is started. You can slide by tapping the screen. After complete the puzzle, you can retry this by tapping.
数字盤の代わりに、任意の画像で遊ぶ事も可能。Lボタンを押しながらプログラムを開始するとファイル名を聞かれるので、キーボードからGRP/COLファイル名を入力。You can play using favorite picture instead of numbers. Start the program with pressing L button, and enter the file name of GRP/COL resources by the keyboard.
GRP/COLファイル作成には、Petitcom GRP Exporter が便利かも。Petitcom GRP Exporter may be useful to generate GRP/COL resources.
QRコードQR CODE
プログラムコードPROGRAM CODE
表示 Show
F | 着目しているピースの種類 |
F(,) | 盤面情報 |
G | ファイルを読み込んだか |
G$ | 読み込むファイル名 |
H | 1フレーム前のタッチ状態 |
I,J,K | 汎用ループカウンタ |
M | 正しい位置にあるピースの数 |
P,Q | スペースの位置 |
R | 盤から除いたピースの種類 |
S | スペースと移動起点の差分の量 |
T,U,Z | ピース描画時の座標 |
V,W | スペースと移動起点の差分の向き |
X,Y | 移動させる起点のピースの位置 |
01. @IЛ
02. ACLS:CLEAR:DIM F(8,6)PNLTYPE”OFF”GPAGE 1ON BUTTON()==256GOSUB@P,@GЛ
03. FOR I=0TO 47F(I%8,I/8)=I:NEXT:G=G$!=””P=7-G*RND(8)Q=5-G*RND(6)R=F(P,Q)F(P,Q)=-1Л
04. Y=Q:FOR I=0TO 99X=RND(8)GOSUB@S:Y=RND(6)GOSUB@S:NEXT:GOSUB@DЛ
05. @LЛ
06. X=TCHX/32OR 0Y=TCHY/32OR 0Л
07. IF!H*TCHST*(X!=P XOR Y!=Q)THEN BEEP 49ON Y!=Q GOSUB@H,@V:GOSUB@S:GOSUB@MЛ
08. H=TCHST:VSYNC 1IF M<47THEN@LЛ
09. F(P,Q)=R:BGMPLAY 5GOSUB@DЛ
10. FOR I=0TO 2I=I-(I%2!=TCHST)NEXT:GOTO@IЛ
11. @SЛ
12. V=SGN(P-X)W=SGN(Q-Y)IF V OR W THEN SWAP F(P,Q),F(P-V,Q-W)P=P-V:Q=Q-W:GOTO@SЛ
13. RETURNЛ
14. @MЛ
15. M=0FOR I=0TO 5FOR J=0TO 7M=M+(F(J,I)==I*8+J)NEXT:NEXT:RETURNЛ
16. @DЛ
17. FOR I=0TO 5FOR J=0TO 7F=F(J,I)T=F%8*32U=(56AND F)*4Л
18. GCOPY 2,T,U,T+31,U+31,J*32,I*32,1NEXT:NEXT:RETURNЛ
19. @HЛ
20. V=SGN(P-X)S=ABS(P-X)*32T=X*32-(V<0)*(S-32)U=Y*32FOR I=8TO 1STEP-1Z=T:IF V<0THEN Z=Z+S-IЛ
21. GCOPY T,U,T+S-1,U+31,T+V*I,U,1GFILL Z,U,Z+I-1,U+31T=T+V*I:I=I-(I==5)VSYNC 1NEXT:RETURNЛ
22. @VЛ
23. W=SGN(Q-Y)S=ABS(Q-Y)*32T=X*32U=Y*32-(W<0)*(S-32)FOR I=8TO 1STEP-1Z=U:IF W<0THEN Z=Z+S-IЛ
24. GCOPY T,U,T+31,U+S-1,T,U+W*I,1GFILL T,Z,T+31,Z+I-1U=U+W*I:I=I-(I==5)VSYNC 1NEXT:RETURNЛ
25. @PЛ
26. GPAGE 1,2,1GCLS:FOR I=0TO 5C=I+74FOR J=0TO 7F=I*8+J+1T=J*32U=I*32GFILL T,U,T+30,U+30,CЛ
27. C=C+6*(J<4)+36*(J>3)FOR K=0TO F>=1GPUTCHR!K*12+T+4,U+8,”BGF”,48+F%10,0,2F=F/10NEXTЛ
28. NEXT:NEXT:GPAGE 1,1,1RETURNЛ
29. @GЛ
30. ?”ファイルメイ”;:INPUT G$SYSBEEP=0LOAD”COL2:”+G$,0LOAD”GRP2:”+G$,0SYSBEEP=1IF RESULT THEN RETURN ELSE@GЛ
※コードのHTML生成にPTC2HTMLを使用しています。
モドル BACK