9枚のカードを絵柄が合うように3x3に配置するパズルゲームです。This is an edge-matching puzzle. Place 9 cards into a 3x3 matrix, matching marks on their edges.
タイトル画面で2種類の難易度(易しい/難しい)を選べます。セーブ機能があり、前回の続きから遊ぶこともできます。You can choose difficulty level: easy or hard. Also you can continue the puzzle if you save it.
タップでカードを回転させ、スライド操作でカードを移動できます。You can rotate a card by tapping, move a card by sliding.
タイトル画面に戻ります。Back to title screen.
現在の状態をセーブします。Save current status.
CA(,) | カード情報 |
FB,FH,FL,FR,FT,FW | 注目する盤面の範囲 |
FD(,) | 盤面情報 |
FE | コンティニュー可能か (1:可能, 0:不明, -1:不可能) |
FX,FY | タッチ地点の配列上での位置 |
MC | 操作中のカードの種類 |
MD | 操作中のカードの回転の向き |
MX,MY | 操作中のカードの配列上での位置 |
LP | メインループのフラグ |
P$ | マーク画像のパターン |
PN | タイトル画面で選択された項目 (0:Easy, 1:Hard, 2:Continue) |
TC | 1フレーム前のタッチの状態 |
TI | 右下アイコンのタッチ状態 |
TX,TY | タッチ地点の相対的な位置 |
001. ′┌─────────────────────────┐Л 002. ′│ PRG:9CARDS by OBONO │Л 003. ′└─────────────────────────┘Л 004. Л 005. GOSUB @INЛ 006. @GTЛ 007. GOSUB @OPЛ 008. LP=1Л 009. TC=0Л 010. BGMPLAY 27Л 011. @GMЛ 012. ON TCHST GOSUB @TR,@TPЛ 013. TI=ICONCHK()Л 014. VSYNC 1Л 015. IF TI==2 THEN BGMSTOP:BEEP 4:LP=0Л 016. IF TI==3 THEN GOSUB @PZЛ 017. ON LP GOTO @GT,@GMЛ 018. GOSUB @EDЛ 019. GOTO @GTЛ 020. Л 021. ′┿ HANDLE TOUCHЛ 022. Л 023. @TPЛ 024. Л 025. X=TCHXЛ 026. Y=TCHYЛ 027. X=X+(X<38)*(38-X)-(X>217)*(X-217)Л 028. Y=Y+(Y<6)*(6-Y)-(Y>185)*(Y-185)Л 029. TX=FLOOR((X+FW*18-110)/36)Л 030. TY=FLOOR((Y+FH*18-78)/36)Л 031. FX=(FL+TX+5)%5Л 032. FY=(FT+TY+5)%5Л 033. IF TC THEN @TP0Л 034. IF X<40 OR X>215 OR Y<8 OR Y>183 THEN RETURNЛ 035. MX=FXЛ 036. MY=FYЛ 037. F=FD(MX,MY)Л 038. IF F<0 THEN RETURNЛ 039. MD=F%4Л 040. MC=(F-MD)/4Л 041. SPCHR MC,MC*4,3,0,0,2Л 042. @TP0Л 043. TC=TC+1Л 044. IF TC>5 THEN SPOFS MC,X,YЛ 045. RETURNЛ 046. Л 047. @TRЛ 048. Л 049. IF !TC THEN RETURNЛ 050. SPCHR MC,MC*4,3,0,0,3Л 051. ON (TC>5) GOSUB @FD,@FSЛ 052. Z=6Л 053. GOSUB @FAЛ 054. TC=0Л 055. IF FW!=2 OR FH!=2 THEN RETURNЛ 056. H=1Л 057. FOR I=0 TO 2Л 058. FOR J=0 TO 2Л 059. GOSUB @FCЛ 060. A1=CA(C,(6-D)%4) XOR 1Л 061. A2=CA(C,(5-D)%4) XOR 1Л 062. IF I<2 THEN I=I+1:GOSUB @FC:I=I-1:H=H*(CA(C,(4-D)%4)==A1)Л 063. IF J<2 THEN J=J+1:GOSUB @FC:J=J-1:H=H*(CA(C,(3-D)%4)==A2)Л 064. NEXTЛ 065. NEXTЛ 066. IF H THEN GOSUB @ED:LP=0Л 067. RETURNЛ 068. Л 069. ′┿ FIELDЛ 070. Л 071. @FDЛ 072. Л 073. FD(MX,MY)=MC*4+(MD+1)%4Л 074. BEEP 40Л 075. RETURNЛ 076. Л 077. @FSЛ 078. Л 079. IF FD(FX,FY)>=0 THEN RETURNЛ 080. SWAP FD(FX,FY),FD(MX,MY)Л 081. BEEP 9Л 082. IF TX<0 THEN FL=FL+TXЛ 083. IF TY<0 THEN FT=FT+TYЛ 084. IF TX>FW THEN FR=FR+TX-FWЛ 085. IF TY>FH THEN FB=FB+TY-FHЛ 086. Л 087. @FQЛ 088. Л 089. FL=(FL+5)%5Л 090. FT=(FT+5)%5Л 091. FR=(FR+5)%5Л 092. FB=(FB+5)%5Л 093. L=5:T=5:R=5:B=5Л 094. FOR I=0 TO 4Л 095. L=L-(FD(FL,I)<0)Л 096. T=T-(FD(I,FT)<0)Л 097. R=R-(FD(FR,I)<0)Л 098. B=B-(FD(I,FB)<0)Л 099. NEXTЛ 100. FL=FL+!LЛ 101. FT=FT+!TЛ 102. FR=FR-!RЛ 103. FB=FB-!BЛ 104. IF !L+!T+!R+!B THEN @FQЛ 105. FW=(FR-FL+5)%5Л 106. FH=(FB-FT+5)%5Л 107. RETURNЛ 108. Л 109. @FAЛ 110. Л 111. FOR I=0 TO FHЛ 112. FOR J=0 TO FWЛ 113. GOSUB @FCЛ 114. X=127-FW*18+J*36+(D<1)+(D>2)Л 115. Y=95-FH*18+I*36+(D<2)Л 116. IF C>=0 THEN SPOFS C,X,Y,Z:SPANGLE C,D*90,ZЛ 117. NEXTЛ 118. NEXTЛ 119. RETURNЛ 120. Л 121. @FCЛ 122. Л 123. F=FD((FL+J)%5,(FT+I)%5)Л 124. D=F%4Л 125. C=(F-D)/4Л 126. RETURNЛ 127. Л 128. ′┿ PUZZLEЛ 129. Л 130. @PNЛ 131. Л 132. FOR I=0 TO 8Л 133. A=RND(8)Л 134. CA(I,0)=A XOR 1Л 135. Z=I<3Л 136. CA(I-3+Z*9,2)=(A+Z*(RND(7)+1)*PN)%8Л 137. A=RND(8)Л 138. CA(I,3)=A XOR 1Л 139. Z=!(I%3)Л 140. CA(I-1+Z*3,1)=(A+Z*(RND(7)+1)*PN)%8Л 141. NEXTЛ 142. FOR I=0 TO 24Л 143. FD(I%5,I/5)=-4Л 144. NEXTЛ 145. FOR I=0 TO 8Л 146. FD(I%3,I/3)=I*4Л 147. C=RND(8):C=C+(C>=I)Л 148. D=RND(4)Л 149. FOR J=0 TO 3Л 150. SWAP CA(I,J),CA(C,(J+D)%4)Л 151. NEXTЛ 152. NEXTЛ 153. FL=0Л 154. FT=0Л 155. FR=2Л 156. FB=2Л 157. FW=2Л 158. FH=2Л 159. FE=1Л 160. RETURNЛ 161. Л 162. @PRЛ 163. Л 164. B=SYSBEEPЛ 165. SYSBEEP=0Л 166. IF !FE THEN LOAD ”MEM:”+PRGNAME$,0:FE=-!RESULTЛ 167. SYSBEEP=BЛ 168. IF FE THEN RETURNЛ 169. L=0Л 170. FOR I=0 TO 8Л 171. FOR J=0 TO 3Л 172. GOSUB @PR0:CA(I,J)=ZЛ 173. NEXTЛ 174. NEXTЛ 175. FOR I=0 TO 4Л 176. FOR J=0 TO 4Л 177. GOSUB @PR0:FD(I,J)=ZЛ 178. NEXTЛ 179. NEXTЛ 180. GOSUB @PR0:FL=Z:FR=Z-1Л 181. GOSUB @PR0:FT=Z:FB=Z-1Л 182. GOSUB @FQЛ 183. FE=1Л 184. RETURNЛ 185. @PR0Л 186. Z=ASC(MID$(MEM$,L,1))-48Л 187. L=L+1Л 188. RETURNЛ 189. Л 190. @PZЛ 191. Л 192. MEM$=””Л 193. FOR I=0 TO 8Л 194. FOR J=0 TO 3Л 195. MEM$=MEM$+STR$(CA(I,J))Л 196. NEXTЛ 197. NEXTЛ 198. FOR I=0 TO 4Л 199. FOR J=0 TO 4Л 200. MEM$=MEM$+CHR$(FD(I,J)+48)Л 201. NEXTЛ 202. NEXTЛ 203. MEM$=MEM$+STR$(FL)+STR$(FT)Л 204. SAVE ”MEM:”+PRGNAME$Л 205. RETURNЛ 206. Л 207. @PSЛ 208. Л 209. FOR I=0 TO 8Л 210. FOR J=0 TO 15Л 211. Z=ASC(MID$(”?BC?]??L_??N?PQ?”,J,1))-64Л 212. IF Z<0 THEN P=64 ELSE P=(CA(I,Z/8) XOR Z<16)*8+Z%8Л 213. CHRSET ”SPS”,I*16+J,P$(P)Л 214. NEXTЛ 215. SPSET I,I*4,3,0,0,3,32,32Л 216. SPHOME I,16,16Л 217. NEXTЛ 218. ICONSET 2,61Л 219. ICONSET 3,59Л 220. Z=0Л 221. GOSUB @FAЛ 222. RETURNЛ 223. Л 224. ′┿ SCREENSЛ 225. Л 226. @OPЛ 227. Л 228. SPCLRЛ 229. ICONCLR 2Л 230. L$=”9cards”Л 231. X=54Л 232. Y=42Л 233. GOSUB @LLЛ 234. Y=-1Л 235. @OP0Л 236. PN=YЛ 237. FOR I=0 TO 2Л 238. L$=MID$(”New Game(Easy)New Game(Hard) Continue ”,I*14,14)Л 239. C=(I*3+6+(FE*I<-1)*2)*(I!=PN)Л 240. PNLSTR 6,I*3+12,”┌”+”─”*18+”┐”,CЛ 241. PNLSTR 6,I*3+13,”│ ”+L$+” │”,CЛ 242. PNLSTR 6,I*3+14,”└”+”─”*18+”┘”,CЛ 243. NEXTЛ 244. @OP1Л 245. TC=TCHSTЛ 246. IF !TC THEN ON PN>=0 GOTO @OP1,@OP2Л 247. IF ICONCHK()==3 THEN GOSUB @PZЛ 248. X=TCHXЛ 249. Y=FLOOR(TCHY/24)-4Л 250. IF X<48 OR X>207 OR Y<0 OR Y>2-(FE<0) THEN Y=-1Л 251. VSYNC 1Л 252. ON Y==PN GOTO @OP0,@OP1Л 253. @OP2Л 254. ON PN<2 GOSUB @PR,@PNЛ 255. Y=-1Л 256. IF FE!=1 THEN @OP0Л 257. BEEP 3Л 258. CLSЛ 259. GCLSЛ 260. GOSUB @PSЛ 261. RETURNЛ 262. Л 263. @EDЛ 264. Л 265. ICONCLRЛ 266. VSYNC 12Л 267. BGMPLAY 5Л 268. FOR H=0 TO 1Л 269. FOR I=0 TO 2Л 270. FOR J=0 TO 2Л 271. GOSUB @FCЛ 272. SPANGLE C,(D+H*2+2)%4*90,27Л 273. IF H THEN SPSCALE C,200,27 ELSE SPOFS C,64+J*63+(D<1)+(D>2),32+I*63+(D<2),54Л 274. VSYNC 3Л 275. NEXTЛ 276. NEXTЛ 277. NEXTЛ 278. VSYNC 30Л 279. X=20Л 280. Y=162Л 281. L$=”Exellent!”Л 282. GOSUB @LLЛ 283. FOR I=0 TO 1Л 284. I=I-(TCHST==I)Л 285. VSYNC 1Л 286. NEXTЛ 287. GCLSЛ 288. FE=-1Л 289. BEEP 4Л 290. RETURNЛ 291. Л 292. @LLЛ 293. Л 294. FOR I=0 TO LEN(L$)-1Л 295. FOR J=0 TO 3Л 296. GPUTCHR X+I*24+(J<2)*2,Y-J%2*2,”BGF”,ASC(MID$(L$,I,1)),5-(J>2),4Л 297. NEXTЛ 298. NEXTЛ 299. RETURNЛ 300. Л 301. ′┿ INITЛ 302. Л 303. @INЛ 304. Л 305. CLEARЛ 306. DIM FD(5,5),CA(9,4),P$(65)Л 307. ACLSЛ 308. PNLTYPE ”OFF”Л 309. GPAGE 1Л 310. GPRIO 0Л 311. BGPAGE 1Л 312. SPPAGE 1Л 313. BGFILL 0,0,0,32,23,”82C592A5”Л 314. BGFILL 0,5,1,26,22,0Л 315. Л 316. @PTЛ 317. Л 318. FOR I=0 TO 3Л 319. FOR J=0 TO 3Л 320. FOR K=0 TO 3Л 321. ON !K GOSUB @PT1,@PT0Л 322. P=(J+K)%4Л 323. P$(I*16+K*4+P XOR P>1)=P$Л 324. NEXTЛ 325. NEXTЛ 326. NEXTЛ 327. P$(64)=”D”*64Л 328. RETURNЛ 329. @PT0Л 330. READ D$Л 331. P$=””Л 332. FOR L=0 TO 21Л 333. Z=ASC(MID$(D$,L,1))-63Л 334. FOR M=(L>20)*2 TO 2Л 335. P=Z AND 3Л 336. P$=P$+HEX$(P+I*3+!P*(13-I*3))Л 337. Z=Z/4Л 338. NEXTЛ 339. NEXTЛ 340. RETURNЛ 341. @PT1Л 342. D$=P$Л 343. P$=””Л 344. FOR Y=0 TO 7Л 345. FOR X=0 TO 7Л 346. P$=P$+MID$(D$,56-X*8+Y,1)Л 347. NEXTЛ 348. NEXTЛ 349. RETURNЛ 350. Л 351. DATA ??C?O@?d?[F?¦B[~?¦NOvB,D?_E?gE?i@Oi@cY?fEohE?,ZYofE{hE~hp^it^Y~^PTD?,O]LsVR}~sV^~XT}POTC???Л 352. DATA ?ODShUiiTYDTxRu~cuNh¦B,D?_U?ST?}^o~^W¦FX~P¦V?,~~et~d¦^X~V¦^{n@UDO???,cuNh¦RY~hu^d¦VT~O¦JOT@Л 353. DATA ?ODOTBX}cuNX}fu~h¦^Y~B,T?o^@{~@f~PU~du^hu`hD?,VPpV¥{~F~~PnDWT?Y@O@??,hx^i¦Ri¦ciHci@ci?SI?O@Л 354. DATA ?SDT}v~~t^D¦fP~hs^I¦fA,T@o^D{^E~fe~ht^Y¦fU~h@,~eu^i¦hYeiPiEgU?T?????,s^E¦VQ~~s~^nUTTiSiIOT@Л 355. Л 356. ′─────────────────────── EOFЛ
※コードのHTML生成にPTC2HTMLを使用しています。