»ä¤¿¤Á¤Î¥°¥ë¡¼¥×¤Ç¤Ï¥×¥í¥°¥é¥à¤ò¤è¤ê´Êñ¤Ë¤¹¤ë¤¿¤á¤Ë¡¢x¼´y¼´¤Ç¥Ú¥ó¤òÆ°¤«¤¹¥í¥Ü¥Ã¥È¤òÁȤßΩ¤Æ¤¿¡£¤½¤Î¤¿¤á¤Ë3¤Ä¤·¤«¤Ê¤¤¥â¡¼¥¿¡¼¤òx¼´ÍÑ¡¢y¼´ÍÑ¡¢¥Ú¥ó¤Î¾å²¼ÍѤ˻ÈÍѤ·¤¿¡£
º£²ó¡¢»ä¤Ï¡ÖÁ°´ü¡×¤Î¡Ö´ü¡×¤òôÅö¤·¤¿¡£²¼¤Î¼Ì¿¿¤¬½ñ¤¤¤¿»ú¤Ç¤¢¤ë¡£
Á´ÂÎÁü¤Î¼Ì¿¿¤ò¸«¤Æ¤ÎÄ̤ꡢ±¦Á°Â¦¤Î¥Ú¥ó¤¬¼è¤êÉÕ¤±¤é¤ì¤Æ¤¤¤ë¤È¤³¤í¤¬½Å¤¯¤Ê¤ë¤¿¤á¡¢ÅÅÃÓ¤¬Æþ¤Ã¤¿¥Ü¥Ã¥¯¥¹¤ò½ÐÍè¤ë¤À¤±º¸¸åÊý¤ËÃÖ¤¥Ð¥é¥ó¥¹¤ò¤È¤ë¤è¤¦¤Ë¤·¤¿¡£
¥ì¡¼¥ë¤Ï¥Ú¥ó¤òº¸±¦¤Ë°ÜÆ°¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£¥â¡¼¥¿¡¼¤Ë¤Ä¤Ê¤¬¤Ã¤Æ¤¤¤ëÆó¤Ä¤Î¥¿¥¤¥ä¤È²¿¤â¤Ä¤Ê¤¬¤Ã¤Æ¤¤¤Ê¤¤2¤Ä¤Î¥¿¥¤¥ä¤Î4¤Ä¤Î¥¿¥¤¥ä¤Ç¹½À®¤µ¤ì¤Æ¤ª¤ê¡¢¤½¤Î¾å¤ò¥¢¡¼¥à¤¬²£°ÜÆ°¤¹¤ë¡£¤½¤Î»þ¤Ë¥¿¥¤¥ä¤«¤é¤º¤ì¤¿¤êÍî²¼¤·¤Ê¤¤¤è¤¦¤Ë¦Ì̤Ⱦ妤˥֥í¥Ã¥¯¤ò¼è¤êÉÕ¤±¤¿¡£(²¼¤Î¼Ì¿¿¤Ç¤Ï¾å¦¤Î¥Ö¥í¥Ã¥¯¤Ï³°¤µ¤ì¤Æ¤¤¤ë)
¤Þ¤º¥Ú¥ó¤Î¸ÇÄê¤Ï¥´¥à¤Ç»ß¤á¤¿¡£(¼Ì¿¿¾å)¤Þ¤¿ÉáÄ̤˥®¥¢¤ò¼è¤êÉÕ¤±¤¿¤À¤±¤Ç¤ÏÀª¤¤¤è¤¯¥Ú¥ó¤¬¾å²¼¤·¤Æ¤Ö¤Ã¤È¤ó¤Ç¤·¤Þ¤¦¤¿¤á¡¢¤¦¤Þ¤¯¥®¥¢¤òÁȤ߹ç¤ï¤»¤Æ²óž¿ô¤ò¸º¤é¤·¾å²¼±¿Æ°¤ò¤æ¤Ã¤¯¤ê¤µ¤»¤¿¡£²¼¤Î¼Ì¿¿¤Ï¥â¡¼¥¿¡¼Éôʬ¤Î¼Ì¿¿¤Ç¤¢¤ë¡£
´ðËܤΥڥó¤Î¾å²¼¤Î¥×¥í¥°¥é¥à¤ÈÁ°¸å°ÜÆ°¤Î¥×¥í¥°¥é¥à¤ò°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤·¤¿¡£ÁêÊý¤È¶¦Æ±¤Ç¥×¥í¥°¥é¥à¤òºîÀ®¤·¤¿¤¿¤á¡¢´ðËÜƱ¤¸ÄêµÁ¤¬¤Ê¤µ¤ì¤Æ¤¤¤ë¡£
#define PEN_TIME 100¡¡//¥Ú¥ó¤òÆ°¤«¤¹»þ´Ö #define PEN_UP OnFwd(OUT_C);Wait(PEN_TIME);Off(OUT_C);¡¡//¥Ú¥ó¤ò¾å¤²¤ëÆ°ºî #define PEN_DOWN OnRev(OUT_C);Wait(PEN_TIME);Off(OUT_C);//¥Ú¥ó¤ò²¼¤²¤ëÆ°ºî #define FORWARD(FWD_TIME) OnFwd(OUT_A);Wait(FWD_TIME);Off(OUT_A);//Á°¤Ë°ÜÆ°¤¹¤ë¥×¥í¥°¥é¥à #define BACK(back_time) OnRev(OUT_A);Wait(back_time);Off(OUT_A);//¸å¤í¤Ë°ÜÆ°¤¹¤ë¥×¥í¥°¥é¥à
#define MIGIUE_GO(migiue_time) OnRev(OUT_B);OnFwd(OUT_A);Wait(migiue_time);Off(OUT_AB);//±¦¾å¤Ë°ÜÆ°¤¹¤ë¥×¥í¥°¥é¥à #define NANAME_R PEN_DOWN;OnRev(OUT_AB);Wait(5);Off(OUT_AB);PEN_UP;//±¦¤Îʧ¤¤¤òÉÁ¤¯¥×¥í¥°¥é¥à #define NANAME_L PEN_DOWN;OnFwd(OUT_A);OnRev(OUT_B);Wait(5);Off(OUT_AB);PEN_UP;//º¸Ê§¤¤¤òÉÁ¤¯¥×¥í¥°¥é¥à sub HANOJI()//¥Ï¥Î»ú¤ò½ñ¤¯¥×¥í¥°¥é¥à { NANAME_L; OnRev(OUT_B); Wait(5); Off(OUT_B); NANAME_R; }
¡¡task main() { OnRev(OUT_B); Wait(20); Off(OUT_B);¡¡¡¡//»ÏÅÀ¤Ë°ÜÆ°¤¹¤ë¥×¥í¥°¥é¥à
PEN_DOWN; BACK(15); PEN_UP;¡¡¡¡¡¡//ÀÖ¡¤Î¥×¥í¥°¥é¥à
OnFwd(OUT_B); Wait(15);Off(OUT_B);¡¡¡¡¡¡//ÀÖ¢¤Ø°Ü¹Ô¤¹¤ë¥×¥í¥°¥é¥à
PEN_DOWN; FORWARD(15); PEN_UP;¡¡¡¡¡¡//ÀÖ¢¤Î¥×¥í¥°¥é¥à
OnFwd(OUT_B);OnRev(OUT_A); Wait(5); Off(OUT_AB);¡¡¡¡¡¡//ÀÄ¡¤Ë°ÜÆ°¤¹¤ë¥×¥í¥°¥é¥à
PEN_DOWN; OnRev(OUT_B); Wait(20);Off(OUT_B); PEN_UP;¡¡¡¡¡¡//ÀÄ¡¤Î¥×¥í¥°¥é¥à
OnFwd(OUT_B);OnRev(OUT_A); Wait(5); Off(OUT_AB);¡¡¡¡¡¡¡¡//ÀÄ¢¤Î¥×¥í¥°¥é¥à
PEN_DOWN; OnFwd(OUT_B); Wait(10); Off(OUT_B); PEN_UP;¡¡¡¡¡¡¡¡//ÀÄ£¤Î¥×¥í¥°¥é¥à
BACK(5);¡¡¡¡¡¡ //ÀĤ¤Î¥×¥í¥°¥é¥à
PEN_DOWN; OnRev(OUT_B); Wait(10); Off(OUT_B); PEN_UP;¡¡¡¡¡¡¡¡//ÀÄ¥¤Î¥×¥í¥°¥é¥à
OnRev(OUT_AB); Wait(5); Off(OUT_AB);¡¡¡¡¡¡//ÀĦ¤Î¥×¥í¥°¥é¥à
PEN_DOWN; OnFwd(OUT_B); Wait(20);Off(OUT_B); PEN_UP;¡¡¡¡¡¡¡¡//Àħ¤Î¥×¥í¥°¥é¥à
BACK(10);¡¡¡¡¡¡¡¡//ÀĨ¤Î¥×¥í¥°¥é¥à
HANOJI();//¶¤Î¥Ï¤Î»ú¤ò½ñ¤¯¥×¥í¥°¥é¥à MIGIUE_GO(20);//·î¤Î»ÏÅÀ¤Ë°ÜÆ°¤¹¤ë¥×¥í¥°¥é¥à }
½ñ¤¤Ï¤¸¤á¤ò±¦¤Î½ÄËÀ¤«¤é¤Ë¤·¤¿¤Î¤Ç¡¢¤Î¤Á¤Ëº¸Â¦¤Ø°ÜÆ°¤¹¤ë¤³¤È¤òƧ¤Þ¤¨²ÄÆ°°è¤òĶ¤¨¤Ê¤¤¤è¤¦¤ËÄ´À°¤¹¤ë¤¿¤á¤Ë¡¢ºÇ½é¤Ëº¸Â¦¤Ø°ÜÆ°¤¹¤ëµ÷Υʬ¤ò¥Ú¥ó¤ò±¦Â¦¤Ø°ÜÆ°¤µ¤»¤¿¡£
4Ëܤβ£Àþ¤Ï°ìÉ®½ñ¤¤Î¤è¤¦¤Ë¥×¥í¥°¥é¥à¤òÁȤó¤À¡£Íýͳ¤Ï¤½¤¦¤·¤¿¤Û¤¦¤¬¥Ï¥Î»ú¤ò½ñ¤¯¤È¤¤Ë¥×¥í¥°¥é¥à¤òÁȤߤ䤹¤¯¤Ê¤ë¤«¤é¤Ç¤¢¤ë¡£1¤ÄÌܤβ£Àþ¤«¤é2¤ÄÌܤβ£Àþ¡¢3¤ÄÌܤβ£Àþ¤«¤é4¤ÄÌܤβ£Àþ¤Ø°ÜÆ°¤¹¤ë¤È¤¤Ïx¼´¤Èy¼´¤ÎÆ°¤¤òϢư¤µ¤»¼Ð¤á°ÜÆ°¤Ë¤·¤¿¡£ ¡Ê¥×¥í¥°¥é¥à¤Î²£¤Î¿ô»ú¤Ï¼Ì¿¿¤Î¿ô»ú¤ÈÂбþ¤·¤Æ¤¤¤ë¡Ë
void TSUKI (int t) { PEN_DOWN; BACK(3*t); PEN_UP; //·î¤Î£±²èÌÜ OnRev(OUT_B); Wait(t); Off(OUT_B); //1²èÌܤνªÅÀ¤«¤é£²²èÌܤλÏÅÀ PEN_DOWN; FORWARD(3*t); PEN_UP; //£²²èÌܡʲ¼¤«¤é¾å¡Ë repeat(3) //£³Ëܤβ£Àþ¤ò½ñ¤¯¥×¥í¥°¥é¥à { PEN_DOWN; OnFwd(OUT_B); Wait(t+1);Off(OUT_B); PEN_UP; //²£Àþ¤ò°ú¤¯¥×¥í¥°¥é¥à OnRev(OUT_AB); Wait(t); Off(OUT_A); Wait(1); Off(OUT_B); //¼¡¤Î²£Àþ¤Î»ÏÅÀ¤Ë°ÜÆ°¤¹¤ë¥×¥í¥°¥é¥à }
task main() { TSUKI(7) ¡¡//·î¤òÉÁ¤¯¥×¥í¥°¥é¥à }
·î¤Ë¤Ä¤¤¤Æ¤Ï¡ÖÁ°¡×¤Î·î¤Çºî¤Ã¤¿¥×¥í¥°¥é¥à¤ò»ÈÍѤ·¤¿¡£Æ±¤¸Ä¹¤µ¤Î²£Àþ¤¬»°Ëܤ¢¤ë¤Î¤Ç¡¢repeat¤òÍѤ¤¤Æ´Êά²½¤·¤¿¡£¤Þ¤¿¡ÖÁ°¡×¤è¤ê¤â·î¤Î»ú¤¬¾®¤µ¤¯¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¤¿¤át¤ÎÃͤòÊѹ¹¤·¤¿¡£(¶¤¬¾®¤µ¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¤¥µ¥¤¥º¤ò¹ç¤ï¤»¤ë¤¿¤á¡£)·î¤Î²£ËÀ¤ÎŤµ(²¼¤Î2ËÜ)¤¬¤º¤ì¤Æ¤·¤Þ¤Ã¤¿¤¿¤á¡¢¸íº¹¤ò½¤Àµ¤¹¤ë¤¿¤á¤Î+1¤ò²Ã¤¨¤¿¡£
»ú¤¬¤È¤Æ¤â¤Õ¤Ë¤ã¤Ã¤È¤·¤Æ¤ª¤ê(Æä˽ÄÀþ)¡¢½ÐÍ褬¤¢¤Þ¤ê¤è¤¯¤Ê¤«¤Ã¤¿¡£¤â¤¦¤¹¤³¤·ÊÓ¤ò»ý¤ÄÉôʬ¤òÊ䶯¤Ç¤¤ì¤Ð¤è¤¯¤Ê¤Ã¤¿¤Î¤Ç¤Ï¤Ê¤¤¤«¤È»×¤¦¡£¤Þ¤¿Â¶¤ÎÉôʬ¤ò¤â¤¦¤¹¤³¤·¥×¥í¥°¥é¥ß¥ó¥°¤ò¤¤ì¤¤¤Ë¤Ç¤¤¿¤é¤è¤«¤Ã¤¿¡£º£²ó¤òƧ¤Þ¤¨¤Æ¡¢¼¡²ó¤Ï¤â¤Ã¤È¤è¤¤¤â¤Î¤òºî¤ê¤¿¤¤¡£