Robocode 만들기 2 - Egloospds5.egloos.com/pds/200708/29/00/robocode.pdf · 3) ‘로봇...
Transcript of Robocode 만들기 2 - Egloospds5.egloos.com/pds/200708/29/00/robocode.pdf · 3) ‘로봇...
로보코드 만들기
한국 IBM developerWorks 운영팀
1. 로보코드 설치방법 1) 먼저 PC 에 Java 를 설치한다. (JDK v1.4 이상을 권장)
2) 로보코드 사이트(www.ibm.com/developerworks/kr/robocode)를 방문하여 로보코드 설치 파일
(robocode-setup.zip)을 다운로드 받는다.
3) 윈도우 커맨드 창을 실행시킨 후 로보코드 설치파일을 다운로드 받은 디렉토리로 이동한다.
4) 커맨트 창에서 “java –jar robocode-setup.zip” 을 실행하여 로보코드를 설치한다.
5) [Accept] 버튼을 선택한다.
6) 로보코드 설치 경로를 선택한 후 다음 물음에 [예] 버튼을 선택하면 설치 완료!
2. 로봇 작성 방법 1) 바탕 화면에서 ‘로보코드 아이콘’을 더블 클릭하여 로보코드 전투장을 실행 시킨다.
2) 전투장에서 <Robot> <Editor> 를 선택한다.
3) ‘로봇 에디터’ 가 실행되면 <File> <New> <Robot> 을 선택하여 로봇을 만들 준비를 한다.
3) 팝업 창이 뜨면 작성할 로봇의 이름을 입력한 후 ‘확인’ 버튼을 클릭한다.
(예 : SuperRobot)
4) 패키지명을 입력한 후 ‘확인’ 버튼을 클릭한다.
(작성하는 로봇의 이름이 다른 로봇들의 이름과 중복되는 것을 막기 위해 입력하며, 자신의 이름 이
니셜 또는 아무 문자열이라도 입력가능)
5) 로봇의 기본 소스 코드들이 화면상에 나타나게 되며, 여기에 자신이 생각하는 로직의 소스 코드를
추가한다.
6) 소스코드 추가 작업 완료 후 작업한 내용을 저장 하기 위해 <File> <Save> 를 선택한다.
7) 소스코드 저장 시 디렉토리를 만들겠냐는 물음에 ‘예’를 클릭한다.
8) 처음에 입력한 로봇의 이름(SuperRobot.java)이 맞는 지 확인 한 후 ‘저장’ 을 클릭한다.
9) 작성한 로봇 소스를 실행 가능한 파일로 만들기 위해 <Compiler> <Compile> 를 선택한다.
10) 컴파일이 이상 없이 완료되면 로봇 작성완료!
3. 로봇 대전 방법 1) 전투장에서 <Battle> <New> 를 선택한다.
2) 로봇 선택창에서 자신이 만든 로봇(SuperRobot)을 찾아 본다.
3) 자신의 로봇과 다른 샘플 로봇들을 <Add> 버튼을 클릭하여 선택한다.
4) ‘Star Battle’ 버튼을 클릭하여 대전을 시작 시킨다.
5) 지정된 라운드(기본값 : 10)의 대전이 종료되면 각 로봇들의 점수 현황이 나타나며, 가장 높은 점수
를 얻은 로봇이 승리!
4. 로봇 제출 방법 1) 전투장에서 < Robot > < Package robot for upload > 를 선택한다.
2) 로봇 선택창에서 자신이 만든 로봇(dw.SuperRobot)을 선택한 후 [Add ] 버튼 및 [Next] 버튼을 누
른다.
3) 입력 항목 중에 [Include source] 는 체크, [Version] 란에는 적절한 로봇 버전을 기입한 후 [short
description] 을 간단하게 입력한다.
4) 입력이 다 되었으면 [Next] 버튼을 선택한다.
5) C:\robocode\robots 디렉토리 밑에 dw.SuperRobot_1.3.jar 파일이름으로 작성한 로봇을 Export 시킬
것이므로 바로 [Next] 버튼을 선택한다.
6) 설정한 사항들이 이상 없을 을 확인한 후 [Package !] 버튼을 선택한다.
7) C:\robocode\robots 디렉토리로 이동하여 작성된 dw.SuperRobot_1.3.jar 파일을 확인한 후
[email protected] 에 제출한다.
5. 샘플 소스 코드 분석 다음은 로보코드의 샘플 소스코드 입니다.
위 로봇은 전진/후진을 반복 하면서 총을 회전시켜 적을 공격하는 로직을 가지고 있습니다.
각각의 코드가 의미 하는 바는 다음과 같습니다.
package dw;
import robocode.*;
import java.awt.Color;
public class SuperRobot extends Robot
{
public void run() {
setColors(Color.red,Color.blue,Color.green);
while(true) {
ahead(100);
turnGunRight(360);
back(100);
turnGunLeft(360);
}
}
public void onScannedRobot(ScannedRobotEvent e) {
fire(1);
}
public void onHitByBullet(HitByBulletEvent e) {
turnLeft(90 - e.getBearing());
}
}
package dw; // 로봇이 포함되어 있는 패키지 이름
import robocode.*; // 로보코드에서 제공되는 기능을 사용할수 있도록 지정
import java.awt.Color; // Color 를 사용 할 수 있도록 지정
보다 자세한 사항은 로보코드 홈페이지(http://www.ibm.com/developerworks/kr/robocode) 및 로보코드 전투장의
‘Help’ 기능을 이용하여 주시기 바랍니다.
public class SuperRobot extends Robot //SuperRobot 이라는 이름의 Robot 을 선언
{
/**
* run: 로봇이 실행되면 기본적으로 호출되는 로직
*/
public void run() {
setColors(Color.red,Color.blue,Color.green); // 로봇의 색상을 지정
while(true) {
ahead(100); // 로봇을 100 Pixel 만큼 전진
turnGunRight(360); // 총을 오른쪽으로 한 바퀴 회전
back(100); // 로봇을 100 Pixel 만틈 후진
turnGunLeft(360); // 총을 왼쪽으로 한 바퀴 회전
}
}
/**
* onScannedRobot: 적을 발견 했을 때 수행 되는 로직
*/
public void onScannedRobot(ScannedRobotEvent e) {
fire(1); // 파워 수치 1 로 총알을 발사
}
/*
* onHitByBullet: 적의 총알에 맞았을 때 수행되는 로직
*/
public void onHitByBullet(HitByBulletEvent e) {
turnLeft(90 - e.getBearing()); // (90도 - 총알이 날아온 각도) 만큼 회전
}
}