10種類のピースを、互いに重ならないように枠の中に納めるパズルゲームです。There are 10 different pieces. You must place all of them into the frame without overlapping.
タッチペンでピースを移動させます。選択中のピースの周りに表示されるアイコンをタッチする事で、ピースを回転したり反転したりできます。You can move a piece by touch-pen. Also, you can rotate or flip a piece by clicking the icon around it.
A | サブルーチンへのパラメータ渡し値 |
C,T,U | ピース形状解析用 |
F | タッチ座標にあるピース番号+1 |
F(,) | 画面の状態(ピース番号+1) |
G() | スプライト回転時の座標調整用 |
I,J | 汎用ループカウンタ |
K,L | タッチ座標を1/8して整数化 |
M | ピースの操作内容 |
P$() | ピースの形状データ |
P | 現在操作中のピース番号 |
Q | タッチ状態 |
R | ピースの回転状態計算用 |
R() | ピースの回転状態 |
S | カラーパレット変化用、他 |
S() | ピースのキャラクタ番号 |
S$ | 文字列出力用 |
V,W | 座標差分値計算用、他 |
X,Y | タッチ座標、他 |
X(),Y() | ピースの位置 |
Z | サブルーチンからのパラメータ戻り値、他 |
001. ′┌─────────────────────────┐Л 002. ′│ PRG:CHIE_PZL by OBONO │Л 003. ′└─────────────────────────┘Л 004. Л 005. ′┿ INITЛ 006. ACLS:CLEAR:DIM F(32,24)Л 007. FOR I=0 TO 7Л 008. READ S$:LOCATE 2,I+16:? S$;Л 009. NEXTЛ 010. GPAGE 1:SPPAGE 1Л 011. GFILL 84,52,163,131,13Л 012. GFILL 88,56,159,127,0Л 013. FOR I=18 TO 28Л 014. COLREAD(”SP”,I),X,Y,ZЛ 015. COLSET ”SP”,I,HEX$(X+80)+HEX$(Y+80)+HEX$(Z+80)Л 016. NEXTЛ 017. FOR I=4 TO 7:FOR J=6 TO 9Л 018. GPUTCHR J*16,I*16,”SPS”,208,0,1Л 019. NEXT:NEXTЛ 020. FOR I=0 TO 8Л 021. G(I)=3+(I<2)+(I==4)+(I>6)Л 022. NEXTЛ 023. FOR P=0 TO 9Л 024. READ P$(P)Л 025. X(P)=P%5*6+4:Y(P)=(P>4)*14+4Л 026. R(P)=0:S(P)=S:Z=4+(P<3)*4Л 027. SPSET P,S,0,0,0,3,Z*8,32Л 028. S=S+Z:GOSUB @PЛ 029. NEXTЛ 030. FOR I=10 TO 12Л 031. SPSET I,4,0,0,0,1Л 032. NEXTЛ 033. P=-1:GOSUB @C:GOSUB @JЛ 034. PNLTYPE ”OFF”:BGMPLAY 27Л 035. Л 036. ′┿ MAIN LOOPЛ 037. @LЛ 038. X=TCHX:Y=TCHY:Q=(Q*2+TCHST)%4Л 039. K=X/8 OR 0:L=Y/8 OR 0Л 040. ON Q GOSUB @I,@D,@U,@MЛ 041. S=MAINCNTL%20:IF S>9 THEN S=20-SЛ 042. COLSET ”SP”,30,HEX$(S+5)*6Л 043. VSYNC 1:GOTO @LЛ 044. Л 045. ′┿ IDLEЛ 046. @IЛ 047. RETURNЛ 048. Л 049. ′┿ DOWNЛ 050. @DЛ 051. FOR I=10 TO 12Л 052. IF SPHITRC(I,X,Y,1,1) THEN M=I-8Л 053. NEXTЛ 054. IF M THEN A=0:GOSUB @F:GOSUB @P:GOSUB @C:BEEP 40:RETURNЛ 055. F=F(K,L)Л 056. V=(X%8>3)*2-1:W=(Y%8>3)*2-1Л 057. IF !F AND K+V>0 AND K+V<31 THEN F=F(K+V,L)Л 058. IF !F AND L+W>0 AND L+W<23 THEN F=F(K,L+W)Л 059. IF P>=0 THEN GOSUB @P:P=-1:GOSUB @CЛ 060. P=F-1:IF P<0 THEN RETURNЛ 061. M=1:A=0:GOSUB @F:GOSUB @PЛ 062. V=X(P)-K:W=Y(P)-L:RETURNЛ 063. Л 064. ′┿ MOVEЛ 065. @MЛ 066. IF M!=1 THEN RETURNЛ 067. X=K+V:Y=L+WЛ 068. X=X+(X<4)*(4-X)+(X>28)*(28-X)Л 069. Y=Y+(Y<4)*(4-Y)+(Y>20)*(20-Y)Л 070. X(P)=X:Y(P)=Y:GOSUB @P:RETURNЛ 071. Л 072. ′┿ UPЛ 073. @UЛ 074. IF M==1 THEN BEEP 9Л 075. IF M>0 THEN M=0:GOSUB @JЛ 076. Л 077. ′┿ ICONSЛ 078. @CЛ 079. X=-32:Y=-32Л 080. IF P>=0 THEN X=X(P)*8:Y=Y(P)*8Л 081. FOR I=0 TO 2:Z=I==M-2Л 082. SPCHR I+10,82-I-!I*9,Z*7,0,0,1Л 083. SPOFS I+10,X+I*28+!I*76-60+Z,Y-I*28-!I*8+24+ZЛ 084. NEXT:RETURNЛ 085. Л 086. ′┿ PIECEЛ 087. @PЛ 088. R=R(P)Л 089. IF M==2 THEN R=(R+3)%4 OR (R AND 4)Л 090. IF M==3 THEN R=(R+4)%8 XOR !(R%2)*2Л 091. IF M==4 THEN R=(8-R)%8 XOR !(R%4)*4Л 092. R(P)=RЛ 093. SPCHR P,S(P),!!M,R>3,0,2+!MЛ 094. SPHOME P,(P<3)*16+(R>3)*8+12,12Л 095. SPOFS P,X(P)*8+G(R+1)+(R==4),Y(P)*8+G(R)Л 096. SPANGLE P,R%4*90,(M==2)*5,-1Л 097. IF M>2 THEN SPSCALE P,50:SPSCALE P,100,5Л 098. RETURNЛ 099. Л 100. ′┿ JUDGEЛ 101. @JЛ 102. A=1:Z=0:I=PЛ 103. FOR P=9 TO 0 STEP -1Л 104. GOSUB @FЛ 105. Z=Z+(X(P)%2+Y(P)%2*2==(P==2 OR P>7)*3)Л 106. NEXT:P=I:S$=” ”*9Л 107. IF Z==70 THEN A=0:GOSUB @P:P=-1:S$=”COMPLETED”:BEEP 32Л 108. PNLSTR 11,17,S$Л 109. IF P>=0 THEN GOSUB @FЛ 110. RETURNЛ 111. Л 112. ′┿ FLAGSЛ 113. @FЛ 114. R=R(P)%4Л 115. T=ABS(R-2)-1:U=ABS(R-1)-1Л 116. FOR J=0 TO 5Л 117. C=ASC(MID$(P$(P),J,1))-65Л 118. V=C%6-3:W=(C/6 OR 0)-1Л 119. IF R(P)>3 THEN V=-VЛ 120. X=X(P)+T*V+U*W:Y=Y(P)+T*W-U*VЛ 121. IF A AND X>10 AND Y>6 AND X<20 AND Y<16 THEN F=F(X,Y):Z=Z+(!F OR F==P+1)Л 122. F(X,Y)=A*(P+1)Л 123. NEXT:RETURNЛ 124. Л 125. DATA ”│ ─┼─ ─┼─ │ ┌──┐”Л 126. DATA ”├┼─ ┌─┐─┼─ ─┼─ │ │ ─┼─│ ”Л 127. DATA ”─┼┬─│ │─┼─ ─┼─┌─┼─┼─┐┌┼┐├──┐”Л 128. DATA ”─┘└─└─┘ ─────┐│ │ │ ││││├┐┌┘”Л 129. DATA ” ┌───┐ ──────┼├─┼─┼─┤││││││ ”Л 130. DATA ” ├───┤ ─────┘│ │ │ │││ │└┼┐”Л 131. DATA ” │ │ ││└─└──│ │ │ │││ │┌┘│”Л 132. DATA ” └───┘ ┘└────┘└─┴─┴─┘ └ ┘┘ └”Л 133. DATA BCDEFG,BDEFII,BFIJKK,DFIKKK,DEFIPP,FIKPPP,DFKPPP,FKPUUU,DIJKPP,DKPUUUЛ 134. Л 135. ′─────────────────────── EOFЛ
※コードのHTML生成にPTC2HTMLを使用しています。
SPS |