JOINC J-Robo ÇÁ·ÎÁ§Æ®
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®
ÇöÀçÀ§Ä¡ : article>j_robo



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
http://www-903.ibm.com/developerworks/kr/i/robocode_logo_tanks.gif

¼Ò°³

J-Robo´Â ÀÚ¹Ù·Î ¸¸µé¾îÁø (¼ÒÇÁÆ®¿þ¾î)·Îº¿ ÅÊÅ©°£ÀÇ ´ë°áÀ» ÇÏ´Â ÀÚ¹Ù ÇÁ·ÎÁ§Æ®·Î ibm¿¡¼­ JAVA¸¦ Àç¹Õ°Ô ¹è¿ï ¼ö ÀÖµµ·Ï Çϱâ À§ÇÑ ¸ñÀûÀ¸·Î ÁøÇàµÇ¾î Áö°í ÀÖ´Ù.

·Îº¿µéÀº ÁغñµÈ ´ë°áÀå¿¡¼­ »ì¾Æ³²±â À§ÇÑ °æÀïÀ» ÇÏ°Ô µÈ´Ù. ´ç¿¬È÷ °¡Àå ¶È¶ÈÇÑ ·Îº¿µéÀÌ »ì¾Æ³²°Ô µÉ°ÍÀÌ´Ù. ÁÖº¯ »óȲÀ» ÆÄ¾ÇÇØ¼­ È¿À²ÀûÀΠȸÇÇ ±âµ¿°ú È¿À²ÀûÀΠŸ°ÙÀ» ¼³Á¤ÇÏ´Â ÅÊÅ©¸¦ ¸¸µé¾î¾ß Çϸç À̰ÍÀº ÇÁ·Î±×·¡¸ÓÀÇ ¸òÀ¸·Î ³²°ÜÁø´Ù.

ibm¿¡¼­´Â ¸Å³â ´ëȸ¸¦ ¿­¾î¼­ ³¡±îÁö »ì¾Æ³²Àº ·Îº¿¿¡ ´ëÇÏ¿© ½Ã»óÀ» Çϰí ÀÖ´Ù. »óǰÀº ibm ³ëÆ®ºÏÀÌ´Ù.

ÇØ¼­ ¼øÀüÈ÷ »óǰ¿¡ ´«ÀÌ ¸Ö¾î¼­ RoboÇÁ·ÎÁ§Æ®¿¡ Âü°¡ÇØ º¸±â·Î Çß´Ù. ¿©±â¿¡´Â irc joinc ä³Î¿¡¼­ Ȱµ¿ÁßÀÎ ¸î¸íÀÇ ¸â¹ö°¡ ÇÔ²² Âü°¡ÇÒ °ÍÀ̸ç, ÇÁ·ÎÁ§Æ® ÁøÇà °á°ú´Â °è¼Ó ÀÌ À§Å°¸¦ ÅëÇØ¼­ ¾÷µ¥ÀÌÆ® µÉ°ÍÀÌ´Ù.

ÀÌ °ÔÀÓÀ» ÅëÇØ¼­ Âü°¡ÀÚ´Â java¿Í °´Ã¼ÁöÇâ¿¡ ´ëÇÑ ±âº»ÀûÀÎ ÀÌÇØ¸¦ ÇÒ ¼ö ÀÖ´Ù.

¼³Ä¡ ¹× ½ÇÇà Çϱâ

¼³Ä¡ ¿Í Å×½ºÆ® ÄÚµù ¸ðµç °ÍÀº Linux¸¦ ±âÁØÀ¸·Î ÀÌ·ç¾îÁú °ÍÀÌ´Ù. ÇÊÀÚÀÇ ½Ã½ºÅÛÀº ´ÙÀ½°ú °°´Ù.
OS RedHat Linux Kernel 2.6.0
JDK 1.4.2
CPU INTEL 800 MHz

[http]IBM Robocode ¸ÞÀÎ ÆäÀÌÁö¿¡ °¡¼­ robocode-setup.jar¸¦ ´Ù¿î¹Þµµ·Ï ÇÑ´Ù. ±×´ÙÀ½ robocode-setup.jar¸¦ ½ÇÇà½ÃŰ¸é ¼³Ä¡°¡ ÀÌ·ç¾îÁø´Ù.
# java -jar robocode-setup.jar  
 
