본문 바로가기

ROBOCODE

티스토리 초대장 배포합니다. 마감합니다~!! 티스토리 초대장 4장 있어요~^^ 필요하신분들은 말씀해주시고, 조건은 특별하게 없어요. 상업블로그/야동창고 이런걸 하실분들은 사양하도록 하겠습니다. 그렇게 운영하시는분들은 바로 신고 할거예요!!! 방명록에 e-mail 남겨주세요^^ 댓글을 로그인 사용자만 허용해뒀거든요..ㅋ 31일 오후 1시까지만 받을게요~ i n v i t a t i o n 티스토리 초대장 안녕하세요! 티스토리에 보금자리를 마련하시려는 여러분께 초대장을 배포해 드리려고 합니다. 나만의, 내 생각을, 내 기억을 담는 소중한 블로그를 만들고 싶다면 티스토리로 시작해보세요! 티스토리 블로그는 초대에 의해서만 가입이 가능합니다. 원하시는 분은 댓글에 E-mail 주소를 남겨주시면 초대장을 보내드립니다. 남겨주실 때에는 꼭 비밀..
Robocode 마스터의 비밀: Robocode 전략 출처 : http://www.ibm.com/developerworks/kr/library/j-tipstrats.html Gladiatorial League의 기원에 대해 알아보고, 다양한 움직임 전략 레벨, 슈팅, 정보 모으기 등을 설명합니다. 본 자료는 2002년 5월 IBM developerWorks journal에 실린 기술자료, "Cloak and turret: Learn secrets from the Robocode masters"의 내용입니다. Gladiatorial League 필자가 Robocode를 알게 되었을 때, 어떤 로봇이 가장 으뜸인지를 가려내는 공식적인 대회는 없었다. 그나마 존재했던 토너먼트도 새로운 버전의 로봇들이 속출하면서 바로 구식이 되어버렸다. 필자가 로봇을 개발하는 동..
Robocode 마스터의 비밀: 상대편의 움직임 추적하기 출처 : http://www.ibm.com/developerworks/kr/library/j-movement/index.html 타겟팅(targeting) 알고리즘에는 한계가 있습니다. 예견하기 어려운 움직임 패턴이 언제나 있기 때문입니다. 자신의 로봇이 상대편에 맞게 최상의 움직임 알고리즘을 선택하도록 하는 방법을 설명합니다. 이 글에서는 과거의 성능의 기반으로 움직임 상태를 선택하는 기술을 설명한다. 가능한 간략한 예제가 될 수 있도록, 본 예제에서는 장기적인 데이터의 영속성은 무시하기로 했다. 이 글에서는 코드에 대한 개요만 제공한다. 클래스나 메소드에 대한 상세한 설명이 필요하다면 소스 코드 문서를 참조하라. 전체 소스 코드는 참고자료 섹션을 참조하기 바란다. 수학 유틸리티 클래스 일반적으로, 로..
Robocode 마스터의 비밀: 로보코드 마스터들이 주는 힌트, 팁, 조언 출처 : http://www.ibm.com/developerworks/kr/library/j-robotips/index.html 로보코드 전문가들이 자신들이 로봇 전투에서의 성공의 비밀을 나눕니다. Factored wall avoidance (한글) 코너에 갇히거나 원하는 이동 방향에서 너무 많이 벗어나지 않으면서, 로봇과 벽 사이의 간격을 유지하는 알고리즘을 만드는 것은 어려운 일입니다. 이에 대한 한 가지 간단한 솔루션으로, factored wall avoidance가 있습니다. 이 글에서, David McCoy가 이 기술을 구현하는 방법을 설명합니다. 반 중력 움직임 (한글) 반 중력 움직임(Anti-gravity movement)은, 여러 가지 변형된 형태들 중에, 대부분의 로보코더(Robocod..
Robocode 마스터의 비밀: Factored wall avoidance 출처 : http://www.ibm.com/developerworks/kr/library/j-fwa/index.html 코너에 갇히거나 원하는 이동 방향에서 너무 많이 벗어나지 않으면서, 로봇과 벽 사이의 간격을 유지하는 알고리즘은 간단히 만들 수 없는 것 같습니다. 한 가지 간단한 솔루션으로, Factored wall avoidance가 있습니다. 이 글에서, David McCoy가 이를 구현하는 방법을 설명합니다. With a few additions to the bot we built in "상대편의 움직임 추적하기"에서 구현했던 로봇에 몇 가지를 더 추가하여, 기존의 움직임 알고리즘 또는 문제가 많은 움직임 알고리즘에 Factored Wall Avoidance를 추가할 수 있다. Factored ..
Robocode 마스터의 비밀 : 피할 수 있는 지점을 설정하고, 움직임 패턴을 만들어 적의 총알을 피한다! 출처 : http://www.ibm.com/developerworks/kr/library/j-antigrav/ 반중력 운동(Anti-gravity movement)은 대부분의 Robocoder 전문가들이 선택하는 움직임 유형이다. 이를 사용하여 지도상에서 피할 수 있는 지점을 설정하고 움직임 패턴을 만들며 적의 총알을 피할 수 있다. Alisdair Owens는 이 유용한 기술의 구현 방법을 설명하고 테스트 구동을 위해 로봇 예제도 제공한다. 반중력 운동(Anti-gravity movement)은 유연성이 뛰어난 기술로서 전투장 내에서 피신할 수 있는 특별한 지점 (중력 지점-gravity points)을 정의하여 패턴 분석 로봇을 혼란에 빠트린다. 각각의 중력 지점(gravity point)은 세기(s..
Robocode : 자바 프로그래밍을 재미있게 해주는 고급 로봇 전투 시뮬레이션 엔진 출처 : http://www.ibm.com/developerworks/kr/library/j-robocode/index.html 총알을 피하고 정확한 공격 작전을 수행하면서 상속, 다형성, 이벤트 처리 및 내부 클래스를 배우는 것이 가능할까? 중독적인 게임광 대상 교육 툴인 Robocode가 전 세계 자바 개발자들에게 이를 가능하도록 한다. Robocode는 사용하기 쉬운 로봇 전쟁 시뮬레이터로, Java 2를 지원하는 모든 플랫폼에서 실행된다. 여러분은 로봇을 만들어 전쟁터에 내보내고 다른 개발자가 만든 상대 로봇과 끝까지 싸우도록 해야한다. 여러분이 일단 이들을 무찌르고 나면 전세계적으로 형성되고 있는 리그 중 하나에 세계 최고 로봇에 대항하여 자신의 로봇을 출전시킬 수 있다. 각 Robocode 참..
Robocode 대회 : 우승 로봇의 숨겨진 전략! 출처 : http://www.ibm.com/developerworks/kr/library/j-robowrap.html Robocode 대회는 끝났고 우승자가 가려졌다. 누가 우승컵을 가져갔는지 성공의 비밀은 무엇인지를 알아보자. 전 세계의 프로그래머들이 자신들의 코딩 기술을 발휘하여 가장 공포스러운 자바 "로봇"을 만들어 가상 전투장에서 전투를 벌였다. ArtofWar, BienatorII, SandboxLump, BulletMagnet, Cake 등의 이름을 가진 로봇들은 기존의 자바 객체들 보다 오락적 요소를 갖추었다. 네덜란드 프로그래머인 Enno Peters에게 전체 우승의 영예가 돌아갔다. 전략 결정과 코딩 등 챔피언 등극을 가능하게 했던 요소를 들어보기 위해 Peters를 비롯하여 4명의 우승..
Robocode: 제 2 라운드 - 고급 로봇 구현과 팀 플레이로 기본에서 나아가기 출처 : http://www.ibm.com/developerworks/kr/library/j-robocode2/index.html 단순한 로봇을 넘어..: 자바 클래스 상속 첫 번째 글에서 만들었던 로봇은 Robot 클래스에서 모두 상속받았다: public class DWStraight extends Robot { DWStraight extends Robot 클래스는 turnRight()과 turnLeft() 등의 이 클래스에서 제공되는 모든 메소드를 사용할 수 있다는 것을 의미한다. 이 메소드에 대한 유일한 제한은 작동을 끝낼 때 까지 코드에 제어를 리턴하지 않는다는 것이다. 사실 이러한 작동은 완료하기 까지 많은 회전을 할 수 있다. 이 메소드를 호출함으로서 매 회전에 대해 결정할 수 있는 기능을 잃..
ROBOCODE IBM강의 자료 강의자료 다운로드 이미지를 클릭하시면 원본사이즈로 보실수 있습니다.
[Day-2] 처음으로 생성한 나만의 로보코드 출처 URL : http://www.ibm.com/developerworks/kr/library/j-robocode/ 로보코드에 대한 설명이 더 필요할것같아서 자료를 좀더 스크랩해봅니다. 그리고 오늘은... 월요일이라서 엄청나게 졸립습니다!!! ㅋ 일단은 Java를 못하더라도 정독을 해보세요... 번역을 해놓은것이라서 이해가 어려울수도 있습니다. 번역을 통번역을 한건지..아니면 프로그래밍을 모르는 사람이 해놓은것인지...제가 영어실력이 되면 로보코드 포럼가서 자료좀 퍼와보겠습니다.아마도 그때쯤 되면 [Day-100] 정도 되지 않을까요? 총알을 피하고 정확한 공격 작전을 수행하면서 상속, 다형성, 이벤트 처리 및 내부 클래스를 배우는 것이 가능할까? 중독적인 게임광 대상 교육 툴인 Robocode가 전 ..
Strategy Pattern #1 -ROBOCODE 관련 자료 출처 : http://www.definejava.net/ Strategy Pattern 스트래티지 패턴이란 각각의 기능을 하는 클래스를 캡슐화하여 이것을 교환하여 사용할 수 있도록 만드는 역활을 한다. 즉 현재 사용하고 있는 기능(클래스)를 동적으로 변경하여 적용 시킬 수 있다. 간단하게 예를 들자면 로봇 게임이 있다고 하자. (갑자기 http://www.defineyou.net/ 에서 본 로롯코드가 생각나서....) 이 로봇게임에는 여러가지 종류의 로봇이 나온다. 이 여러 종류의 로봇을 제작하기 위해서는 Robot 이라는 클래스를 상속 받아서 제작한다. Robot Class에는 다음과 같은 기능이 있다. turn(); 돌고 도는 메소드 move(); 이동을 하는 메소드 attack(); 공격을 하는 메..
[Day-1] 처음으로 생성한 나의 ROBOCODE 로보코드란? 아래의 글은 DefineYou가 점심먹고 졸려서 미칠려고 할때 작성한 글이므로 신뢰도는 0% 라고 생각합니다.^^ 작성일자 : 2007.2.9 ----------------------------------------------------------------------------------- package ckhyun; 내가 만든 로봇의 이름인 "ckhyun"이라는 로봇으로 패키지를 선언한다 import robocode.*; 로봇에 Robocode 객체를 사용할 것을 자바에 명령한다. 여기에서 robocode라는 놈이 이미 만들어져 있다. 로보코드 대전 동영상을 본 사람이라면 알것이다. 여기에서 import 시키는 robocode는 틀만 잡힌 껍데기라고 생각하자 //import java.aw..
ROBOCODE 란? 오늘부터 하루에 조금씩 ROBOCODE를 진도를 나갈까 한다...ㅋ 일단 오늘은 스크랩부터...설치 작업까지는 아래의 내용을 참조하는게 더 좋을것이다...굳이 제가 다시 REVIEW를 할 필요없이 정리가 매우 잘되어 있습니다. 출처 URL : http://www.ibm.com/developerworks/kr/robocode/robocode.html 로보코드(Robocode)란? (로보코드 동영상보기) 스크린 상에서 전투하는 자바 객체인 자바 로봇을 만들어 개발자들이 자바를 배울 수 있도록 하는 프로그래밍 게임 입니다. 다시 말해, 로봇 전쟁 시뮬레이터로 참가자들은 로봇을 만들어 전투에 내보내고 이를 다른 개발자가 만든 로봇들과 겨뤄 득점율이 높은 로봇이 승리하게 됩니다. 로보코드는 Eclipse, Web..