å¤æ¬¡å ã¡ã¢ãªç©ºéããã°ã©ãã³ã°
æ°å¹´ä¼ã§é
ã飲ã¿éãã¦é ãçãã¦ç ããªãã®ã§ãæ°å¹´ã®æ¨æ¶ä»£ããã«ããã°ã©ãã³ã°ã®è©±ã§ãé©å½ã«æ¸ãæ£ããã¦ããã
以åãç§ã®ç¥ãåãã®ã©ããä½å®¶ã§ããåå±ã¤ãããããããããã°ã©ãã³ã°ã®ã½ã¼ã¹ã³ã¼ãã£ã¦æ¬å½ã«ï¼æ¬¡å (plain text)ã§ãããã§ãããï¼ãã¿ãããªãã¨ãè¨ã£ã¦ããã
ä¾ãã°ãããã¼ãã£ã¼ãã¯æ®éãäºæ¬¡å ä¸ã«è¡¨ç¾ãããæ¡ä»¶åå²(è±å½¢ã®å³å½¢)ãä½ç®æããããããªããã¼ãã£ã¼ããæãå ´åãæ¬æ¥ã®ã½ã¼ã¹ã³ã¼ããããæµããè¦ãããã¨ãããã¨ã¯å¤ã ãããããã¯ä½æ ã ãããï¼
ãæ¡ä»¶ãæç«ãããã½ã¼ã¹ã³ã¼ãã®XXXè¡ç®ã«ç§»åãããã¨ãããããªï¼æ¬¡å çãªç§»åããããæ¡ä»¶ãæç«ãããä¸ã«ç§»åãæç«ããªãã£ããå³ã«ç§»åãããã¨ãããããªï¼æ¬¡å çãªç§»åã®ã»ããå¯è¦åããä¸ã§ã¯ããããããã¨ããã®ãããã®ã§ã¯ãªããã¨ç§ã¯æãã
ããèããã¨ãã½ã¼ã¹ã³ã¼ãã¯æçµçã«ç´åå(ï¼æ¬¡å å)ããã«ãããé ã®ãªãã§ã¯ãã®ããã«ç´ååããã¦ããããã§ã¯ãªãããã¤ã³ããããã®ããã«ï¼æ¬¡å ããããã¯ï¼®æ¬¡å ã§æ§æããã¦ãã¦ããããï¼æ¬¡å ã®ã½ã¼ã¹ã³ã¼ãã¨ãã¦æ¸ãã ããã¨ã«ãªãã
ããããããã°ã©ãã³ã°ãé£ãããããã¦è¤éã«ãã¦ããè¦å ã®ä¸ã¤ã§ã¯ãªãã ãããã
ä¾ãã°ãé ã®ãªãã«è¤æ°ã®ã¢ã¤ãã¢ãããã¨ããããã®ã¢ã¤ãã¢ã¯ç¸äºã«é¢é£ã¥ãããã¦ããã¨ãããããã話ãè¨èã¨ãã¦è©±ããã¨æã£ãã¨ãã«ãé ã追ã£ã¦ä¸ã¤ãã¤æ¸ãã ãå¿ è¦ããããç®æ¡æ¸ãã«ããããªãã¦ããè¡çºããã®ã·ãªã¢ã«åã«ç¸å½ããã
ãã®æèã®ã·ãªã¢ã«åã¯ãåä¾ã®ããããå½èªæè²ã®ãªãã§å¹ããã¦ããã¯ãã§ã¯ããããè¦æãªäººã¯è¦æã ãããããããé ã®ãªãã§ã©ãèããã¹ããã¨ããé¨åã«ã¤ãã¦ã¯æã ã¯ããã¨è¨ã£ãæè²ã¯æ½ããã¦ããããä»ã®äººã®åºå(ã·ãªã¢ã«åããã模ç¯è§£ç)ãããèªåã®é ã®ãªãã®æèåè·¯ããã£ã¼ãããã¯å¦ç¿ã®ãããªãã¨ããã¦å¦ãã§ããã«éããªãã(ããã«ãã®é¨åã«ã¯å人差ãããªãããã)
ãªãã«ããããªãã¹ãé ã®ãªãã§èãã¦ããå³ã«è¿ãå½¢ã§ã½ã¼ã¹ã³ã¼ããæ¸ãåºããã»ããããã¨ããã¨ããã¾ã§è©±ãé²ãã次ã«ããããã¤ããªã¬ãã«ã§èããã
ãããããç§ã¯å¹´æ«ã«ãBinary Hacks âããã«ã¼ç§ä¼ã®ãã¯ããã¯100é¸ã(asin:4873112885)ã®èè ã®ä¸äººã§ããæµå° æ ä¸éãã(id:shinichiro_h)ã«ãã¾ãã¾ãä¼ãããã
ãã®ã¨ãã«ç§ã¯ãFPGAã§CPUä½ã£ããããã®ãã³ã¼ãã´ã«ãçãªå´é¢ããã£ã¦é¢ç½ãã£ããããã¿ãããªãã¨ãå½¼ã«è¨ã£ããDE0-nanoã¨ãã8000åãããã§è²·ããFPGAã®è©ä¾¡ãã¼ãã§ãç¸å½ãªè¦æ¨¡ã®CPUãä½ããã®ã ã¨ã
ãã®ããã«èªåã§èããã¢ã¼ããã¯ãã£ã®CPUãç°¡åã«èªä½ã§ããæ代ã«ãªã£ããã¾ãããï¼æ¬¡å ã¡ã¢ãªç©ºéçãªããã°ã©ãã³ã°ã«ææ³¥ããå¿ è¦ã¯ãªãã®ã§ã¯ãªããããã
ããã§ãããå°ãå ·ä½çãªè©±ããã¦ããã
ã¾ããï¼æ¬¡å ã¡ã¢ãªç©ºéã§ã®ããã°ã©ãã³ã°ãèãããï¼æ¬¡å ã¡ã¢ãªç©ºéä¸ã«ã©ã®ããã«ããã°ã©ã ãæ¸ãã ããã¨ããåé¡ãããããã¾ãã¯ãæ軽ã«Excelã§ããã¨æããExcelã¯äºæ¬¡å çãªã¡ã¢ãªç©ºéã表ç¾ããããç·¨éãããããã®ã«ãã£ã¦ããã§ããã
ç§ã¯ä»¥åãVBAãç¨ãã¦ãExcelã®ã¯ã¼ã¯ã·ã¼ãä¸ã«æ¸ãããããã°ã©ã ãå®è¡ããã¤ã³ã¿ããªã¿ãä½æããã
第ï¼ï¼åãï¼¥ï½ï½ï½
ï½ãIï½ï½ï½
ï½ï½ï½ï½
ï½ï½
ï½ï¼ï¼¥ï½ï½ï½
ï½ã«ããï¼¥ï½ï½ï½
ï½ã®ããã®å¤æ
çããã°ã©ã ï¼
http://bm98.yaneu.com/rsp/rsp29to2F.html
ãã13å¹´åãçµã£ã¦ãããã¨ã«é©ããé ããªãã(éçºãã¦ããã®ã¯ãã®ããã«3å¹´ãããåãªã®ã§15年以ä¸çµã£ã¦ããã®ãâ¦)ãå½æãç§ãä¸è¨ã®ãããªã¡ã¿ããã°ã©ãã³ã°ç°å¢(DSL?)ãå¿ è¦ã ã£ãã®ã¯ãç§ã¯ãã®ãããä»äºã§è£½å³è¨è¨ã«æºãã£ã¦ãããå®åçãªæ¥åã«é£½ã飽ããã¦ããã®ã§å³é¢ã®èªåçæããããã¨æã£ãã®ã ããAutoCADã®ãã¯ãã®ãããªãã®ã§æ¸ãã¦ãã¾ãã¨ä»ã®ç¤¾å¡ãè¦ãã¨ãã«ã¡ãã·ãããã·ãã«ãªãã®ã§ãExcelä¸ã§å¦çããããã¨æã£ãã®ããã®ãã£ããã§ããã
ãããªãExcelã®ã¯ã¼ã¯ã·ã¼ãé¢æ°ãç解ãã¦ããç¨åº¦ã®éããã°ã©ãã§ãã£ã¦ããããã°ã©ã ã追ããããããããã°ã©ã ãå®æ°ã¨ãã¦ä½¿ç¨ãã¦ããå¤(ã»ã«)ã«è¨ç®å¼ãæ¸ããã¨ã«ãã£ã¦ãèªåãªãã«ã«ã¹ã¿ãã¤ãºããããããã¨ãåºæ¥ãã
ã¨ããã§ããã¤ããªã¢ã³ã«ã¨ã£ã¦ã¯æã¨ãã¦ã½ã¼ã¹ã³ã¼ãããã¤ããªã³ã¼ããã»ã¨ãã©ç価ã§ããã
ãã¤ããªã³ã¼ããããã½ã¼ã¹ã³ã¼ãã¨ããå ´åãå°ãªãã¯ãªãã
Excelã®ã¯ã¼ã¯ã·ã¼ããï¼æ¬¡å ã¡ã¢ãªã¨ã¿ãªãã¦ãããã«ããã°ã©ã ãæ¸ãã¦ããã¨èããã¨ãã«ãããã«æ¸ãã³ã¼ãã¯ããã¤ããª(2é²æ°çãª)ã³ã¼ãã§ããã®ããã¢ã»ã³ããªå½ä»¤ã§ããã®ããããã¨ãããå°ãç²åº¦ã®å¤§ããªå½ä»¤ã»ãããããªãã½ã¼ã¹ã³ã¼ãã§ããã®ããããã¯ãå½ä»¤ã»ããã®éãã¨ããç¨åº¦ã®æå³ãããªãã®ã§ãããã§ã¯ã¢ã»ã³ããªå½ä»¤ã«éå®ãã¦è©±ãé²ããã
å½ä»¤ã解éãã¦å®è¡ããé¨åã¯ä¸è¨ã®Excel Interpreterã®ãããªã³ã¼ããæ¸ãã°ããã ããªã®ã§30è¡ç¨åº¦ã®VBAã®ã³ã¼ãã§å®¹æã«å®è£ ã§ããã ããããªã®ã§ããã®é¨åã¯åé¡ã¨ããªãããã¾åé¡ã¨ããã®ã¯ãæ¡ä»¶åå²ã«é¢ãã¦ã§ããã
æ¡ä»¶åå²ã¯å¾æ¥ã®ããã°ã©ãã³ã°è¨èªã§ã¯å¶å¾¡æ§æ(if,while,forãªã©)ãå¿ è¦ã§ãã£ãããã¤ããªã¬ãã«ã§æããã¨ãããã¯æ¡ä»¶ã¸ã£ã³ãã§ãããä¾ãã°ãï¼æ°ãæ¯è¼ãããã¨ãã«ããã®å¤ãçããã¨Equalãã©ã°ã1ã«ãªãããEqualãã©ã°ã1ã®ã¨ãã ãã¸ã£ã³ãããªãããã¨ããå½ä»¤(ä¾ãã°jumpzeroãç¥ãã¦jzå½ä»¤)ãç¨æããã¦ãã¦ãããã«ãã£ã¦æ¡ä»¶ã¸ã£ã³ããå®ç¾ã§ããã
ãã®jzå½ä»¤ã§ã¯ã¸ã£ã³ãã§ã®é£ã³å ãæ¸ããªããã°ãªããªããããã¯ç¸å¯¾ã¢ãã¬ã¹ã絶対ã¢ãã¬ã¹ãããããã«ãããé£ã³å ã®çªå°ãæ¸ããªããã°ãªããªãã
ãã¤ããªã¢ã³(ãã¤ããªå¥½ã)ã§ããã®çªå°ãè¨ç®ããã®ã¯å°ã é¢åãããããã³ãã¢ã»ã³ãã«ããå ´åãCISCã¢ã¼ããã¯ãã£ã ã¨ããããã®å½ä»¤ã®ãµã¤ãºãç°ãªãã®ã§ãããããã®å½ä»¤ããµã¤ãºã足ãã¦ãããé£ã³ããå ã®çªå°ãæ±ããå¿ è¦ãããã
ãããé¢åãªã®ã§ããã¤ããªã¢ã³ã¨è¨ãã©ãé·ãã³ã¼ããæ¸ããªããã°ãªããªãå ´åãç°¡æã¢ã»ã³ãã©ãèªä½ããã®ãæ®éã§ããã®ç°¡æã¢ã»ã³ãã©ã§ã¯æ®éã©ãã«ã¸ã£ã³ãããµãã¼ããããããããã¨ã
LOOP_START:
ãªã«ãå½ä»¤
jz LOOP_START
ã®ãããªæ¸ãæ¹ãåºæ¥ãã¨ããããã ã
ã¤ã¾ãããã¤ããªã¢ã³ã«ã¨ã£ã¦ããã®ãããªæ¡ä»¶ã¸ã£ã³ãæã®ã¢ãã¬ã¹è¨ç®ãããçã§ãã£ã¦ããããããªããã°ãã³ãã¢ã»ã³ãã«ä¸çï¼ãªã®ã§ããã(ãã¤ããªã¢ã³ã®ç·æã§ã¯ãªããããã¾ã§ç§å人ã®è¦è§£ã§ã)
ããã§ãä»åã®ï¼æ¬¡å ã¡ã¢ãªããã°ã©ãã³ã°ã¢ãã«ã§ã¯ãjzå½ä»¤ã®ãã¨ã¯ãã©ãã«ãã¢ãã¬ã¹ã§ã¯ãªãä½ãæ¸ããªããã¨ã«ãããããªãã¡ãæ¡ä»¶ãæç«ããã¨ãã¯å³ã®ã¡ã¢ãªã«ç§»åãã(éæç«ã§ããã°ä¸ã®ã¡ã¢ãªã«ç§»åãã)ã¨ããããã«ããã
ããããã¡ã¢ãªã¢ãã«ã¨ããã®ã¯ãå®ç¨ä¸ã価å¤ãããå ´åãããã
ä¾ãã°FPGAã§ãã®ãããªã¡ã¢ãªã¢ãã«ã®CPUãå®è£ ããã¨ããããNUMAã¢ã¼ããã¯ãã£( http://ja.wikipedia.org/wiki/NUMA )ãæ¡ç¨ãã¦ãã¦ãããããã®CPUã³ã¢ã¯ãªãã¹ãå°ããä¿ã¡ããã¨ããã
ããã«æ¸ãããã°ã©ã ã¯é常ã«å°ããªã³ã¼ããªã®ã§ã³ã¼ããµã¤ãºã¯ããã»ã©åé¡ã¨ã¯ãªãã(ã©ããCPUã³ã¢ããã¢ã¯ã»ã¹ããã³ã¼ãã¡ã¢ãªã¯FPGAå ã®ãããã¯RAMã§å®è£ ãããã®ã§ãããã¯RAMãä¸ã¤ã«åã¾ãã°ããã§è¯ã)ãæ¡ä»¶ã¸ã£ã³ãã®ã¨ãã«é£ã³å ã®çªå°ãè¨ç®ããããã«ãã«ãµã¤ãºã®å ç®å¨(ã¡ã¢ãªç©ºéã12bitãªãã°12bitã®å ç®å¨)ãç¨æããã®ããã£ãããªãã¨ããã
ããã§ãæ¡ä»¶æç«æã¯ç¾å¨ã®ã¢ãã¬ã¹ã«0x100(256)ãå ç®ããã¢ãã¬ã¹(äºæ¬¡å ã¡ã¢ãªã ã¨ã¿ãªããã¨ãã®âå³âãããã ã¨ããã)ã«ã¸ã£ã³ããããããªæ¡ä»¶ã¸ã£ã³ãå½ä»¤ãå®è£ ããã¨ããããããªãããã«ãµã¤ãºã®å ç®å¨ããã¯ããã¶ãè¦æ¨¡ãå°ããã§ããããæ¡ä»¶ã¸ã£ã³ãå½ä»¤ãã¸ã£ã³ãå ã®ã¢ãã¬ã¹ãå«ã¾ãªãã¦æ¸ãã®ã§ããã¼ã¿ãã¹ã®ãããæ°ã¨ã¢ãã¬ã¹ç©ºéã®ãããæ°ãåãããå¿ è¦ããªããªãã¨ãããããªã¡ãªãããããããç¥ããªãã
ã¾ãã¨ããããäºæ¬¡å ã¡ã¢ãªã¢ãã«ã¨ããã®ã¯ã空æ³ã®ç£ç©ã§ã¯ãªããæ¡å¤å®ç¨ã«ãªãã®ã§ã¯ãªããã¨ããã¨ããã¾ã§è©±ãé²ãã ã®ã§ã次ã«ããããN次å ã«æ¡å¼µãã¦ããã
ã¾ãããã»ã©ã¾ã§ã®è©±ã ã¨ããã°ã©ã ã¯åºæ¬çã«ä¸æ¹åã«åãã£ã¦å½ä»¤ãå®è¡ããã¦ãããæ¡ä»¶ã¸ã£ã³ããããã¨ãæ¡ä»¶ãæç«ããã¨ãã«ã®ã¿å³å´ã«ï¼ã¤ç§»åããã ãã§ãã£ãã
ããããããã ã¨ã«ã¼ããæ¸ããªããã¡ã¢ãªç©ºéèªä½ãã©ããã§ã¡ãã¦ã¹ã®è¼ªã®ããã«çµç«¯ã¨éå§ã¢ãã¬ã¹ãç¹ãã£ã¦ããã®ãªãã°å¥ã ãããã®ä»®å®ã¯å¶ç´ãå¼·ãããã(ãã¨ãã°0x1FFã®ã¤ãã®çªå°ã0x100ã«æ»ããããªå®è£ ã¯å¯è½ããç¥ããªããæ¡ä»¶ã¸ã£ã³ãã®æ¡ä»¶æç«æã«ã¯å®è¡ã¢ãã¬ã¹ãæãã¬ã¸ã¹ã¿ã«0x100ãå ç®ãããã¨ãã¦)
ããã§ãããã°ã©ã ã®å®è¡æ¹åãä¸ã§ã¯ãªããç¾å¨ã®äºã®åãã¦ããæ¹è§ã ã¨ãããããªãããã§ãããªãâäºâãä½æ åºã¦ãããã¨ããã¨ããã®æ(1970年代ã«)ãLOGOè¨èªã¨ããã¿ã¼ãã«ã°ã©ãã£ãã¯ã¹ç°å¢ãæµè¡ã£ãã(ä»®æ³çãª)äºã«ãã³ãæããã¦ããã®äºã«å¯¾ãã¦æ¬¡ã®ãããªå½ä»¤ãæ令ããã
REPEAT 4 [FD 100 LEFT 90]
â» 100æ©æ©ãã¦(ç´é²ãã¦)90度左å転ã¨ããåä½ã4åç¹°ãè¿ã ã®æå³ãããã«ããæ£æ¹å½¢ãæãããã
ãã®ã¿ã¼ãã«ã°ã©ãã£ãã¯ã¹ã®èãæ¹ãããã®ï¼æ¬¡å ã¡ã¢ãªããã°ã©ãã³ã°ã«å¿ç¨ããç¾å¨ã®äºãåãã¦ããæ¹åã«å½ä»¤ãå®è¡ãã¦ããã¨ããããã ã
ã¤ã¾ãæ¡ä»¶åå²ã§ããã¯ãæ¡ä»¶æç«æã«ã¯å·¦90度å転ã(éæç«æã«ã¯ç´é²)
ç¡æ¡ä»¶å·¦90度å転å½ä»¤(ç¡æ¡ä»¶ã¸ã£ã³ãã«ç¸å½ãã)ã欲ããã¨ããã§ã¯ããããããã¯ããããããã¨æç«ãããããªæ¡ä»¶æ¯è¼ãè¡ãªãããã®ãã¨æ¡ä»¶ã¸ã£ã³ãå½ä»¤ãæ¸ãã°ããªããæ¡ä»¶ãæç«ããå·¦90度å転ããã¨ããåä½ã«ãªãã®ã§ãå½ä»¤ã»ãããæå°åããã¨ãã観ç¹ããã¯ä¸è¦ã ã¨ãè¨ããã
ã¾ãã¨ãããããã®ãããªããã°ã©ãã³ã°ã¢ãã«ã§ããã°ãã«ã¼ããå®ç¾ããããã°ãç¡æ¡ä»¶ã¸ã£ã³ãã4åè¡ãã°ããã¨ã®ä½ç½®ã«æ»ã£ã¦ãããã¨ãåºæ¥ãã§ããããã¨ãããã£ãã
次ã«ããã®ããã°ã©ã å士ãæ¦ããããã¨ãèããã
ããã°ã©ã å士ãæ¦ãããã¨ããã®ã¯ãä¸ä¾ã¨ãã¦æãããªãCore Warsã¨ãã1985å¹´ããã«æµè¡ã£ããå°ããªå½ä»¤ã»ãããæã¤ä»®æ³CPUå士ããµã³ãããã¯ã¹ç°å¢ã§èµ°ãããç¸æã«halt(å®è¡åæ¢å½ä»¤)ãå®è¡ãããã°åã¡ã¨ããããã«ã²ã¼ã ã§ããã
â» ç»åå¼ç¨å
: http://www.gamesetwatch.com/2009/03/column_pixel_journeys_corewar_the.php
ç§ã¯é«æ ¡1å¹´ã®ã¨ãã«ãã®Core Warsã®tinyçãOh!MZèª(ã®ã¡ã®Oh!Xèª)ã«æ²è¼ããã¦ããã®ã§ãããã§ããã¶ãéãã è¦ããããã
ç§ã¯å½æããããã¹ãã¨ããã¢ãã¡(ã¹ã¿ã¸ãªã´ãããå¶ä½ãä¸çåã®OVAã¨è¨ããã¦ãã)ã観ã¦ããã®ã¢ãã¡ã«åºã¦ãããèªå·±ä¿®å¾©æ©è½ããæã£ãè¦å¡é½å¸ã¨ããä¸äºç çãªè¨å®ããããæ°ã«å ¥ããCore Warsã§ãã®ãããªèªå·±ä¿®å¾©æ©è½ãæã£ãããã°ã©ã ãæ¸ããªããã¨ãã£ã¦ã¿ãã
ã¤ã¾ããèªåã®ããã°ã©ã ã®check sumçãªãã®ã調ã¹ãã³ã¼ããç ´æãã¦ãããããããå ã®ã³ã¼ãã«æ»ãã¨ããããã§ãããæ»ãããã«ã¯å ã®ã³ã¼ããå¿ è¦ãªã®ã§èªåèªèº«ã®ããã°ã©ã ã+0x100çªå°é¢ããã¨ããã«ã³ãã¼ãã¦ããããã®ã³ãã¼ããã»ããå£ããã¨ãããªãã®ã§ããã®ããã°ã©ã ãããã«+0x100çªå°é¢ããã¨ããã«ã³ãã¼ãã¦ããã(以ä¸ãç¹°ãè¿ã)
ãã®Core Warsã¯ä»®æ³çãªãã«ãã¹ã¬ããã¢ãã«ãæ¡ç¨ãã¦ãããforkã«ç¸å½ããå½ä»¤ããã£ãã®ã§ãããããã®ã¹ã¬ãããããããèªå·±ä¿®å¾©(ç ´æãã¦ããã°+0x100çªå°å ããã³ãã¼ãã¦å¾©å )ãã¾ããå¢æ®(+0x100çªå°ã«èªåã®ã³ãã¼ãããªããã°ãèªå·±ãã³ãã¼ãã¦forkãããæ£ç¢ºã«è¨ãã°ã+0x100çªå°ã®ããã°ã©ã ã®heartbeat(èªåãçãã¦ãããã¨ã示ãããã«ã¡ã¢ãªã«æ¸ãè¾¼ãå¤)ã確èªãããªããã°ããã®æ å½ã¹ã¬ãããæ»ãã§ãããã¨ãæå³ããã®ã§å¾©å ãã¦fork)ã¿ãããªããã°ã©ã ãæ¸ããã
ãã¾ã«ãã¦æãã°ãããã¯èªå·±ä¿®å¾©åã®ã¯ã¼ã ãªã®ã ããå½æç§ã¯ããããç¨èªããç¥ããªãã£ãã
ãã¦ããã®ãããªããããè¤éãªããã°ã©ã (ã¨ã¯è¨ã£ã¦ã30å½ä»¤ç¨åº¦ã§ã¯ãã£ãã)ãæ¸ãã¦æºè¶³ãã¦ããã®ã ããä»ã®äººãä½ã£ãããã°ã©ã ã¨å¯¾æ¦ããã¦ã¿ãã¨ããã®ããã°ã©ã ããªããªãåã¦ãªãããã°ã©ã ããã£ãã
ããã¯ä¸å¯¸æ³å¸«ã¨å¼ã°ãããã£ã5å½ä»¤ããæãããã°ã©ã ã§ããããã®5å½ä»¤ã®ãã¡ã®ã²ã¨ã¤ã¯5å½ä»¤ç®ã«æ¸ãããhaltã§ãããããã¯ãã®ããã°ã©ã ã¯å®éã«ã¯å®è¡ããããã®5å½ä»¤ç®ã«æ¸ãããå½ä»¤ããã®5çªå°å ã«ã³ãã¼ããã¨ããã ãã®ããã°ã©ã ã§ãããè¦ããã«5çªå°ãã¨ã«haltãæ¸ãããã§ããããã°ã©ã ã§ããã®ããã°ã©ã èªä½ã®ã³ã¢ã¯4å½ä»¤ããæãã®ã§èªåèªèº«ã«ã¯è¢«å®³ã¯åã¼ããªãã¨ããããã°ã©ã ã§ãã£ãã
ãããåç´ã§ã¯ãããããã®ãããªããããããªã³ã(âã³ã¢é¨åã®ã¡ã¢ãªä½¿ç¨é)ãå°ããªããã°ã©ã ã¯ãããå¼·çã§ãããæå³ãã¼ãã§ãããããæå³ãCore Warsã®ã²ã¼ã ãã©ã³ã¹ãæããå å¶ã§ããã£ãã
ãã®ãã¨é·å¹´ããã®ã²ã¼ã ãã©ã³ã¹ããªãã¨ãæ¹åããããã¦ãè¦è¦çã«ç¾å¨å®è¡ãã¦ããå½ä»¤ãããããããCore Warsãä½ããªããã¨ç§ã¯èãã¦ããããã§ã¯ããããããã«è³ã£ã¦ãä»åã®ï¼æ¬¡å ã¡ã¢ãªããã°ã©ãã³ã°ã¢ãã«ãããã¶ãæå¹ãªã®ã§ã¯ãªããã¨æ°ã¥ããããã§ããã
ã¤ã¾ããã¢ãã¬ã¹ã¸ã£ã³ãã§ã¯ãªãã®ã§ãæ¥ã«ãã£ã¡ãããã£ã¡ãã¨ãããããªã¸ã£ã³ããããªãã®ã§è¦è¦åããã¨ãã«é常ã«ããããããããã¯ã¿ã¯ãã³ãã³ã®ããã«å¿ ãé£ã®ã¡ã¢ãªã«ãã移åããªãããã§ããã
ã¾ããã«ã¼ããæ§æããããã«ãããã¼æ¯è¼(Equalãã©ã°ãç«ã¦ãããã®ãã®)ã¨æ¡ä»¶ã¸ã£ã³ã(jzå½ä»¤)ã®2å½ä»¤ã4å使ããªãã¨ã«ã¼ãã«ãªããªãã®ã§å°ãªãã¨ã8å½ä»¤ã¯å¿ è¦ã§ãããä¸å¯¸æ³å¸«çãªããã°ã©ã ã§ãã£ã¦ã12å½ä»¤ã§ã¯æ¸ããªããããªå½ä»¤ã»ããã§ããã°ã16å½ä»¤ã20å½ä»¤ç¨åº¦ä½¿ããããå¾ãªããªã£ã¦ããã
ããããã¨ãããããªã³ããå°ãããã¦ããã¦çµ¨æ¯¯çæããã¨ãããããªããã°ã©ã ãæ¸ãã«ãããªãã®ã§ããã£ã¨é«åº¦ã§é«æ©è½ãªããã°ã©ã ã®ã»ããåçãä¸ããã®ã§ã¯ãªããã¨æãããããªã£ãã»ããCore Warsã¨ãã¦ã¯é¢ç½ãã
ããã¯å¤§å¤ããã¢ã¤ãã¢ãªã®ã§ãCore Warsã®è©¦åç¨ã®ãµã¼ãã¼ãç¨æãã¦ãæ¯è¼ç大ããªã¡ã¢ãªç©ºéã§è¤æ°ã®ããã°ã©ã ãæ¾ã£ã¦ããã®çåç(24æéã«ä½åæ»ãã ããã«ã¦ã³ããããã®å¹³åçåæéããç®åºãã)ã競ããããããªç«¶æå ´ãæ°ãåãããä½ããã¨ã«ããã(注:ãã¾é ã£æã£ã¦ããã®ã§ãé ãè¦ãããå¿ãã¦ããããç¥ãã¾ããã)
ãã¦ã以ä¸ã§ãï¼æ¬¡å ã¡ã¢ãªããã°ã©ãã³ã°ã¢ãã«ã¨ããã®ã¯ãå®ç¨ä¸ããããã¦ãCore Warsã®ãããªè©¦åç¨ã®ã¢ã¼ããã¯ãã£ã¨ãã¦ãé常ã«èå³æ·±ããã¨ãããã£ãã次ã«ããããN次å ã«æ¡å¼µãã¦ããã
N次å ãªã®ã§ç¾å¨ã®å½ä»¤ã®çªå°ã¯ãã¯ãã«Ïã§è¡¨ãããã¨ããããåãã¦ããæ¹åã¯ãã¯ãã«Î½ã ãνã¯åä½ãã¯ãã«ã¨ãããã
ãã®ã¨ã次ã«å®è¡ããå½ä»¤ã®çªå°ã¯Ïï¼Î½ã§ãããæ¡ä»¶ã¸ã£ã³ãå½ä»¤ã§æ¡ä»¶ãæç«æã«ã¯å·¦90度å転ãããã®ã§ããããN次å 空éã§ã®å転ã ã¨å転軸ãå¿ è¦ã§ããããåºå®ãã¦ãã¾ãã¨ãã¾ãã¡ã¢ãªå ¨ä½ãå·¡ããªãã
ï¼æ¬¡å ã§ã®å·¦90度å転ã ã¨ãã¯ãã«Î½ã¯ (0,1)ä¸æ¹å â (1,0)å³æ¹å â (0,-1)ä¸æ¹å â (-1,0)å·¦æ¹åã®ããã«æ¨ç§»ããã®ã§ãåæ§ã«ï¼®æ¬¡å ã§ã(ãã¨ãã°ï¼æ¬¡å ãªãã°)(1,0,0)â(0,1,0)â(0,0,1)â(-1,0,0)â(0,-1,0)â(0,0,-1)â(1,0,0)ã®ããã«æ¨ç§»ããã°ãã¡ã¢ãªå ¨ä½ãå·¡ã£ã¦ãã¨ã®å ´æã«æ»ã£ã¦ãããã®ã§ã¯ãªããã¨ããã
ãã®å¤æè¡åãΤã¨ããã¨ãæ°ããνï¼Î¤Î½ã¿ãããªè¨ç®ã§ã©ããã
ä¾ãã°3次å
æãªã
Τ= [ [ 0 , 0 , -1],[ 1 , 0 , 0 ] , [ 0 , 1 , 0 ] ]
ã¿ãããªç´äº¤è¡åãã¤ããããªããè¡å(対è§ä¸å®è¡å)ã§ã©ããããªã
ã¨ããããã以ä¸ã®æ¹æ³ã§ï¼®æ¬¡å
ã¡ã¢ãªããã°ã©ãã³ã°ãåºæ¥ããã§ã¯ããã
(Excelã®ã¯ã¼ã¯ã·ã¼ããN次å
ã«å¯¾å¿ãããããªã½ããã¦ã§ã¢ããªãã¨ããã°ã©ã ãæ¸ãã®ã¯å°é£ããç¥ããªãã)
è¡åΤã®ããªã¨ã¼ã·ã§ã³ãå¤ããã°ãããå°ãé¢ç½ãå®è¡ãåºæ¥ãããç¥ããªããã話ãåæ¾ãã¤ããªããªãã®ã§ä»åã¯å²æããã
ããã¾ã§ã¯å½ä»¤ã®å®è¡ãã
ã»åºæ¬çã«ç´é²
ã»æ¡ä»¶åå²ã§ã¯æ¡ä»¶æç«æã«Î½ï¼Î¤Î½ãéæç«æã¯ç´é²
ã¨ãã¦ããã
ã¨ããããããã§ãæ¡ä»¶åå²ã§ã¯æ¡ä»¶æç«æã«ç´é²ãã¨ãªããããªããã°ã©ãã³ã°ã¢ãã«ã ã¨ã©ãã ãããã
ã»åºæ¬çã«ã¯ãããã
ã»æ¡ä»¶åå²ã§ã¯æ¡ä»¶æç«æã«ç´é²ãéæç«æã¯ãã®ã¾ã¾ãããã
ãããªãããã§ããããã®âããããâã¨ãã¦ãå ¨ã¡ã¢ãªã被è¦ãããããªããããããç´ç·ãæã£ã¦ããã°ããã
ãã¨ãã°ããã«ãã«ãæ²ç·ã«ããããã«ãã«ãæ²ç·ã¯ç©ºéå å¡«æ²ç·ã§ããã
ï¼æ¬¡å ã ã¨æ¬¡å³ã®ããã«ãªãã
â»ç»åå¼ç¨å
: http://d.hatena.ne.jp/ototoi/20090315/p1
ï¼æ¬¡å ã ã¨æ¬¡å³ã®ããã«ãªãã
â»ç»åå¼ç¨å
: http://blog.atake-i.com/?eid=1060863
ãã«ãã«ãæ²ç·ã¯ï¼®æ¬¡å
空éã§ãå
å¡«ã§ããã®ã§ããããæ¡ç¨ãã
ã»åºæ¬çã«ã¯ãã«ãã«ãæ²ç·ä¸ã®çªå°ãå®è¡ãã¦ãã
ã»æ¡ä»¶åå²ã§ã¯æ¡ä»¶æç«æã«ç´é²ãéæç«æã¯ãã®ã¾ã¾ãã«ãã«ãæ²ç·ä¸ã辿ã
ã®ãããªããã°ã©ãã³ã°ã¢ãã«ãèãããã¨ãåºæ¥ãã
ãã®å ´åãããã»ã©ã¾ã§ã®90度å転ãè¡åΤã§åããå¤ããã®ã¨ã¯éã£ã¦ãå°ãããºã«ãã¿ãè¦ç´ ãåºã¦ããããæ¡ä»¶åå²ããªããã°åºæ¬çã«ãã¹ã¦ã®ã¡ã¢ãªã使ãåã(空éå å¡«æ²ç·ãªã®ã§)ã®ã§ã¡ã¢ãªå¹çã¯ããããç¥ããªãã
ãã¦ããã®ãããªå®è¡ã¢ãã«ãããã°ã©ã ã®é£èªåã«å©ç¨ãããã¨ãèããâââã¨ãã話ãæ¸ãã¦ãããã¨æã£ãã¨ããã§ç ããªã£ã¦ããã®ã§ãã®ã¸ãã§ãä¼ã¿ãªããã
以ä¸ãé ã£æãã®æ¯è¨ãæ°å¹´ã®æ¨æ¶ã«ä»£ãã¾ãã¦ã
â è¿½è¨ 2013/09/09
Kickstarterã®ããã¸ã§ã¯ãã®Robot Turtlesããæ¬è¨äºã§æ¸ããäºæ¬¡å ããã°ã©ãã³ã°ã£ã½ãã²ã¼ã ä»æ§ã«ãªã£ã¦ããã®ã§ãç´¹ä»ã
Robot Turtles: The Board Game for Little Programmers
http://www.kickstarter.com/projects/danshapiro/robot-turtles-the-board-game-for-little-programmer