PRG:HNKN_BM
セツメイEXPLANATION
画面内に9種類のピースが各8つずつ、計72個のピースがランダムに配置される。There are 72 objects (8 objects by 9 types) in the field randomly.
同じピースをペアで取り除いていくのが目的。以下の条件のうち少なくとも一つを満たしていないと取り除けない。You remove whole objects by pairs of same type with following rules:
- ピースが縦か横に隣接しているObjects of the pair are neighbor.
- ピースが上下左右の同じ端を共有しているOr they are on the same edge of field.
- ピースが同じ列もしくは同じ行にあり、その間に別のピースが存在しないOr there are no other objects if they are on the same row or column.
- ピースを横方向と縦方向に沿って1回だけ曲がったL字型の経路について、その間に別のピースが存在しないOr there are no other objects in the L-shaped path connecting them.
取り除く際、ふたつのピースの距離の二乗×10点が入る。手詰まりになっても自動判定しない。You get square of objects' distance x 10 points. You must judge whether there is no move by yourself, not automatically.
タッチ操作で取り除くピースを選択。Aボタンで同じパターンでやり直し、Bボタンで新規パターンでやり直し。Touch objects to remove by touch pen. You can retry the same pattern by A button, or the other pattern by B button.
QRコードQR CODE
プログラムコードPROGRAM CODE
表示 Show
A,B,Z | 取り除けるかの判定用 |
C | ピースの色 |
E | ボタンの状態 |
F | ピースの種類 |
F(,) | 現在の盤面状態 |
I | 汎用ループカウンタ |
J | 取り除けるかの判定結果 など |
K | 得点 |
L,V,W | ふたつのピースの位置の差分 |
M(,) | 盤面状態のマスター |
N | 残りのピースの数 |
P,Q | 1つ目に選んだピースの座標 |
R,S | 2つ目に選んだピースの座標 |
X,Y | 汎用座標値 |
01. ACLS:CLEARЛ
02. DIM M(9,8),F(9,8)SPPAGE 1BGMPLAY 27PNLTYPE”OFFЛ
03. FOR I=0TO 7FOR J=0TO 8M(J,I)=J+49NEXT:NEXTЛ
04. @IЛ
05. IF!(16AND E)THEN FOR I=0TO 999SWAP M(RND(9),RND(8)),M(RND(9),RND(8))NEXTЛ
06. BEEP 28K=0N=72E=0FOR I=0TO 7FOR J=0TO 8S=J+I*9F=M(J,I)F(J,I)=FЛ
07. SPSET S,F,F%16+2,0,0,3SPOFS S,J*20+40,I*20+18NEXT:NEXT:CLSЛ
08. @LЛ
09. PNLSTR 5,0,”SCORE ”+STR$(K*10)Л
10. GOSUB@T:IF E THEN@IЛ
11. P=X:Q=Y:BEEP 9GOSUB@WЛ
12. GOSUB@T:IF E THEN@IЛ
13. R=X:S=Y:V=ABS(P-R)W=ABS(Q-S)L=V+W-1GOSUB@WЛ
14. C=1IF L<0THEN GOSUB@S:BEEP 9GOTO@LЛ
15. A=-F:FOR I=0TO L:Z=SGN(P-X)X=X+Z:Y=Y+!Z*SGN(Q-Y)A=A+F(X,Y)NEXTЛ
16. B=-F:FOR I=0TO L:Z=SGN(R-X)X=X+Z:Y=Y+!Z*SGN(S-Y)B=B+F(X,Y)NEXTЛ
17. J=(!A+!B+!L+(P==R)*!(P%8)+(Q==S)*!(Q%7))*(F==F(P,Q))Л
18. BEEP!J+3IF J THEN F(P,Q)=0F(R,S)=0N=N-2K=K+V*V+W*WЛ
19. X=P:Y=Q:GOSUB@SЛ
20. X=R:Y=S:GOSUB@SЛ
21. IF!N THEN BEEP 32PNLSTR 16,23,”COMPLETED!!”,12Л
22. GOTO@LЛ
23. @TЛ
24. VSYNC 1X=(TCHX-38)/20OR 0Y=(TCHY-16)/20OR 0E=BTRIG()AND 48IF E THEN RETURNЛ
25. IF(X>=0)*(X<9)*(Y>=0)*(Y<8)*TCHST THEN IF F(X,Y)THEN RETURNЛ
26. GOTO@TЛ
27. @WЛ
28. C=0GOSUB@SЛ
29. FOR I=0TO 1I=!TCHST:NEXTЛ
30. RETURNЛ
31. @SЛ
32. F=F(X,Y)SPCHR X+Y*9,F,C*(F%16+2),0,0,3RETURNЛ
※コードのHTML生成にPTC2HTMLを使用しています。
モドル BACK