¼º°øÀûÀ¸·Î ½ÇÇàÇÏ°í ³ª¸é robocodeµð·ºÅ丮°¡ ¸¸µé¾î Áö´Âµ¥, µð·ºÅ丮·Î À̵¿ÇÑ ÈÄ robocode.sh¸¦ ½ÇÇàÇϸé robocoe°¡ ½ÇÇàµÈ´Ù.
# ./robocode.sh 
 

robocode¸¦ ¼³Ä¡ÇÏ¸é ±âº»ÀûÀÎ ¼ÀÇà ÅÊÅ©µéÀÌ µé¾î ÀÖÀ¸¹Ç·Î, ´çÀå Å×½ºÆ®°¡ °¡´ÉÇÏ´Ù. New¸Þ´º¸¦ ÀÌ¿ëÇØ¼­ ¾Æ·¹³ª¿¡ Âü°¡½Ãų ÅÊÅ©¸¦ ¼±ÅÃÇØ¼­ start¹öưÀ» Ŭ¸¯Çϱ⸸ ÇÏ¸é µÈ´Ù.

³ª¸¸ÀÇ ÅÊÅ©¸¦ ¸¸µé¾î º¸ÀÚ 1

±×·³ °£´ÜÇÏ°Ô ÅÊÅ©¸¦ ¸¸µé¾î º¸µµ·Ï ÇÏÀÚ. ÅÊÅ©¸¦ ¸¸µå´Â ÀÛ¾÷ÀÌ ¸Å¿ì º¹ÀâÇÒ °ÍÀ̶ó°í »ý°¢µÉ ¼öµµ ÀÖ°ÚÁö¸¸, ÇÁ·Î±×·¡¹ÖÀ» À§ÇÑ ±âº»ÀûÀÎ ÀÎÅÍÆäÀ̽º´Â ¸ðµÎ Á¦°øÇϰí ÀÖÀ¸¹Ç·Î java¿Í °´Ã¼ÁöÇâ¿¡ ´ëÇÑ ±âº»ÀûÀÎ ÀÌÇØ¸¦ °¡Áö°í ÀÖ´Ù¸é ¾î·ÆÁö ¾Ê°Ô ÀڽŸ¸ÀÇ ÅÊÅ©¸¦ ¸¸µé¾î¼­ ¾Æ·¹³ª¿¡ Âü°¡½Ãų ¼ö ÀÖ´Ù.

ÅÊÅ© ÄÚµå´Â robots/robots¿¡ À§Ä¡ÇÑ´Ù. ¿©±â¿¡ ÀڽŸ¸ÀÇ µð·ºÅ丮¸¦ ¸¸µé°í µð·ºÅ丮¿¡¼­ ÄÚµùÀ» ÇÏ¸é µÈ´Ù. ÇÊÀÚ´Â joinc¶ó´Â µð·ºÅ丮¸¦ ¸¸µé°í YundreamRobo¶ó´Â À̸§À» °¡Áø ÅÊÅ©¸¦ ¸¸µé±â·Î Çß´Ù.

´ÙÀ½Àº °¡Àå ´Ü¼øÇÑ ÇüÅÂÀÇ ÅÊÅ©¸¦ ¸¸µé¾î ³»±â À§ÇÑ ÄÚµå´Ù. ±âº»ÀÌ µÇ´Â ÄÚµåÀÌ¸ç ¿©±â¿¡ ÀڽŸ¸ÀÇ Äڵ带 Ãß°¡½ÃÄÑ È¿À²ÀûÀÎ ÅÊÅ©¸¦ ¸¸µé¾î ³»¸é µÈ´Ù.
package joinc; 
import robocode.*; 
 
public class YundreamRobo extends Robot 
{ 
    /* 
     * ÅÊÅ©ÀÇ À̵¿°ú °ü·ÃµÈ ÄÚµå´Ù. 
     * ¾ÕÀ¸·Î 100 À̵¿ÇÑÈÄ 
     * Æ÷žÀ» 80µµ ȸÀü 
     * µÚ·Î 100 À̵¿ÇÑÈÄ  
     * Æ÷žÀ» 80µµ ȸÀüÇÑ´Ù. 
     */ 
    public void run() { 
        while(true) { 
            ahead(100); 
            turnGunRight(80); 
            back(100); 
            fire(1); 
            turnGunRight(80); 
        } 
    } 
 
