²Ï¸¶ÎÓ¸¦µæ¼¼ >> ¥Þ¥¤¥¯¥í¥í¥Ü¥Ã¥È¥µ¥Ã¥«¡¼ÆüËÜ°ì¤Ø¤ÎÆ» >> GK¥×¥í¥°¥é¥à
¡¡Ëܸ¦µæ¤Ç¤Ï¡¢¤Þ¤º¼ê»Ï¤á¤Ë¡¢´Êñ¤Ê¥´¡¼¥ë¥¡¼¥Ñ¡¼¤Î¹ÔÆ°¥Ñ¥¿¡¼¥ó¤òÁȤó¤Ç¤¤¤ë¡£¤³¤³¤Ç¤Ï¸½ºßºîÀ®Ãæ¤Î¥´¡¼¥ë¥¡¼¥Ñ¡¼¤Î¹ÔÆ°¥Ñ¥¿¡¼¥ó¤Ë¤Ä¤¤¤Æ¡¢°Ê²¼¤Ë¤½¤Î¼ê½ç¤òÀâÌÀ¤¹¤ë¡£Fig.8¤Ï¡¢ÀâÌÀ¤Ë»ÈÍѤ¹¤ë¥Õ¥£¡¼¥ë¥É¾å¤Î³Æ̾¾Î¤Ç¤¢¤ë¡£
¡¡
Fig.8 ¥´¡¼¥ë¥¡¼¥Ñ¡¼¥¢¥ë¥´¥ê¥º¥à¡Ê³Æ̾¾Î¡Ë
¡½é¤á¤Ë¡¢½é´ü°ÌÃÖ¡Ê(x , y)=(5 , FIELD_WIDTH/2)¡Ë¤Ø¸þ¤«¤¦¡£FIERD_WIDETH¤È¤Ï¡¢¥Õ¥£¡¼¥ë¥É¤ÎÉý¡Ê¥Õ¥£¡¼¥ë¥É¤Îx¼´Êý¸þ¤ÎŤµ¡Ë¤Î¤³¤È¤Ç¤¢¤ë¡£¤³¤³¤Ç¡¢FIELD_WIDETH¤Ï¡¢480[px]¤È¤¹¤ë¡£
Fig.9 ¹ÔÆ°¡
¢¤â¤·¡¢½é´ü°ÌÃ֤˰ìÅ٤Ǥ⤤¤¿¤³¤È¤¬¤¢¤ë¤Ê¤é¡¢¥Ü¡¼¥ë¤ÈºÂɸ¤ò¹ç¤ï¤»¤ë¡£
Fig.10 ¹ÔÆ°¢
£¥Ü¡¼¥ë¤¬½³¤ì¤ë°ÌÃ֤ˤ¢¤ë¤È¤¡¢¥Ü¡¼¥ë¤ò¥¯¥ê¥¢¤¹¤ë¡£
¡¡´Êñ¤Ê¥´¡¼¥ë¥¡¼¥Ñ¡¼¹ÔÆ°¥Ñ¥¿¡¼¥ó´°À®¸å¡¢Ëܸ¦µæ¤Î´ðËÜ·¿¤È¤Ê¤ë¥Î¡¼¥Þ¥ë¥¿¥¤¥×¤Î¥´¡¼¥ë¥¡¼¥Ñ¡¼¤Î¹ÔÆ°¥Ñ¥¿¡¼¥ó¤òºîÀ®¤·¤¿¡£¤³¤³¤Ç¤Ï¡¢¤½¤Î¥´¡¼¥ë¥¡¼¥Ñ¡¼¤Î¥¢¥ë¥´¥ê¥º¥à¤Î³µÍפˤĤ¤¤ÆÀâÌÀ¤¹¤ë¡£
Fig.11 ¥´¡¼¥ë¥¡¼¥Ñ¡¼¥¢¥ë¥´¥ê¥º¥à¡¡
¡¡¡¡¡¡¡¡¡¡¡¡
¡¥Ü¡¼¥ë¤¬½³¤ì¤ë¤È¤¡¢¥Ü¡¼¥ë¤òŨ¤Î¤¤¤Ê¤¤¥µ¥¤¥É¤Ø¤È¥¯¥ê¥¢¤¹¤ë¡£
¢¥Ü¡¼¥ë¤òÄɤäơ¢¥´¡¼¥ë¤«¤éÎ¥¤ì¤¹¤®¤¿¤È¤¡Ê¥Õ¥£¡¼¥ë¥É¤Î1/2¡Ë¡¢¥´¡¼¥ë¤Ø¤È¶á¤Å¤¯¡£
£¥Ü¡¼¥ë¤¬¶á¤¤¤È¤¡Ê¥Õ¥£¡¼¥ë¥É¤Î1/5¡Ë¡¢¥Ü¡¼¥ë¤Ø¶á¤Å¤¯¡£
¤¥Ü¡¼¥ë¤¬Áê¼ê¥Õ¥£¡¼¥ë¥É¤Ë¤¢¤ë¤È¤¡¢½é´ü°ÌÃÖ¤ËÌá¤ë¡£
¥¤½¤ì°Ê³°¤Î¾ì¹ç¡¢2ËܤΥ´¡¼¥ë¥Ý¡¼¥ë¤ÎÃæ´Ö¤Î°ÌÃÖ¤òÃæ¿´¤È¤·¤¿È¾·Â£ò¤Î±ß¤ò´ðËܤΰÌÃ֤Ȥ¹¤ë¡£¤µ¤é¤Ë±ß¤ÎÃæ¿´¤È¥Ü¡¼¥ë¤ÎºÂɸ¤È¤ò·ë¤ó¤ÀľÀþ¤ò¹Í¤¨¡¢¤½¤Î2¤Ä¤ÎÀþ¤Î¸òÅÀ¤òÌÜŪÃϤȤ·¤Æ¤½¤³¤Ø¤È¸þ¤«¤¦¤è¤¦¤Ë¤¹¤ë¡£
¢¨±ß¤ÎȾ·Â£ò¤Ï¡¢¥Ü¡¼¥ë¤È¤Îµ÷Î¥¤Ë±þ¤¸¤ÆÊѲ½¤¹¤ë¡£
¡¡¥²¡¼¥àÀ¤ò¹Í¤¨¤Æ¡¢¥´¡¼¥ë¥¡¼¥Ñ¡¼¤Î¹ÔÆ°¤Ë¶¯¼å¤òÉÕ¤±¤¿¡£¤³¤³¤Ç¤Ï¡¢¥Î¡¼¥Þ¥ë¥¿¥¤¥×¤Î¥´¡¼¥ë¥¡¼¥Ñ¡¼¤Ë¡¢¿·¤¿¤Ê¹ÔÆ°¥Ñ¥¿¡¼¥ó¤òÉÕ¤±Â¤¹·Á¤ÇÀ½ºî¤ò¹Ô¤Ã¤¿¡¢¥¤¡¼¥¸¡¼¥¿¥¤¥×¤Î¥´¡¼¥ë¥¡¼¥Ñ¡¼¤Ë¤Ä¤¤¤Æ¤ÎÀâÌÀ¤ò¹Ô¤¦¡£
Fig.12¡¡£±¼éÈ÷¥»¥Ã¥·¥ç¥ó¤ÎÄêµÁ¡¡
¡¡¡¡¡¡
¡¡¤Þ¤º¡¢Ï¢Â³Æ°ºî¤ò¤µ¤»¤ë¤¿¤á¤Ë¡¢£±¼éÈ÷¥»¥Ã¥·¥ç¥ó¤ÎÄêµÁ¤ò¹Ô¤¦¡£
¡¡¤³¤³¤Ç¤Ï¡¢¥´¡¼¥ë¥¡¼¥Ñ¡¼¤Î£±¼éÈ÷¥»¥Ã¥·¥ç¥ó¤ò¡¢¡Ö¥Ü¡¼¥ë¤¬¼«Ê¬¤Î¶á¤¯¤ËÍè¤Æ¤«¤éºÆ¤ÓÎ¥¤ì¤ë¤Þ¤Ç¡×¤ò¹ÔÆ°¤Î°ì¶èÀÚ¤ê¤È¤·¤Æ¡¢¤³¤ì¤ò1¥»¥Ã¥·¥ç¥ó¤È¾ò·ïÉÕ¤±¤ë¡£¶ñÂÎŪ¤Ë¤ÏFig.12¤Ë¼¨¤¹¤è¤¦¤Ë¡¢¥Ü¡¼¥ë¤È¤Îµ÷Î¥¤¬40[px]°Ê²¼¤Ë¤Ê¤Ã¤¿¸å¤Ë¡¢¥Ü¡¼¥ë¤È¤Îµ÷Î¥¤¬100[px]°Ê¾å¤Ë¤Ê¤ë¤Þ¤Ç¤ò¡¢1¼éÈ÷¥»¥Ã¥·¥ç¥ó¤ÈÄêµÁ¤·¤Æ¤¤¤ë¡£
¡¡¥×¥í¥°¥é¥à¤Ï¡¢¾ò·ïʬ¤±¤µ¤ì¤¿¹ÔÆ°¤ò¡¢¤È¤Æ¤âû¤¤»þ´Ö¤ÇϢ³¤·¤Æ¼Â¹Ô¤·¤Æ¤¤¤ë¡£¤³¤³¤Ç¤Ï¡¢Íð¿ô¤ò»È¤Ã¤Æ¾ò·ïʬ¤±¤ò¹Ô¤¦¤¬¡¢¥×¥í¥°¥é¥à¤Î1Å٤μ¹Ԥò£±¼éÈ÷¥»¥Ã¥·¥ç¥ó¤È¤ß¤Ê¤·¤¿¾ì¹ç¡¢1ÅÙ¤ä2ÅÙÆ°ºî¤Î¾ò·ïʬ¤±¤ò¤·¤¿¤È¤³¤í¤Ç¡¢¤½¤Î¾¤ÎϢ³¤·¤¿Â礤ÊÆ°ºî¤Ë±£¤ì¤Æ¤·¤Þ¤¦¡£¤½¤Î¤¿¤á¤Ë¡¢1ÅÙ¤½¤ÎÆ°ºî¤ò¹Ô¤¦¤È·è¤á¤¿¾ì¹ç¤Ë¡¢¤½¤Î¸å°ìÄê¤Î¾ò·ï¤òËþ¤¿¤¹¤Þ¤Ç¤Ï¡¢¤½¤ÎÆ°ºî¤ò¼Â¹Ô¤·Â³¤±¤ë¤È¤¤¤¦·Á¤Ç¡¢¥×¥í¥°¥é¥à¤òÁȤßΩ¤Æ¤¿¡£
¡¡
¡¡°Ê²¼¡¢¥¢¥ë¥´¥ê¥º¥à¤ÎÄɲäˤĤ¤¤ÆÀâÌÀ¤¹¤ë¡£
ÄɲÃ1¡¡¡¨¡¡¥Ü¡¼¥ë¤ò¥¯¥ê¥¢¤¹¤ë»þ¡¢4¼éÈ÷¥»¥Ã¥·¥ç¥ó¤Ë1ÅÙ¤À¤±¡¢¼«Ê¬¤Î¼é¤ë¥´¡¼¥ë¤Ë¸þ¤«¤Ã¤Æ¥·¥å¡¼¥È¡Ê¥¯¥ê¥¢¥ß¥¹¡Ë¤¹¤ë¡£
ÄɲÃ2¡¡¡¨¡¡2¼éÈ÷¥»¥Ã¥·¥ç¥ó¤Ë1ÅÙ¤À¤±¡¢Æ°ºî¤Î´°Î»¸å¤Ë2Éô֤À¤±Æ°¤¤òÄä»ß¤¹¤ë¡£¡Êµåµ»¤ò¤¹¤ë¤È¤¡¢¤½¤ÎÂоݤ¬¶á¤¯¤Ë¤¢¤ë¤È¤¤Ï½¸Ã椷¤Æ¤¤¤ë¤¬¡¢¤½¤Î½¸Ã椷¤Æ¤¤¤¿¾õÂÖ¤«¤é1ÅÙÎ¥¤ì¤ë¤È¤¤ËÌýÃǤ·¤Æ¤·¤Þ¤¦¾ì¹ç¤¬Â¿¤¤¤¿¤á¡£¡Ë
¤³¤Î¥¤¡¼¥¸¡¼¥¿¥¤¥×¤Î¥´¡¼¥ë¥¡¼¥Ñ¡¼¤ò»ÈÍѤ·¤Æ¤ß¤¿¤¬¡¢¥·¥¹¥Æ¥à¤ÎÆ°ºî¾å¡¢¤¢¤Þ¤ê¥Î¡¼¥Þ¥ë¥¿¥¤¥×¤È¤Îº¹¤ò½Ð¤¹¤³¤È¤¬¤Ç¤¤Ê¤«¤Ã¤¿¡£
if(gPlayer.pv_can_kick()){ ¡¡¡¡gPlayer.pv_kick(M_PI/4-gWorldData.mtmrjsk_return_my_angle2(),100); //¥¯¥ê¥¢¤Î´Ø¿ô// }else{ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡gPlayer.pv_go_to(gWorldData.mtmrjsk_return_vector_t2(5,gWorldData.mtmrjsk_return_y_coord2(gWorldData.pv_ball()))); //ÌÜŪÃϤؤΰÜÆ°¤Î´Ø¿ô// }
double xd,yd,cd,rd,Rd; double FW=gWorldData.mtmrjsk_return_field_width(); double FL=gWorldData.mtmrjsk_return_field_length(); //ÌÜŪÃϺÂɸ¤Î·×»»¡Ê¤³¤³¤«¤é¡Ë// cd=atan((gWorldData.mtmrjsk_return_y_coord2(gWorldData.pv_ball())-gWorldData.mtmrjsk_return_field_width()/2)/(gWorldData.mtmrjsk_return_x_coord2(gWorldData.pv_ball()))); Rd=sqrt((gWorldData.mtmrjsk_return_x_coord2(gWorldData.pv_ball())) *(gWorldData.mtmrjsk_return_x_coord2(gWorldData.pv_ball()))+(gWorldData.mtmrjsk_return_y_coord2(gWorldData.pv_ball())-FW/2)*(gWorldData.mtmrjsk_return_y_coord2(gWorldData.pv_ball())-FW/2)); if(Rd<FL/5*2) rd=FL/5; else if(Rd>FL/2) rd=FL/4; else rd=Rd/2; xd=rd*cos(cd); yd=rd*sin(cd)+gWorldData.mtmrjsk_return_field_width()/2; //ÌÜŪÃϺÂɸ¤Î·×»»¡Ê½ª¤ï¤ê¡Ë// //¹ÔÆ°¤Îʬ´ô¡Ê¤³¤³¤«¤é¡Ë// if(gPlayer.pv_can_kick()){ if(gWorldData.mtmrjsk_return_angle2(gWorldData.pv_opponent( gWorldData.pv_closest_opponent_to(gWorldData.pv_ball()))) > 0){ gPlayer.pv_kick(M_PI/6-gWorldData.mtmrjsk_return_my_angle2(),1); }else{ gPlayer.pv_kick(-M_PI/6-gWorldData.mtmrjsk_return_my_angle2(),1); } //¥¯¥ê¥¢¤Î´Ø¿ô// }else if(gWorldData.mtmrjsk_return_vector_t2(0,FW/2).length > FL/3 || gWorldData.mtmrjsk_return_x_coord2(gWorldData.pv_ball()) > FL/2 || gWorldData.pv_ball().length > FL/5){ gPlayer.pv_go_to(gWorldData.mtmrjsk_return_vector_t2(xd,yd)); //ÌÜŪÃϤؤΰÜÆ°¤Î´Ø¿ô// }else{ gPlayer.pv_go_to(gWorldData.pv_ball()); //¥Ü¡¼¥ë¤òÄɤ¦´Ø¿ô// } //¹ÔÆ°¤Îʬ´ô¡Ê½ª¤ï¤ê¡Ë//
( int cia1=0 , cia2=0 , cia2_2=0; ) ¡Ê¥á¥¤¥ó´Ø¿ô»Ïưľ¸å¡Ê¥ë¡¼¥×¤Î³°¡Ë¤ËÀë¸À¡Ë srand((unsigned)time(NULL)); //Íð¿ô¤ÎÀë¸À int random1=rand()%2 , random2=rand()%4; double xd,yd,cd,rd,Rd; double FW=gWorldData.mtmrjsk_return_field_width(); double FL=gWorldData.mtmrjsk_return_field_length(); cd=atan((gWorldData.mtmrjsk_return_y_coord2(gWorldData.pv_ball())-gWorldData.mtmrjsk_return_field_width()/2)/(gWorldData.mtmrjsk_return_x_coord2(gWorldData.pv_ball()))); Rd=sqrt((gWorldData.mtmrjsk_return_x_coord2(gWorldData.pv_ball()))* (gWorldData.mtmrjsk_return_x_coord2(gWorldData.pv_ball()))+(gWorldData.mtmrjsk_return_y_coord2(gWorldData.pv_ball())-FW/2)*(gWorldData.mtmrjsk_return_y_coord2(gWorldData.pv_ball())-FW/2)); if(Rd<FL/6*2) rd=FL/6; else if(Rd>FL/2) rd=FL/4; else rd=Rd/2; xd=rd*cos(cd); yd=rd*sin(cd)+gWorldData.mtmrjsk_return_field_width()/2; if(cia2==0){ if(random2) cia2=1; else cia2=2; //¥¯¥ê¥¢¥ß¥¹¤Î¹ÔÆ°¤òµ¯¤³¤¹¤¿¤á¤ÎȽÃÇ¡£ } if(cia1==0){ if(gWorldData.pv_ball().length < 40) cia1=1; } if(cia1==1){ if(gWorldData.pv_ball().length > 100){ cia1=0; if(random1){ gPlayer.pv_stop(); usleep(2000000); } } //¹ÔÆ°Ää»ß¤ÎȽÃÇ¤È¼Â¹Ô }else if(gPlayer.pv_can_kick()){ if(cia2)¡Ð gPlayer.pv_kick(gWorldData.mtmrjsk_return_vector_t2(0,FW/2).angle,1); else if(gWorldData.mtmrjsk_return_angle2(gWorldData.pv_opponent (gWorldData.pv_closest_opponent_to(gWorldData.pv_ball()))) > 0){ gPlayer.pv_kick(M_PI/6-gWorldData.mtmrjsk_return_my_angle2(),1); }else{ gPlayer.pv_kick(-M_PI/6-gWorldData.mtmrjsk_return_my_angle2(),1); } if(cia2_2==0){ if(gWorldData.pv_ball().length < 40) cia2_2=1; } if(cia2_2){ if(gWorldData.pv_ball().length > 80){ cia2_2=0; cia2=0; } } //¥¯¥ê¥¢¥ß¥¹¤Î¹ÔÆ°¤ò½ªÎ»¤¹¤ë¤¿¤á¤ÎȽÃÇ }else if(gWorldData.mtmrjsk_return_vector_t2(0,FW/2).length > FL/3 || gWorldData.mtmrjsk_return_x_coord2(gWorldData.pv_ball()) > FL/2 || gWorldData.pv_ball().length > FL/5){ gPlayer.pv_go_to(gWorldData.mtmrjsk_return_vector_t2(xd,yd)); }else{ gPlayer.pv_go_to(gWorldData.pv_ball()); }