¤Þ¤º½é¤á¤Ë¡¦¡¦¡¦
»ä¤Î¥×¥í¥°¥é¥ß¥ó¥°¤Î¥³¥Ä¤òÅÁ¤¨¤é¤ì¤ì¤Ð¡¦¡¦¡¦¤È¤¤¤¦»×¤¤¡£
¿·¿Í¶µ°é¤Ç¤¤¤Ä¤â´¶¤¸¤ë¤³¤È¤Ï¡¢¥×¥í¥°¥é¥à¤ò½ñ¤¯Ç½ÎϤϤ¢¤Ã¤Æ¤â¡¢ºÇ¸å¤Þ¤Ç´°À®¤·¤Ê¤¤¤³¤È¤Ç¤¹¡£
¤¢¤È¾¯¤·¤Î¤È¤³¤í¤Þ¤Ç½ÐÍè¤ë¤Î¤Ç¤¹¤¬¡¢¤½¤³¤«¤éÀè¤Ë¤Ê¤«¤Ê¤«¿Ê¤á¤º¡¢»þ´Ö¤¬¤«¤«¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
¤½¤Î¸¶°ø¤Î¿¤¯¤Ï¡¢À߷פ¬Û£Ëæ¤À¤Ã¤¿¤ê¡¢µÕ¤Ë¥×¥í¥°¥é¥à¤¬Ê£»¨²á¤®¤Æ¤·¤Þ¤Ã¤¿¤ê¤Ê¤ÉÍÍ¡¹¤Ç¤¹¤¬¡£
²¿¤Ï¤È¤â¤¢¤ì¡¢¤¢¤ëÄøÅ٤ޤǤϴ°À®¤·¤Ê¤±¤ì¤Ð¡¢¥²¡¼¥à¤ÎÀ½ÉʤˤϤʤê¤Þ¤»¤ó¡£
¤¤¤Ä¤âÅÓÃæ¤Ç¹Ô¤µÍ¤Ã¤Æ¤·¤Þ¤¦¡£¤½¤ó¤Ê¿Í¤ÎÌò¤ËΩ¤Æ¤ì¤Ð¤È»×¤¤¡¢»ä¤Î¥×¥í¥°¥é¥àºîÀ®ÊýË¡¤ò¾Ò²ð¤·¤Æ¤ß¤¿¤¤¤È»×¤¤¤Þ¤¹¡£
¥¢¥»¥ó¥Ö¥é¤«¤é»Ï¤á¤¿·Ð¸³¤¬½ÅÍס¦¡¦¡¦¤«¤â¡©¡©
¼«Ê¬¤¬¥×¥í¥°¥é¥à¤ò»Ï¤á¤¿¤Î¤Ï¡¢£±£¸Ç¯Á°¤Ç¤¹¡£Åö»þ¤Î¥²¡¼¥à³«È¯¤Î¸À¸ì¤Ï¡¢¥¢¥»¥ó¥Ö¥é¤Ç¤·¤¿¡£
¥Õ¥¡¥ß¥³¥ó¤ä£Ð£Ã¥¨¥ó¥¸¥ó¤Ç¤Ï¡¢£¶£µ£°£²¡¢¥á¥¬¥É¥é¤Ï£¶£¸£°£°£°¡¢¥²¡¼¥à¥Ü¡¼¥¤¤ä¥²¡¼¥à¥®¥¢¤Ï¡¢£Ú£¸£°·Ï¤Ç¤¹¡£
£Ã¡¿£Ã¡Ü¡Ü¡¢£Ê£Á£Ö£Á¤Ê¤É¤Î¹âµé¸À¸ì¤È¤ÏÁ´¤¯¤³¤È¤Ê¤ê¡¢¥¢¥»¥ó¥Ö¥é¤Ï¡¢¤Þ¤µ¤·¤¯Äãµé¸À¸ì¤Ç¤¹¡£
¤½¤ó¤Ê¸À¸ì¤«¤é»Ï¤á¤¿Íýͳ¤«¤é¤Ê¤Î¤«¡¢»ä¤Î½ñ¤¯¥×¥í¥°¥é¥à¤Î½èÍýñ°Ì¤Ï¡¢¤È¤Æ¤âñ½ã¤Ç¤¹¡£
¥¢¥»¥ó¥Ö¥é¤Ç¥×¥í¥°¥é¥à¤ò½ñ¤¤¤¿·Ð¸³¤¬¤¢¤ëÊý¤Ê¤é¡¢ÁÛÁü¤Ç¤¤ë¤È»×¤¤¤Þ¤¹¤¬¡¢
ÈÆÍѥ쥸¥¹¥¿¡¼¤È¤¤¤¦ÊÑ¿ô¤ò³ÊǼ¤¹¤ë¾ì½ê¤¬¡¢¿ô¸Ä¤¢¤ë¤À¤±¤Ç¤¹¤«¤é¡¢
¶Ëü¤Ë¸À¤¦¤È¥á¥â¥ê¡¼¤«¤éÆÉ¤ß½Ð¤·¤Æ¡¢¥¢¥¥å¡¼¥à¥ì¡¼¥¿¡¼¤Ç·×»»¤ò¤·¤¿¤é¡¢¤Þ¤¿Ä¾¤°¤Ë¥á¥â¥ê¡¼¤ËÊݸ¤¹¤ë¤·¤«¤Ê¤¤¤Î¤Ç¤¹¡£
Åö»þ¤Î¥²¡¼¥à¥Ü¡¼¥¤¤Ê¤É¤Ï¡¢£Á£¸£°·Ï¤È¤¤¤Ã¤Æ¡¢Æ±¤¸£Ú£¸£°·Ï¤Ç¤¹¤¬¡¢Ì¿ÎáÂηϤˣɣؤȣɣ٥쥸¥¹¥¿¡¼¤¬¤¢¤ê¤Þ¤»¤ó¡£
¤È¤Ê¤ë¤È¡¢ÈÆÍѥ쥸¥¹¥¿¤Ï¡¢£Á¡¢£Â¡¢£Ã¡¢£Ä¡¢£Å¡¢£È¡¢£Ì¥ì¥¸¥¹¥¿¡¼¤Î¤ß¡£Î¢¥ì¥¸¤Ï¡¢¤¢¤Ã¤¿¤«¤â¡©
Î㤨¤Ð¡¢£±£°¥Ð¥¤¥È¤Î¥á¥â¥ê¡¼¥³¥Ô¡¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢²¼µ¤Î¤è¤¦¤Ê´¶¤¸¤Ë¤Ê¤ê¤Þ¤¹¡£
ORG 8000H
_INIT: LD HL,8100H ;¥¢¥É¥ì¥¹£¸£±£°£°ÈÖÃÏ
LD DE,8200H ;¥¢¥É¥ì¥¹£¸£²£°£°ÈÖÃÏ
LD C,10 ;¥ë¡¼¥×¥«¥¦¥ó¥¿¡¼¤Ë£±£°¤òÂåÆþ
_LOOP: LD A,(HL) ;£È£Ì¤Î¥¢¥É¥ì¥¹¤«¤é¡¢£Á¥ì¥¸¥¹¥¿¡¼¤Ë£±¥Ð¥¤¥ÈÆÉ¤ß¹þ¤à
LD (DE),A ;£Á¥ì¥¸¥¹¥¿¡¼¤ÎÃͤò¡¢£Ä£Å¤Î¥¢¥É¥ì¥¹¤Ë³ÊǼ
INC HL ;£È£Ì¥ì¥¸¥¹¥¿¡¼¤ò¥¤¥ó¥¯¥ê¥á¥ó¥È¡¡£¸£±£°£°ÈÖÃϤ«¤é¼¡¤Ï¡¢£¸£±£°£±ÈÖÃÏ
INC DE ;£Ä£Å¥ì¥¸¥¹¥¿¡¼¤ò¥¤¥ó¥¯¥ê¥á¥ó¥È¡¡£¸£²£°£°ÈÖÃϤ«¤é¼¡¤Ï¡¢£¸£²£°£±ÈÖÃÏ
DEC C ;¥«¥¦¥ó¥¿¡¼¤ò¡¢¥Ç¥¯¥ê¥á¥ó¥È
JP NZ,_LOOP ;£°¥Õ¥é¥°¤Î¥Ó¥Ã¥È¤¬Î©¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢_LOOP ½èÍý
END
¢¨ Z80 ¥·¥ß¥ì¡¼¥¿¡¼¤Ï¡¢¤³¤Á¤é¤«¤é¡¢¥À¥¦¥ó¥í¡¼¥É²Äǽ¤Ç¤¹¡£
¶Ëü¤ÊÎã¤Ç¤¹¤¬¡¢¤³¤ó¤Êñ½ã¤Ê¥×¥í¥°¥é¥à¤Î¤ß¤Ç¡¢Åö»þ¤Ï¥²¡¼¥à¤òºîÀ®¤·¤¿¤â¤Î¤Ç¤·¤¿¡£
½¾¤Ã¤ÆÊ£»¨¤Ê½èÍý¤ò¹Ô¤Ê¤¦¤È¤¤Ï¡¢°ìÅÙÊݸ¤·¤¿¥Ç¡¼¥¿¡¼¤«¤éºÆÅÙÆÉ¤ß¹þ¤ó¤Ç¡¢·×»»¤·¤Æ¤Ï¡¢¤Þ¤¿Êݸ¤¹¤ë¤È¤¤¤¦¡£
¤½¤Î·«¤êÊÖ¤·¤Ë¤è¤Ã¤Æ¡¢Ê£»¨¤Ê½èÍý¤ò¼ÂÁõ¤·¤Æ¤¤¤¿¤Î¤Ç¤¹¡£
¤½¤ó¤Ê´Ä¶¤Ç¥¢¥»¥ó¥Ö¥é¤Î¥×¥í¥°¥é¥à¤ò£±£°Ç¯¤âºîÀ®¤·¤Æ¤¤¿·ë²Ì¡¢
»ä¤Î¥×¥í¥°¥é¥à¥¹¥¿¥¤¥ë¤Ï¡¢¥Ç¡¼¥¿¡¼¥Æ¡¼¥Ö¥ë¤ä¡¢¥Ç¡¼¥¿¡¼ÊݸÍÑ¥á¥â¥ê¡¼¤ò¿¤¯³ÎÊݤ·¤Æ¤¤¤Þ¤¹¡£
£Ã¸À¸ì¤¤¤¦¤È¤³¤í¤ÎÇÛÎó¤ä¹½Â¤ÂΤΥݥ¤¥ó¥¿¡¼¤Ê¤É¤ò¿ÍѤ·¤Æ¤ª¤ê¤Þ¤¹¡£
¤Þ¤¿¥í¡¼¥«¥ëÊÑ¿ô¤â¡¢¾¯¤Ê¤¤¥ì¥¸¥¹¥¿¡¼¤Ç¤Î·Ð¸³¤«¤é¤«¡¢¤È¤Æ¤â¾¯¤Ê¤á¤Ç¤¹¡£
¤½¤·¤Æ¥×¥í¥°¥é¥à¼«ÂΤÏû¤¯¡¢¤Ò¤È¤Ä¤Î´Ø¿ô½èÍý¤Ï¡¢Ëؤɣ±£°¹Ô°Ê²¼¤Ç¤¹¡£Ä¹¤¯¤Æ¤â£²£°¹Ô¤°¤é¤¤¤Ç¤·¤ç¤¦¤«¡£
¤½¤ó¤ÊÌõ¤Ç¡¢»ä¤Î¥×¥í¥°¥é¥à¤Ï¡¢¤È¤Æ¤â¥·¥ó¥×¥ë¤Ç¤¹¡£¥ë¡¼¥×¤â¡¢for ¤·¤«»È¤¤¤Þ¤»¤ó¤·¡¢£³½Å¥ë¡¼¥×¤Ê¤ó¤ÆÌÇ¿¤Ë½ñ¤¤Þ¤»¤ó¡£
¹âµé¸À¸ì¤Ï¡¢ÍưפËÊÑ¿ôÄêµÁ¤¬½ñ¤±¤ë°Ù¡¢µÕ¤Ë¿¤¯¤Î½èÍý¤ò½ñ¤¤¹¤®¤Æ¡¢Ê£»¨²½¤·¤Æ¤·¤Þ¤¦¡£
¤³¤Î¸å¤Ç¾Ò²ð¤¹¤ëͽÄê¤Î¥È¥é¥ó¥×¤ÎÇÌÈ´¤¥²¡¼¥à¤Î¥×¥í¥°¥é¥ß¥ó¤Ë¤Ä¤¤¤Æ¤Ç¸À¤¨¤Ð¡¢
·¤Ã¤¿¥Ú¥¢¡¼¤Î¥«¡¼¥É¤ò¼Î¤Æ¤ë½èÍý¤¬¤¢¤ë¤È¤·¤Þ¤¹¡£
ÉáÄ̤˹ͤ¨¤ë¤È¡¢Â·¤Ã¤¿¥«¡¼¥É¤ò¼Î¤Æ¤ë¤Î¤Ë¤Ï¡¢¥«¡¼¥É¥Ú¥¢¡¼¤ÎȽÄê¤ò¹Ô¤¤¡¢
¼¡¤Ë·¤Ã¤¿¥«¡¼¥É¤ò¼Î¤Æ¤Æ¡¢ºÇ¸å¤Ë¡¢¥«¡¼¥É¥½¡¼¥È¤¹¤ë¤È¤¤¤¦½èÍý¤ò¹Í¤¨¤ëÌõ¤Ç¤¹¡£
ÌÞÏÀ¡¢½èÍýÁ´ÂΤȤ·¤Æ¤Ï¹ç¤Ã¤Æ¤¤¤Þ¤¹¤¬¡¢¤³¤ì¤ò°ìµ¤¤Ë½èÍý¤¹¤ë¥×¥í¥°¥é¥à¤Ï¡¢¤«¤Ê¤êÊ£»¨¤Ê¤â¤Î¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
¤½¤³¤Ç¤³¤ì¤é¤Î½èÍý¤ò¡¢¤Ê¤ë¤Ù¤¯Ê¬¤±¤Æ¡¢¥×¥í¥°¥é¥à¤òºîÀ®¤·¤¿¤¤¤È»×¤¤¤Þ¤¹¡£
¡¤Þ¤º¡¢¥«¡¼¥É¤ÈƱ¤¸Í×ÁǤÎÇÛÎó¤òÍѰդ·¤Æ¡¢Â·¤Ã¤¿¥«¡¼¥É¤Ë¥Õ¥é¥°¤òΩ¤Æ¤ë¤³¤È¡£
int card_buff[10] = { A,A,2,3,4,4,6,8,9,9 };
int pare_flag[10] = { 1,1,0,0,1,1,0,0,1,1 };
¢¼¡¤Ë¡¢Â·¤Ã¤¿¥Õ¥é¥°¤«¤é¡¢¥«¡¼¥É¤ò¼Î¤Æ¤ë¤³¤È¡££°¤Ç¾å½ñ¤¤¹¤ë¡£
int card_buff[10] = { 0,0,2,3,0,0,6,8,0,0 };
int pare_flag[10] = { 1,1,0,0,1,1,0,0,1,1 };
£ºÇ¸å¤Ë¡¢¥«¡¼¥É¥Ð¥Ã¥Õ¥¡¡¼¤ò¥½¡¼¥È¤¹¤ë¤³¤È¡£Ã¢¤·¡¢ÊÌÅÓ¥½¡¼¥ÈÍѤΥХåե¡¡¼¤ò»ý¤Ã¤Æ¡¢¤Þ¤º¤Ï¥³¥Ô¡¼¤¹¤ë¤³¤È¡£
int card_buff[10] = { 0,0,2,3,0,0,6,8,0,0 };
int card_sort[10] = { 2,3,6,8,0,0,0,0,0,0 };
¤¤¢¤È¤Ï¡¢card_sort ¤«¤é¡¢card_buff ¤Ë¥³¥Ô¡¼¤·¤Æ½ªÎ»¤Ç¤¹¡£
·ë²Ì¡¢pare_flag ÇÛÎó¤È¡¢card_sort ¤Î£²¤Ä¤Î¥Æ¥ó¥Ý¥é¥ê¡¼ÍѤΥХåե¡¡¼¤ò¾ÃÈñ¤·¤Þ¤¹¤¬¡¢
¤Ò¤È¤Ä¤Ò¤È¤Ä¤Î½èÍý¤Ï¡¢¤È¤Æ¤âñ½ã¤Ê½èÍý¤Ë¤Ê¤ê¤Þ¤¹¡£
¢¨¡¤Î¥×¥í¥°¥é¥à
void pare_check()
{
int i;
for( i = 0; i < sizeof(card_buff)/sizeof(int) ; i++)
{
pare_flag[i] = 0; // ¥Ð¥Ã¥Õ¥¡¡¼¥¯¥ê¥¢¡¼
}
for( i = 0; i < sizeof(card_buff)/sizeof(int) ; i++)
{
if( card_buff[i] == card_buff[i+1] ) {
pare_flag[i] = pare_flag[i+1] = 1;
i++; // ·¤Ã¤Æ¤¤¤¿¤é¡¢¤Ò¤È¤ÄÈô¤Ð¤¹¡£
}
}
}
pare_check(); // ¡¥Ú¥¢¡¼¤ò¥Á¥§¥Ã¥¯¡¢£±¤òΩ¤Æ¤ë
pare_fill(); // ¢¥Ú¥¢¡¼¤ò£°¤Ç¾å½ñ¤
pare_sort(); // £¥Õ¥é¥°¤ò»²¾È¤·¤Ê¤¬¤é¡¢Ê̥Хåե¡¡¼¤Ø¥³¥Ô¡¼
card_copy(); // ¤¤â¤È¤Î¥Ð¥Ã¥Õ¥¡¡¼¤ËÌ᤹¡£
Ê̤ΥХåե¡¡¼¤òÊ£¿ôÀߤ±¤Æ¡¢½èÍý¤òñ½ã²½¤¹¤ë¡£
¤µ¤Æ¡¢¡°Ê³°¡¢¢£¤¤Ï¡¢¤ß¤Ê¤µ¤ó¼«ÎϤǺîÀ®¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£
¤½¤·¤ÆºÇ¸å¤Ë¡¢¡¢£¤¤òϢ³¤·¤Æ¸Æ¤Ó½Ð¤»¤Ð´°À®¤·¤Þ¤¹¡£
¤µ¤Æ¤ß¤Ê¤µ¤ó¤Ï¡¢¤É¤ó¤Ê¥×¥í¥°¥é¥à¤òºÇ½é¤Ë¹Í¤¨¤Þ¤·¤¿¤«¡£
¡¡Á¤¤Þ¤Ç¤Ò¤È¤Ä¤Î´Ø¿ô¤ÇºîÀ®¤·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ëÊý¤â¿¤¤¤«¤âÃΤì¤Þ¤»¤ó¡£
´°À®¤·¤Æ¤¤¤ì¤Ð¡¢¤½¤ì¤Ç¤â¤¤¤¤¤Î¤Ç¤¹¤¬¡¢¤â¤·¥Ð¥°¼è¤ê¤Ë»þ´Ö¤¬¤«¤«¤Ã¤Æ¤¤¤ë¤Ê¤é¡¢
»ä¤Î¤è¤¦¤Ëñ½ã¤Ê½èÍý¤Ëʬ²ò¤·¤Æ¤ß¤Æ¤Ï¡¢Ç¡²¿¤Ç¤·¤ç¤¦¤«¡©
Ê̥Хåե¡¡¼¤òÀߤ±¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢ÅÓÃæ·Ð²á¤âʬ¤«¤ê¤Þ¤¹¤«¤é¡¢¥Ç¥Ð¥Ã¥°¤âÍÆ°×¤Ë¤Ê¤ê¤Þ¤¹¡£
À§È󡢻פ¤Åö¤¿¤ëÀ᤬¤¢¤ë¤Ê¤é¡¢»ä¤ÎÊýË¡¤ò¤ª»î¤·²¼¤µ¤¤¡£
|