    /* 
     * ÀûÀ» ¹ß°ßÇßÀ» °æ¿ì ¾î¶»°Ô ÇൿÇÒ °ÇÁö¸¦ Á¤ÀÇÇÑ´Ù.  
     */ 
    public void onScannedRobot(ScannedRobotEvent e) { 
        fire(1); 
    } 
 
   /* 
    * ÀûÀÇ °ø°Ý¿¡ ¸íÁߵǾúÀ» °æ¿ì Çൿ 
    * ±× À§Ä¡¿¡ ÀÖÀ¸¸é ¿¬¼ÓµÈ °ø°ÝÀ» ¹ÞÀ» È®·üÀÌ ³ôÀ¸¹Ç·Î  
    * À̵¿ ÆÐÅÏÀ» º¯°æÇÒ Çʿ䰡 ÀÖ´Ù. 
    */ 
    public void onHitByBullet(HitByBulletEvent e) { 
        turnLeft(90 - e.getBearing()); 
    } 
 
} 
 
ÄÄÆÄÀÏÀ» ½±°Ô Çϱâ À§Çؼ­ °£´ÜÇÑ MakefileÀ» ¸¸µé¾î¼­ Ȱ¿ëÇϵµ·Ï Çß´Ù.
all: 
    javac -deprecation -g -classpath /usr/share/jre/j2sdk1.4.2/jre/lib/rt.jar:/root/robocode/robocode.jar:robots /root/robocode/robots/joinc/YundreamRobo.java 
 
¼º°øÀûÀ¸·Î ÄÄÆÄÀÏÀ» ¸¶ÃÆ´Ù¸é YundreamRobo.class°¡ »ý¼ºµÉ °ÍÀÌ´Ù. »ý¼ºµÈ ÅÊÅ©´Â robocode.sh¸¦ ½ÇÇà½ÃÄѼ­ ºÒ·¯¿Í¼­ Å×½ºÆ® ÇÒ ¼ö ÀÖ´Ù. ÀÌ·± ½ÄÀ¸·Î Á¶±Ý¾¿ Á¶±Ý¾¿ Á»´õ °­·ÂÇÑ ÅÊÅ©·Î ÁøÈ­½ÃÄÑ ³ª°¡¸é µÈ´Ù.

ÅÊÅ©¶ó´Â °´Ã¼´Â 3°³ÀÇ ¸Þ¼­µå·Î Ç¥ÇöµÉ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÅÊÅ©ÀÇ À̵¿, Æ÷žÀÇ È¸Àü, ÀûÀ» ¹ß°ßÇßÀ» ¶§ÀÇ Çൿ, Àû¿¡°Ô °ø°Ý¹Þ¾ÒÀ» ¶§ÀÇ ÇൿÀε¥, ±âº»ÀûÀ¸·Î À̵鿡 ´ëÇÑ ¸Þ¼­µå¸¦ Á¦´ë·Î Á¤ÀÇ ÇÑ´Ù¸é ÅÊÅ©¶ó´Â °´Ã¼¸¦ Á¦¾îÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

robocode´Â ÀÌµé °¢°¢ÀÇ ÇൿÀ» À§Çؼ­ run(), onScannedRobot(), onHitByBullet()ÀÇ ¸Þ¼­µå¸¦ Á¦°øÇÑ´Ù. À̵鸸À» ÀÌ¿ëÇØ¼­ ÃÖ¼ÒÇÑÀÇ ÇൿÀ» ÇÏ´Â ÅÊÅ©¸¦ ¸¸µé ¼ö ÀÖ´Ù. ¹°·Ð ÀÌ ÅÊÅ©´Â ¸Å¿ì ¹Ùº¸Ã³·³ ¿òÁ÷À̱⠶§¹®¿¡ ½ÇÁ¦ ÀüÅõ¿¡¼­ÀÇ »ýÁ¸È®·üÀº ¸Å¿ì ³·À» °ÍÀÌ´Ù.

Âü°í»çÀÌÆ®

  1. [http]IBM Robocode ¸ÞÀÎ ÆäÀÌÁö
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.