ä»åã¯ãæè»œã«äœã£ãŠéã¹ã15ããºã«ãäœã£ãŠã¿ãŸãããããªã§ãã3ãªããã©ãŠã¶ã§åãã®ã§ãã²ãŒã ã®ã«ãŒã«ãã¹ããŒãžãèªåã§äœã£ãŠã¿ããªã«éãã§ããããŸãããã
15ããºã« - ã²ãŒã ã®ã«ãŒã«
ä»åäœãããºã«ã²ãŒã ã¯ã15ããºã«ã§ãã15ããºã«ãšããã®ã¯ãã¹ã©ã€ãããºã«ïŒãŸãã¯ãã¹ã©ã€ãã£ã³ã°ããºã«ïŒãšåŒã°ããã²ãŒã ã®äžçš®ã§ããç»é¢ã«4Ã4ã®ãããã¯ãããããã®ãã¡1ã€ã®ãããã¯ã空ã®ç¶æ ã«ãªã£ãŠããŸãã
ãããŠãåãããã¯ã«ã¯1ãã15ãŸã§ã®æ°åãæãããŠããŸãã空ã®ãããã¯ã®äžäžå·Šå³ã«ãããããã¯ã空ã®ãããã¯ã«åããããšãã§ããŸããã²ãŒã ãéå§ãããšãããã®çªå·ã¯ã©ã³ãã ã«ã·ã£ããã«ãããŸããããã§ã空ãã®éšåãæŽ»ãããŠããããã¯1ãã15ãŸã§ãé çªã«å·Šäžããå³äžãžãšç¶ºéºã«äžŠã¹æ¿ããããšãã§ããã°ã²ãŒã ã¯ãªã¢ã§ãã
ãã©ãŠã¶ç»é¢ã«å³åœ¢ãæç»ããã
æšä»ã®ã¢ãã³ãã©ãŠã¶ã§ããã°ãé«åºŠãªæç»æ©èœãåããŠããŸãããã®ããããã©ãŠã¶äžã§åããªã§ãã3ããããã©ãŠã¶ã®ç»é¢ã«å³åœ¢ãæç»ããããšãã§ããŸãã
ä»åã®15ããºã«ãäœãéã«ããæç»æ©èœã䜿ã£ãŠã¿ãŸãããããŸãã¯ããªã§ãã3ãæè»œã«å®è¡ã§ããããªã§ãã3ç°¡æãšãã£ã¿(ã°ã©ãã£ãã¯ã¹çš)ãã«ã¢ã¯ã»ã¹ããŸãããã
æåã«ç°¡åãªå³åœ¢ãæç»ããŠã¿ãŸãã以äžã®ããã°ã©ã ãå ¥åããŠãå®è¡ããã¿ã³ãæŒããŠã¿ãŸãããã
5ã«ç·å€ªèšå®ã
éè²ã«ç·è²èšå®ã
èµ€è²ã«å¡ãè²èšå®ã
[20,30,200,200]ã®åè§æç»ã
2ã«ç·å€ªèšå®ã
ã#FF9090ãã«ç·è²èšå®ã
ã#f0f0f0ãã«å¡ãè²èšå®ã
[200,200]ãž110ã®åæç»ã
å®è¡ãããšä»¥äžã®ããã«æ£æ¹åœ¢ãšæ£åãæç»ã§ããŸãã
å³åœ¢ãæç»ãããšãã«ãè²ã茪éç·ã®å€ªããªã©æå®ã§ããããšãåãããŸããããããå³åœ¢ãæç»ããåœä»€ãçµã¿åãããããšã§ãã²ãŒã ã®ç»é¢ãæç»ã§ããŸããä»åã®15ããºã«ã®ç»é¢ãã瞊暪æ¹åã«ãããã¯ãé ã«ç¹°ãè¿ãæç»ããããšã§æãç«ã£ãŠããŸãã
ããã§ã¯ã15ããºã«ã®ç»é¢ãæç»ããŠã¿ãŸãããã以äžã®ããã°ã©ã ãç°¡æãšãã£ã¿ã«å ¥åããŠå®è¡ããŠã¿ãŸãããã
DW=90 # ãããã¯ã®å¹
ããŒã¿ïŒ[
ã[1,2,3,4],
ã[5,6,7,8],
ã[9,10,11,12],
ã[13,14,15,0]
]
ãããã¯æç»ã
âãããã¯æç»ãšã¯
ã[0,0,DW*4,DW*4]ã®æç»ã¯ãªã¢ã
ãDW2=DW÷2
ãé»è²ã«ç·è²èšå®
ã1ã«ç·å€ªèšå®ã
ãã40px Ariaãã«æç»ãã©ã³ãèšå®
ãYã0ãã3ãŸã§ç¹°ãè¿ã
ããXã0ãã3ãŸã§ç¹°ãè¿ã
ãããDX=XïŒDW
ãããDY=YïŒDW
ãããV=ããŒã¿[Y][X]
ããããããV > 0ãªãã°
ããããã#733ãã«å¡è²èšå®ã
ãããã[DX, DY, DW, DW]ãžåè§æç»ã
ããããã#baaãã«å¡è²èšå®ã
ãããã[DX+DW2, DY+DW2]ãž(DW2-3)ã®åæç»ã
ããããã#333ãã«å¡è²èšå®ã
ãããã[DX+17, DY+60]ã«(Vã2ã§ãŒãåã)ãæåæç»ã
ãããéãã°
ããããã#999ãã«å¡è²èšå®ã
ãããã[DX, DY, DW, DW]ãžåè§æç»ã
ããããããŸã§ã
ãããããŸã§
ããããŸã§
ãããŸã§ã
å®è¡ããŠã¿ããšã以äžã®ããã«è¡šç€ºãããŸãã
ããã°ã©ã ã®äžéšã«ãã倿°ãããŒã¿ãã«æå®ããæ°åã倿ŽããŠãæ¹ããŠããã°ã©ã ãå®è¡ããŠã¿ãŠãŸããããæç»ãããæ°åãå€ãããŸãããŸãã0ã®å€ã空ããããã¯ã§ãã
ãããã¯ããŒã¿ã®è¡šçŸ
ããŠãã²ãŒã ãäœããšãã«å€§åãªã®ããã²ãŒã ç»é¢ãã©ã®ãããªããŒã¿æ§é ã§è¡šçŸããã®ããšããç¹ã§ããä»åãæ°åãããã¯ã衚çŸããã®ã«äºæ¬¡å é å倿°ãå©çšããããšã«ããŸãããäžã€åã®ç»é¢ãæç»ããããã°ã©ã ã§ã瀺ããŸãããã瞊4Ãæšª4åã®äºæ¬¡å é åãçšããŠããããã¯ã®é 眮ã衚çŸããŸãã
ããŒã¿ïŒ[
ã[ 1, 2, 3, 4],
ã[ 5, 6, 7, 8],
ã[ 9,10,11,12],
ã[13,14,15, 0]
]
ãã®ãããªããŒã¿ãããã°ã©ã ã§åæåããæ¹æ³ã確èªããŠãããŸããããäºæ¬¡å é å倿°ãæäœããåèã«ãªããŸãã
âãããã¯åæåãšã¯
ãããŒã¿ïŒ[]
ãYã0ãã3ãŸã§ç¹°ãè¿ã
ããããŒã¿[Y] = []
ããXã0ãã3ãŸã§ç¹°ãè¿ã
ãããããŒã¿[Y][X] = 1 + (Y * 4 + X) # --- (*1)
ãããããŸã§
ããããŸã§
ãããŒã¿[3][3] = 0 # 空ããããã¯
ãããŸã§
æåã«ãç¹°ãè¿ããæ§æã瞊æ¹åãšæšªæ¹åã«å ¥ãåç¶ã«é 眮ããããšã«ããã4Ã4åã®ç¹°ãè¿ããå®è¡ããŠããç¹ã«æ³šç®ããŸãããããããŠã(ïŒ1)ã®éšåã«ã泚ç®ããŸããããããŒã¿[Y][X]ã®å€ãèšå®ããŠããŸããã1 + (Y ïŒ 4 + X)ãèšç®ãããšãå·Šäžããå³äžã«åãã£ãŠé ã«1ãã16ãŸã§ã®å€ãèšå®ã§ããŸãã
15ããºã«ã®ã²ãŒã
ããã§ã¯ãå®éã®ã²ãŒã ãäœã£ãŠã¿ãŸãããã以äžã®ããã°ã©ã ããšãã£ã¿ã«è²Œãä»ããŠå®è¡ãããšã²ãŒã ãå§ãŸããŸãã
# -------------------------------
# 15ããºã«ã®ããã°ã©ã
# -------------------------------
ããŒã¿ïŒ[]
DW=90 # ãããã¯å¹
äžäžå·Šå³ïŒ[[-1,0],[1,0],[0,-1],[0,1]]
Fã¹ããŒãžïŒã#nako3_canvas_1ã
ã·ã£ããã«åæ°ïŒ0
åæååŠçã
# ããŠã¹ã€ãã³ãã®åŠç --- (*1)
Fã¹ããŒãžãããŠã¹æŒããæã«ã¯
ãY=INT(ããŠã¹Y÷DW)
ãX=INT(ããŠã¹X÷DW)
ã[Y,X]ã®ãããã¯ç§»åã
ããããã¯æç»ã
ã0.1ç§åŸã«ã¯
ããã¯ãªã¢ç¢ºèªã
ãããããããããªã³ãªãã°ã
ãããåæååŠçã
ãããããŸã§ã
ããããŸã§ã
ãããŸã§
âåæååŠçãšã¯ # --- (*2)
ããããã¯åæåã
ãçªå·ã·ã£ããã«ã
ãããŸã§ã
âãããã¯åæåãšã¯
ãããŒã¿ïŒ[]
ãYã0ãã3ãŸã§ç¹°ãè¿ã
ããããŒã¿[Y] = []
ããXã0ãã3ãŸã§ç¹°ãè¿ã
ãããããŒã¿[Y][X] = 1 + (Y * 4 + X)
ãããããŸã§
ããããŸã§
ãããŒã¿[3][3] = 0 # 空ããããã¯
ãããŸã§
â(YXã®)ãããã¯ç§»åãšã¯ # --- (*3)
ãY=YX[0]ãX=YX[1]
ãRY=-1ãRX=-1ã
ãïŒç©ºçœã®ãããã¯äœçœ®ãæ¢ã
ãäžäžå·Šå³ãå埩
ããFY=察象[0] + Yã
ãããã((FY<0)ãŸãã¯(FY>3))ãªãã°ãç¶ããã
ããFX=察象[1] + Xã
ãããã((FX<0)ãŸãã¯(FX>3))ãªãã°ãç¶ããã
ããV=ããŒã¿[FY][FX]
ãããããV=0ãªãã°
ãããRY=FYãRX=FXãæããã
ãããããŸã§
ããããŸã§ã
ããã(RX=-1)ãªãã°
ãããªãã§æ»ããïŒèŠã€ãããªãã£ãå Žå
ããããŸã§ã
ã# ãããã¯ãå
¥ãæ¿ãã
ãTMP=ããŒã¿[Y][X]
ãããŒã¿[Y][X] = ããŒã¿[RY][RX]
ãããŒã¿[RY][RX] = TMP
ããªã³ã§æ»ã
ãããŸã§
âçªå·ã·ã£ããã«ãšã¯ # --- (*4)
ãã·ã£ããã«åæ°ïŒ0
ãçªå·ã·ã£ããã«GO
ãããŸã§ã
âçªå·ã·ã£ããã«GOãšã¯
ããããã·ã£ããã«åæ°ïŒ30ãªãã°ãæ»ãã# --- (*5)
ããªã³ã®é
ããY=4ã®ä¹±æ°
ããX=4ã®ä¹±æ°
ãã[Y,X]ã®ãããã¯ç§»åã
ãããããããããªã³ãªãã°ãæããã
ããããŸã§ã
ããããã¯æç»ã
ã0.1ç§åŸã«ã¯
ããã·ã£ããã«åæ°ïŒã·ã£ããã«åæ°ïŒ1
ããçªå·ã·ã£ããã«GO
ããããŸã§ã
ãããŸã§
âã¯ãªã¢ç¢ºèªãšã¯ # --- (*6)
ãYã0ãã3ãŸã§ç¹°ãè¿ã
ããXã0ãã3ãŸã§ç¹°ãè¿ã
ãããV=ããŒã¿[Y][X]
ããããããV=0ãªãã°ãç¶ããã
ããããããVâ ïŒY*4+X+1ïŒãªãã°ããªãã§æ»ãã
ãããããŸã§
ããããŸã§
ããã²ãŒã ã¯ãªã¢ããšèšãã
ããªã³ã§æ»ãã
ãããŸã§ã
âãããã¯æç»ãšã¯
ã[0,0,DW*4,DW*4]ã®æç»ã¯ãªã¢ã
ãDW2=DW÷2
ãé»è²ã«ç·è²èšå®
ãã40px Ariaãã«æç»ãã©ã³ãèšå®
ãYã0ãã3ãŸã§ç¹°ãè¿ã
ããXã0ãã3ãŸã§ç¹°ãè¿ã
ãããDX=XïŒDW
ãããDY=YïŒDW
ãããV=ããŒã¿[Y][X]
ããããããV > 0ãªãã°
ããããã#733ãã«å¡è²èšå®ã
ãããã[DX, DY, DW, DW]ãžåè§æç»ã
ããããã#baaãã«å¡è²èšå®ã
ãããã[DX+DW2, DY+DW2]ãž(DW2-3)ã®åæç»ã
ããããã#333ãã«å¡è²èšå®ã
ãããã[DX+17, DY+60]ã«(Vã2ã§ãŒãåã)ãæåæç»ã
ãããéãã°
ããããã#999ãã«å¡è²èšå®ã
ãããã[DX, DY, DW, DW]ãžåè§æç»ã
ããããããŸã§ã
ãããããŸã§
ããããŸã§
ãããŸã§ã
ããã°ã©ã ãç°¡åã«ç¢ºèªããŠã¿ãŸãããã(ïŒ1)ã®éšåã§ã¯ã15ããºã«ã®ãããã¯ãæç»ãããŠããã¹ããŒãžãã¯ãªãã¯ããæïŒã¿ãã¬ãããªãã¿ããããæïŒã®ã€ãã³ããèšå®ããŸããã©ã®ãããã¯ãæŒãããã®ããå€å¥ãããããã¯ãç§»åå¯èœãã©ããã確èªããŸãããã®åŸãã¯ãªã¢ãããã©ãããæ¯å確èªããŸãã
(ïŒ2)ã®éšåã§ã¯ã²ãŒã ã®åæååŠçãè¡ããŸãããããã¯ãåæåããŠã·ã£ããã«ããŸãã
ãããŠã(ïŒ3)ã®éšåã§ã¯ãããã¯ãç§»åå¯èœãã確èªãã颿°ãå®çŸ©ããŸããç§»åå¯èœãã©ããã¯ãæå®ãããããã¯ã®äžäžå·Šå³ãé ã«ç¢ºèªããç§»åå¯èœãªããããã¯ãå ¥ãæ¿ãããšããåŠçã«ãªã£ãŠããŸããç§»åå¯èœãã¯ãæå®ãããã¯ã®äžäžå·Šå³ã®ã©ããã«ç©ºããããã¯ïŒå€0)ããããã調ã¹ãããšã§å€å¥ã§ããŸãã
ããããã(ïŒ4)ã®éšåã§ã¯ã²ãŒã éå§æã«ãããã¯ãã·ã£ããã«ããåŠçãèšè¿°ããŸããæ³šæãããç¹ã§ããããããã¯ãå®å šã«ã©ã³ãã ã«äžŠã³æ¿ããŠããŸããšã²ãŒã ãã¯ãªã¢ã§ããªãå¯èœæ§ããããŸããããã§ãäžåºŠã¯ãªã¢ç¶æ ã«æ°åã䞊ã¹ãç¶æ ã§ãã©ã³ãã ã«ç©ºããããã¯ã®åšå²ã®ãããã¯ãç§»åããããšã§ãã·ã£ããã«ãè¡ããŸãã
ãªãã(ïŒ5)ã®éšåã§ã30æãããã¯ãç§»åããŠããã®ã§ãæç30æäœå ã§ã¯ãªã¢ãå¯èœã§ãããããã²ãŒã ããã£ãšé£ãããããå Žåã«ã¯ããã®å€ã50ãšã200ãšã倧ããªå€ã«å€æŽããŸãããããããšã²ãŒã ãé£ãããªããŸãã
ãŸãšã
以äžãä»åã¯15ããºã«ãäœãæ¹æ³ã玹ä»ããŸããããã®15ããºã«ã®å€åœ¢çã«ã¯ããããã¯ã«æžãããŠããæ°åãã€ã©ã¹ãã«ãªã£ãŠãããã4Ã4ãã¹ã§ã¯ãªã5Ã5ãã¹ã§ãã£ãããšãããŸããŸãªæ¹è¯çãèããããŸããããã»ã©é£ãããªãã®ã§æ¹è¯ããŠã¿ããšè¯ãã§ããããããã°ã©ã ã®æ¹è¯ããããããã°ã©ãã³ã°äžéã®è¿éã§ãããã£ãŠã¿ãŸãããã
èªç±åããã°ã©ããŒããããã¯ãã©ã«ãŠãããã°ã©ãã³ã°ã®æ¥œãããäŒããæŽ»åãããŠããã代衚äœã«ãæ¥æ¬èªããã°ã©ãã³ã°èšèªããªã§ããã ãããã¹ã鳿¥œããµã¯ã©ããªã©ã2001幎ãªã³ã©ã€ã³ãœãã倧è³å ¥è³ã2004幎床æªèžãŠãŒã¹ ã¹ãŒããŒã¯ãªãšãŒã¿èªå®ã2010幎 OSSè²¢ç®è ç« åè³ãæè¡æžãå€ãå·çããŠããã



