ペグソリティアと呼ばれるパズルゲームです。This is a puzzle game called "peg solitaire".
盤面に複数の球が配置されているので、以下のルールで取り除いていき、最後の一個を盤の中央に残した状態にすればクリアとなります。There are several balls on the board. You remove them by following rule. If you leave only 1 ball on the center of the board, the puzzle is cleared.
ボードの種類は2種類(正方マスモード/六角マスモード)あり、それぞれ50パターンずつ問題を用意しました。There are 2 types of board: QUAD-mode and HEXA-mode. Each type has 50 patterns of puzzle.
最初はそれぞれ10パターンまでしか選択できませんが、パズルを解いていくうちに選択できるパターンは増えていきます。You can choose 10 patterns at first, but you can choose more patterns with your achievement.
初回起動時、いきなり「ファイルが見つかりません」と言われますが、気にせず「了解」を選択してください。盤面のグラフィックを作成するので時間がかかります。When launching at first time, a confirmation dialog "a file is not found" is shown. And it takes some time because of creating graphic data.
完了後、グラフィックデータを保存するかを聞かれるので、特に問題が無ければ「はい」を選択してください。Please accept to save graphic data after it's finished.
また、セーブデータが存在しない場合は、これまた「ファイルが見つかりません」と言われますが、気にせず「了解」を選択して先に進んでください。If save data doesn't exist, a confirmation dialog "a file is not found" is shown. Never mind it.
このゲームではタッチペンで操作します。パターン選択画面では、タッチペンで番号を選択してください。You can play this game by touch-pen. You choose pattern number by touch-pen in pattern select screen.
ゲーム画面では、タッチペンでボールを動かしてください。動かし方に問題が無ければ、飛び越えられた球は自動的に盤の外に取り除かれます。You move a ball by touch-pen in game screen. The jumped ball is removed automatically if your movement is correct.
選択したパターン番号の問題を開始します。Start the puzzle you chose.
パターン選択画面に移動します。Back to pattern select screen.
操作を一手戻します。Undo a step.
盤面を初期状態に戻します。Reset the puzzle.
現在までの進捗をセーブします。Save your achievement.
AN | アニメーション中か (0:してない 1:飛び越える 2:取り除く 3:元に戻る) |
AR | アニメーション進行度 (0:起点~2:終点) |
AS | アニメーションするスプライト番号 |
AV,AW | アニメーションの移動量÷2 |
AX,AY | アニメーションの起点座標 |
BA | 球の個数 (0の時はパターン選択中) |
BH$ | 操作手順の履歴情報 |
BP | 取り除いた球の個数 |
FD(,) | 盤面の状態 (-1:置けない 0:穴 1~:球のスプライト番号) |
IC | アイコンの状態 |
MA$() | 各種文字列、アスキーアート |
MC | 解いたパターンの数 |
MD | 盤面の種類 (0:QUADモード 1:HEXAモード) |
MK | 選択可能なパターン番号の上限 |
MN | パターン番号 |
MP$() | パターンデータ |
MQ | クリア済みか (0:未クリア 1~:クリア時間) |
MQ$ | 全パターンについて、クリア済みかの情報 |
MT | パズル開始からの経過時間 |
TE | 球を操作中か (0:してない 1:操作中) |
TS | 飛び越えられる球のスプライト番号 |
TV,TW | 操作中の球の移動方向 |
TX,TY | 操作中の球があった盤面上の位置 |
VE$ | バージョン番号 |
001. ′┌─────────────────────────┐Л 002. ′│ PRG:LASTONE by OBONO │Л 003. ′└─────────────────────────┘Л 004. Л 005. ACLSЛ 006. CLEARЛ 007. GPAGE 0,3,3Л 008. GCLSЛ 009. DIM FD(7,7)Л 010. VE$=”1.0”Л 011. SYSBEEP=0Л 012. GOSUB @INЛ 013. GOSUB @LDЛ 014. GPAGE 0,0,3Л 015. GOSUB @PTЛ 016. PNLTYPE ”OFF”Л 017. SYSBEEP=1Л 018. ICONSET 3,59Л 019. ON !BA GOSUB @MR,@PSЛ 020. Л 021. ′┝┸┝┸┝┸ MAIN LOOPЛ 022. Л 023. @LPЛ 024. VSYNC 1Л 025. ON TCHST+TE*2 GOSUB @TI,@TD,@TU,@TMЛ 026. MT=MT+(MT>58 AND MT<10861 AND BA>0)Л 027. IF !(MT%60) THEN T=MT/60:GOSUB @MZ:PNLSTR 26,2,T$,(MQ>0)*3Л 028. IC=ICONCHK()*!ANЛ 029. IF IC==3 THEN GOSUB @SVЛ 030. IF IC==2 THEN BEEP 4:ON !BP GOSUB @MS,@PSЛ 031. IF !BA AND TCHST THEN IC=1Л 032. IF IC==1 THEN BEEP 27-!BA*4:ON !BA GOSUB @HD,@PSЛ 033. GOTO @LPЛ 034. Л 035. ′┝┸┝┸┝┸ HANDLE TOUCH EVENTЛ 036. Л 037. @TI ′ЙЙЙ IDLEЛ 038. IF !AN THEN RETURNЛ 039. AR=AR+(.5-(AN==3))/4Л 040. IF AR<0 THEN AR=0Л 041. IF AR>2 THEN AR=2Л 042. GOSUB @ANЛ 043. IF !AR THEN GOSUB @AE:AN=0:RETURNЛ 044. IF AR<2 THEN RETURNЛ 045. GOSUB @AEЛ 046. BEEP 27Л 047. IF AN==1 THEN GOSUB @AO:RETURNЛ 048. AN=0Л 049. IF BP==BA-1 AND FD(3,3)>0 THEN GOSUB @MCЛ 050. RETURNЛ 051. Л 052. @TD ′ЙЙЙ DOWNЛ 053. IF AN THEN GOSUB @TI:RETURNЛ 054. GOSUB @CEЛ 055. IF !BA OR K<=0 THEN RETURNЛ 056. MT=MT+(MT==58)Л 057. TE=1Л 058. TS=KЛ 059. TX=JЛ 060. TY=IЛ 061. GOSUB @CDЛ 062. AX=XЛ 063. AY=YЛ 064. AS=KЛ 065. GOSUB @AIЛ 066. Л 067. @TM ′ЙЙЙ MOVEЛ 068. J=TXЛ 069. I=TYЛ 070. GOSUB @CDЛ 071. V=TCHX-X-8Л 072. W=TCHY-Y-8Л 073. ON MD GOSUB @AQ,@AHЛ 074. AR=SQR(V*V+W*W)/(24+MD*4)Л 075. J=J+TVЛ 076. I=I+TWЛ 077. GOSUB @CFЛ 078. TS=KЛ 079. J=J+TVЛ 080. I=I+TWЛ 081. GOSUB @CFЛ 082. IF K OR TS<=0 THEN TS=0Л 083. R=2-!TS/2Л 084. IF AR>R THEN AR=RЛ 085. GOSUB @ANЛ 086. RETURNЛ 087. Л 088. @TU ′ЙЙЙ UPЛ 089. IF !TS OR AR<.75 THEN AN=3 ELSE GOSUB @HA:AN=1Л 090. GOSUB @TIЛ 091. TE=0Л 092. RETURNЛ 093. Л 094. ′┝┸┝┸┝┸ ANIMATIONЛ 095. Л 096. @AQ ′ЙЙЙ VECTOR (QUAD)Л 097. IF ABS(V)>ABS(W) THEN TV=(V>0)*2-1:TW=0 ELSE TV=0:TW=(W>0)*2-1Л 098. AV=TV*24Л 099. AW=TW*24Л 100. RETURNЛ 101. Л 102. @AH ′ЙЙЙ VECTOR (HEXA)Л 103. IF ABS(V)>ABS(W)*2 THEN TV=(V>0)*2-1:TW=0 ELSE TW=(W>0)*2-1:TV=(W<0)-(V<0)Л 104. AV=TV*28+TW*14Л 105. AW=TW*24Л 106. RETURNЛ 107. Л 108. @AO ′ЙЙЙ VECTOR (OUTER)Л 109. J=TX+TVЛ 110. I=TY+TWЛ 111. GOSUB @CDЛ 112. AX=XЛ 113. AY=YЛ 114. I=BPЛ 115. GOSUB @COЛ 116. AV=(X-AX)/2Л 117. AW=(Y-AY)/2Л 118. AS=TSЛ 119. AR=0Л 120. AN=2Л 121. GOSUB @AIЛ 122. RETURNЛ 123. Л 124. @AI ′ЙЙЙ BEGINЛ 125. SPCHR AS,0,SPGETV(AS,0),0,0,2Л 126. RETURNЛ 127. Л 128. @AN ′ЙЙЙ MOVEЛ 129. X=AX+AV*ARЛ 130. Y=AY+AW*ARЛ 131. Z=(1-(AR-1)*(AR-1))*16Л 132. SPOFS AS,X,YЛ 133. SPOFS 0,X+Z,Y+ZЛ 134. RETURNЛ 135. Л 136. @AE ′ЙЙЙ ENDЛ 137. SPCHR AS,0,SPGETV(AS,0),0,0,3Л 138. SPOFS 0,0,0Л 139. RETURNЛ 140. Л 141. ′┝┸┝┸┝┸ CALCULATE COORDSЛ 142. Л 143. @CD ′ЙЙЙ LOGICAL → REALЛ 144. Y=I*24+16Л 145. IF MD THEN X=J*28+I*14-6 ELSE X=J*24+48Л 146. RETURNЛ 147. Л 148. @CE ′ЙЙЙ REAL → LOGICALЛ 149. I=FLOOR((TCHY-12)/24)Л 150. IF MD THEN J=FLOOR((TCHX-I*14+10)/28) ELSE J=FLOOR((TCHX-44)/24)Л 151. @CFЛ 152. IF I<0 OR I>6 OR J<0 OR J>6 THEN K=-1:RETURNЛ 153. K=FD(J,I)Л 154. RETURNЛ 155. Л 156. @CO ′ЙЙЙ OUTER CIRCLEЛ 157. D=I/6-.8Л 158. X=120+COS(D)*102Л 159. Y=88-SIN(D)*102Л 160. RETURNЛ 161. Л 162. ′┝┸┝┸┝┸ MANAGE MOVE HISTORYЛ 163. Л 164. @HA ′ЙЙЙ PUSHЛ 165. BH$=BH$+CHR$(TX+TY*8+48)+CHR$(TV+TW*4+53)+CHR$(TS+48)Л 166. FD(TX+TV*2,TY+TW*2)=FD(TX,TY)Л 167. FD(TX+TV,TY+TW)=0Л 168. FD(TX,TY)=0Л 169. BP=BP+1Л 170. IF BP==1 THEN GOSUB @MIЛ 171. RETURNЛ 172. Л 173. @HD ′ЙЙЙ POPЛ 174. GOSUB @HD2Л 175. S=HЛ 176. GOSUB @HD2Л 177. TV=(H%4)-1Л 178. TW=(H-TV-1)/4-1Л 179. GOSUB @HD2Л 180. TX=H%8Л 181. TY=(H-TX)/8Л 182. J=TXЛ 183. I=TYЛ 184. FD(J,I)=FD(J+TV*2,I+TW*2)Л 185. FD(J+TV,I+TW)=SЛ 186. FD(J+TV*2,I+TW*2)=0Л 187. GOSUB @CDЛ 188. SPOFS FD(J,I),X,YЛ 189. J=J+TVЛ 190. I=I+TWЛ 191. GOSUB @CDЛ 192. SPOFS S,X,YЛ 193. BP=BP-1Л 194. IF !BP THEN GOSUB @MIЛ 195. RETURNЛ 196. @HD2Л 197. H=ASC(RIGHT$(BH$,1))-48Л 198. BH$=LEFT$(BH$,LEN(BH$)-1)Л 199. RETURNЛ 200. Л 201. ′┝┸┝┸┝┸ SET UP BOARD PATTERNЛ 202. Л 203. @MS ′ЙЙЙ DECODEЛ 204. M$=MID$(MP$(MD*5+MN/10),MN%10*5,5)Л 205. BA=0Л 206. BP=0Л 207. BH$=””Л 208. K=1Л 209. L$=”@MS2”Л 210. GOSUB @MLЛ 211. MT=58Л 212. GOSUB @MTЛ 213. RETURNЛ 214. @MS2Л 215. K=K/2Л 216. IF K<1 THEN K=64:M=ASC(LEFT$(M$,1))-60:M=M-(M>66)*34:M$=MID$(M$,1,4)Л 217. IF M AND K THEN BA=BA+1:S=BA ELSE S=0Л 218. GOSUB @MOЛ 219. RETURNЛ 220. Л 221. @MR ′ЙЙЙ RESTOREЛ 222. L$=”@MR2”Л 223. GOSUB @MLЛ 224. FOR I=1 TO BPЛ 225. S=ASC(MID$(BH$,I*3-1,1))-48Л 226. GOSUB @MQЛ 227. GOSUB @COЛ 228. SPOFS S,X,YЛ 229. NEXTЛ 230. GOSUB @MTЛ 231. RETURNЛ 232. @MR2Л 233. GOSUB @LD2Л 234. S=MЛ 235. GOSUB @MOЛ 236. RETURNЛ 237. Л 238. @ML ′ЙЙЙ COMMON LOOPЛ 239. GPAGE 0,0,0Л 240. GPAGE 1,MD+1,MD+1Л 241. SPCLRЛ 242. SPSET 0,0,2,0,0,3Л 243. FOR I=0 TO 6Л 244. L=(I<2 OR I>4)*2Л 245. R=6-LЛ 246. IF MD THEN L=2-I/2:R=L+5:IF I%6==0 THEN L=L+2:R=R-2Л 247. FOR J=0 TO 6Л 248. IF J<L OR J>R THEN FD(J,I)=-1 ELSE GOSUB L$Л 249. NEXTЛ 250. NEXTЛ 251. RETURNЛ 252. Л 253. @MO ′ЙЙЙ SET BALL/EMPTYЛ 254. FD(J,I)=SЛ 255. IF S==0 THEN RETURNЛ 256. GOSUB @MQЛ 257. GOSUB @CDЛ 258. SPOFS S,X,YЛ 259. RETURNЛ 260. Л 261. @MQ ′ЙЙЙ SPRITE FOR BALLЛ 262. C=RND(1+MC/8)+3Л 263. SPSET S,0,C,0,0,3Л 264. SPSETV S,0,CЛ 265. RETURNЛ 266. Л 267. @MT ′ЙЙЙ INFORMATIONЛ 268. CLSЛ 269. COLOR (MC==100)*12Л 270. FOR I=0 TO 3Л 271. ? ” ”*9;MA$(I+2)Л 272. NEXTЛ 273. FOR I=0 TO 1Л 274. COLOR 9-I*5Л 275. LOCATE I*17+3,5Л 276. ? MA$(I)+”-mode”Л 277. NEXTЛ 278. MQ=ASC(MID$(MQ$,MD*50+MN,1))-48Л 279. C=(MQ>0)*3Л 280. PNLSTR 2,1,MA$(MD),CЛ 281. PNLSTR 2,2,”#”+RIGHT$(STR$(MN+101),2),CЛ 282. PNLSTR 26,1,”TIME”,CЛ 283. T=FLOOR(MT/60)Л 284. GOSUB @MZЛ 285. PNLSTR 26,2,T$,CЛ 286. IF MQ THEN PNLSTR 2,21,”BEST”,C:T=MQ:GOSUB @MZ:PNLSTR 2,22,T$,CЛ 287. GOSUB @MIЛ 288. RETURNЛ 289. Л 290. @MZ ′ЙЙЙ TIME STRINGЛ 291. IF T>180 THEN T$=”3:00+” ELSE T$=STR$(FLOOR(T/60))+”:”+RIGHT$(STR$(T%60+100),2)Л 292. RETURNЛ 293. Л 294. @MI ′ЙЙЙ ICONSЛ 295. IF BP THEN ICONSET 1,61-!BA*19 ELSE ICONCLR 1Л 296. ICONSET 2,62-!BP*20Л 297. RETURNЛ 298. Л 299. @MC ′ЙЙЙ PATTERN CLEARЛ 300. BA=0Л 301. FOR I=0 TO 3Л 302. PNLSTR 12,I+14,MA$(I+6),3Л 303. NEXTЛ 304. GOSUB @MIЛ 305. BEEP 39Л 306. T=FLOOR(MT/60)Л 307. IF T<MQ THEN PNLSTR 11,18,”NEW RECORD!”,3:GOSUB @MC2Л 308. IF MQ THEN RETURNЛ 309. GOSUB @MC2Л 310. GPAGE 0Л 311. I=MDЛ 312. J=MNЛ 313. GOSUB @PNЛ 314. MC=MC+1Л 315. IF MC%20==16 THEN GOSUB @PTЛ 316. RETURNЛ 317. @MC2Л 318. N=MD*50+MNЛ 319. MQ$=LEFT$(MQ$,N)+CHR$(T+48)+RIGHT$(MQ$,99-N)Л 320. RETURNЛ 321. Л 322. ′┝┸┝┸┝┸ PATTERN SELECTIONЛ 323. Л 324. @PT ′ЙЙЙ DRAW TABLEЛ 325. FOR I=0 TO 1Л 326. K=FLOOR((MC+4)/20)*10+9Л 327. IF K>49 THEN K=49Л 328. FOR J=MK TO KЛ 329. GOSUB @PNЛ 330. NEXTЛ 331. NEXTЛ 332. MK=KЛ 333. C=1Л 334. GOSUB @PCЛ 335. RETURNЛ 336. Л 337. @PS ′ЙЙЙ PREPARE SCREENЛ 338. CLSЛ 339. SPCLRЛ 340. ICONCLRЛ 341. FOR I=0 TO 1Л 342. GPAGE I,0,3-I*3Л 343. PNLSTR I*17+3,5,MA$(I)+”-mode”,9-I*5Л 344. ICONSET 2+I,33+I*26Л 345. NEXTЛ 346. C=(MC==100)*12Л 347. FOR I=0 TO 3Л 348. PNLSTR 9,I,MA$(I+2),CЛ 349. NEXTЛ 350. IF C THEN PNLSTR 11,22,”Completed!”,CЛ 351. PNLSTR 0,23,”Ver”+VE$,14Л 352. E=1Л 353. IF BA THEN BA=0:GOTO @PLЛ 354. N=MD*50+MNЛ 355. IF MN==MK OR MID$(MQ$,N,1)==”0” OR MID$(MQ$,N+1,1)!=”0” THEN @PLЛ 356. C=0Л 357. GOSUB @PCЛ 358. MN=MN+1Л 359. C=1Л 360. GOSUB @PCЛ 361. Л 362. @PL ′ЙЙЙ LOOPЛ 363. VSYNC 1Л 364. IC=ICONCHK()*!EЛ 365. IF TCHST AND !E THEN GOSUB @PPЛ 366. E=TCHSTЛ 367. IF IC==3 THEN GOSUB @SVЛ 368. IF IC!=2 THEN @PLЛ 369. BEEP 3Л 370. GOSUB @MSЛ 371. FOR I=0 TO 1Л 372. I=!TCHSTЛ 373. NEXTЛ 374. IC=0Л 375. RETURNЛ 376. Л 377. @PP ′ЙЙЙ HANDLE EVENTЛ 378. X=TCHXЛ 379. IF X>119 AND X<136 THEN RETURNЛ 380. I=(X>120)Л 381. J=FLOOR(X%136/24)+FLOOR((TCHY-48)/12)*5Л 382. IF J<0 OR J>MK THEN RETURNЛ 383. IF I==MD AND J==MN THEN IC=2:RETURNЛ 384. C=0Л 385. GOSUB @PCЛ 386. MD=IЛ 387. MN=JЛ 388. C=1Л 389. GOSUB @PCЛ 390. BEEP 27Л 391. RETURNЛ 392. Л 393. @PN ′ЙЙЙ NUMBERЛ 394. X=J%5*24+I*136Л 395. Y=FLOOR(J/5)*12+48Л 396. C=MID$(MQ$,I*50+J,1)!=”0”Л 397. GBOX X+1,Y+1,X+21,Y+9,6+I*5+C*16Л 398. GFILL X+2,Y+2,X+21,Y+9,5+I*5+C*16Л 399. GPUTCHR X+4,Y+2,”BGF”,48+(J+1)/10,C,1Л 400. GPUTCHR X+12,Y+2,”BGF”,48+(J+1)%10,C,1Л 401. RETURNЛ 402. Л 403. @PC ′ЙЙЙ CURSORЛ 404. X=MN%5*24+MD*136Л 405. Y=FLOOR(MN/5)*12+48Л 406. GBOX X,Y,X+22,Y+10,C*15Л 407. RETURNЛ 408. Л 409. ′┝┸┝┸┝┸ SERIALIZE STATEЛ 410. Л 411. @LD ′ЙЙЙ LOADЛ 412. LOAD ”MEM:”+PRGNAME$,0Л 413. IF !RESULT THEN MEM$=”0”*106Л 414. MQ$=LEFT$(MEM$,100)Л 415. N=100Л 416. GOSUB @LD2:MN=MЛ 417. GOSUB @LD2:MT=M*60+58Л 418. GOSUB @LD2:MD=MЛ 419. GOSUB @LD2:MC=MЛ 420. GOSUB @LD2:BA=MЛ 421. GOSUB @LD2:BP=MЛ 422. BH$=MID$(MEM$,139,99)Л 423. RETURNЛ 424. @LD2Л 425. M=ASC(MID$(MEM$,N,1))-48Л 426. N=N+1Л 427. RETURNЛ 428. Л 429. @SV ′ЙЙЙ SAVEЛ 430. BEEP 9Л 431. MEM$=MQ$+CHR$(MN+48)+CHR$(MT/60+48)+CHR$(MD+48)+CHR$(MC+48)+CHR$(BA+48)+CHR$(BP+48)Л 432. FOR I=0 TO 6Л 433. FOR J=0 TO 6Л 434. M=FD(J,I)Л 435. IF M>=0 THEN MEM$=MEM$+CHR$(FD(J,I)+48)Л 436. NEXTЛ 437. NEXTЛ 438. IF MD THEN MEM$=MEM$+”00”Л 439. MEM$=MEM$+BH$Л 440. SAVE ”MEM:”+PRGNAME$Л 441. WAIT 5Л 442. RETURNЛ 443. Л 444. ′┝┸┝┸┝┸ INITIALIZEЛ 445. Л 446. @INЛ 447. FOR I=0 TO 9Л 448. READ MP$(I),MA$(I)Л 449. NEXTЛ 450. V=7.5Л 451. W=7.5Л 452. Q=SQR(.5)Л 453. L$=”@RB”Л 454. GOSUB @RLЛ 455. SPPAGE 1Л 456. FOR I=0 TO 3Л 457. CHRSET ”SPS”,I,S$(I)Л 458. NEXTЛ 459. Л 460. G$=”GRP1:”+PRGNAME$Л 461. LOAD G$,0Л 462. IF !RESULT THEN GOSUB @RDЛ 463. GPAGE 1,2,3Л 464. GCOPY 1,0,0,255,191,0,0,1Л 465. MD=1Л 466. L$=”@RZ”Л 467. GOSUB @MLЛ 468. GFILL 0,0,15,15Л 469. GPAGE 1,1,3Л 470. MD=0Л 471. GOSUB @MLЛ 472. GFILL 0,0,15,15Л 473. Л 474. FOR I=0 TO 15Л 475. COLSET ”GRP”,I+32,HEX$(&HC05*I+&H1F0F,4)+”00”Л 476. COLSET ”SP”,I+32,”0”*6Л 477. NEXTЛ 478. FOR I=0 TO 12Л 479. FOR K=0 TO 2Л 480. IF !I THEN G=6 ELSE G=VAL(MID$(”738375372735”*2,I+8-K*4,1))Л 481. C(K)=G*4Л 482. G(K)=G*2Л 483. NEXTЛ 484. FOR J=0 TO 15Л 485. C$=””Л 486. FOR K=0 TO 2Л 487. IF J>12 THEN G=85-G(K)*5 ELSE G=G(K)Л 488. C(K)=C(K)+GЛ 489. C$=C$+HEX$(C(K),2)Л 490. NEXTЛ 491. COLSET ”SP”,I*16+J+48,C$Л 492. NEXTЛ 493. NEXTЛ 494. RETURNЛ 495. Л 496. ′┝┸┝┸┝┸ RENDER GRAPHICSЛ 497. Л 498. @RDЛ 499. FOR I=0 TO 3Л 500. ? ” ”*9;MA$(I+2)Л 501. NEXTЛ 502. COLOR 2Л 503. ?Л 504. ? ”Please Wait.”Л 505. ? ”○”*192Л 506. LOCATE 0,6Л 507. GPAGE 1,1,3Л 508. L$=”@RH”Л 509. GOSUB @RLЛ 510. V=127.5Л 511. W=95.5Л 512. L$=”@RG”Л 513. GOSUB @RLЛ 514. ? ”Done!”Л 515. ? ”Now, Accept to save the file.”Л 516. SAVE G$Л 517. RETURNЛ 518. Л 519. @RL ′ЙЙЙ COMMON LOOPЛ 520. FOR Y=-W TO WЛ 521. FOR X=-V TO VЛ 522. R=SQR(X*X+Y*Y)Л 523. GOSUB L$Л 524. NEXTЛ 525. IF V>8 THEN ? ”・”;Л 526. NEXTЛ 527. RETURNЛ 528. Л 529. @RB ′ЙЙЙ BALLЛ 530. C=0Л 531. P=R/8Л 532. IF P<1 THEN C=FLOOR((SQR(1-P*P)*Q-(X+Y)/R*P/2)*14+2):IF C<1 THEN C=1Л 533. I=(X>0)+(Y>0)*2Л 534. S$(I)=S$(I)+HEX$(C)Л 535. RETURNЛ 536. Л 537. @RH ′ЙЙЙ HOLEЛ 538. IF R<6 THEN P=-R/8:GOSUB @RPЛ 539. RETURNЛ 540. Л 541. @RG ′ЙЙЙ BOARDЛ 542. IF R>=120 THEN P=Q ELSE IF R>=108 OR R<96 THEN P=-R/1024 ELSE P=(102-R)/8Л 543. IF R<128 THEN GOSUB @RPЛ 544. RETURNЛ 545. Л 546. @RP ′ЙЙЙ COMMON GPSETЛ 547. C=SQR(1-P*P)*Q-(X+Y)/R*P/2Л 548. IF C<0 THEN C=0Л 549. GPSET X+V,Y+W,C*15+RND(16)/16+32Л 550. RETURNЛ 551. Л 552. @RZ ′ЙЙЙ PLACE HOLESЛ 553. GOSUB @CDЛ 554. GCOPY MD+1,0,0,15,15,X,Y,0Л 555. RETURNЛ 556. Л 557. ′┝┸┝┸┝┸ DATAЛ 558. Л 559. DATA @L<<<@tLL<<ハL<<<Ltレ<<<Luレ@tハt¦G、M・¥@ttt¦@Tヨl<<dレロニ,QUADЛ 560. DATA ワtレ<<@「ヒヘセ<Lレu¥<dハロセJdteセfレLロd@dレtD@レイレヲ<レレロニ@tロワ<,HEXAЛ 561. DATA jロワd<`ロワレヲスエロオメ@uワtヲkエレuニjロワMレA、イロpFdレuニAワtMpウンワLヲ,”┬”Л 562. DATA KワLヒ¥Gワロワ¦ワLワMレトlハUェ@イuンニウンワロpAvレtヲシdウ・ニRkイjツハTフr¦,”│ ┌┐┌┐┼ ┌┐┬┐┌┐”Л 563. DATA BTヤトハェマxスdロキモ`セォメフYニフXtマハjレハロニjロフロニンンオンセンヘンオレンンヘンレ,”│ ┌┤└┐│ ││││├┘”Л 564. DATA @T¥<<<Uカ<<@Tマ¦<<`ホA<<<¥Kホ@x=・<WT_セ<Fワマヲ¦<ンkミ<Wxマ~<,”┴┘└┘└┘└ └┘┴└└┘”Л 565. DATA フxマ¦<ネTアナ<エ`ーg¥ネクaウlQx_ネ¦@ワbs<<トアナ<?inソ¦Jyク¥<@yルタ<,” ┐”Л 566. DATA @iケ^<JyGナ<[yルテ<ンUKモ<ツナjn<fClqLFワメQ<Wトcロホゥュレモセトlソ。<,”┌┐│┌┐┌┐┬┐”Л 567. DATA BQoC¦ゥAlaセネ=ケニホByoチ<@yスミ<ネクモー<gGヨウョントByホエxノノ¥bQンgL,”│ │├┘┌┤│”Л 568. DATA FUンロ¦Jyコ[¦フTムナ<フWi・lナBZンホルナiオlンケIスホヤ{ユルセンyルヘホルンンロホ,”└┘┴└┘└┘┴”Л 569. Л 570. ′─────────────────────── EOFЛ
※コードのHTML生成にPTC2HTMLを使用しています。