재미있었던 로보코드...^^ 운동 경기를 보면 쓰는 기술들이 엇비슷하고 반복되는 데도 재미가 있습니다. 같은 기술이라도 간발의 차이에 의해 승부가 나는 박진감 때문일 것입니다. 올해 로보코드 대회 4강 진출자들은 그런 간발의 차이를 내기 위해 어떤 노력을 했는지 들어보겠습니다. ▲ 자신만의 특화 전략은 어떻게 구상하셨나요. 김동환: 참가자 대부분이 반중력이나 웨이브서핑(wave surfing)을 이용할 것 같아 타게팅은 예측 인자(guess factor)를 이중으로 사용하여 정밀도를 높이려고 했습니다. 움직임은 필요할 때 랜덤으로 움직이자는 생각으로 구상했고요. 상대방의 체력 변화를 통해 총알 속도를 구하고 상대방과의 거리를 이 속도로 나누어 총알이 나한테 올 거라 예상되는 시간을 측정해 이 예상 시간 ..
2007년 8월 8일 오후 3시, 한국IBM의 21층 세미나실은 뜨거운 열기로 가득 찼습니다. IBM 로보코드 코리아컵 2007의 최종 승자를 가르는 본선 경기가 진행됐기 때문입니다. 우열을 가리기 힘든 16강전을 거쳐 최종 승자가 결정됐을 때, 경쟁은 사라지고 축하의 박수가 이어졌습니다. 그 현장으로 함께 가보시죠. 2007년 8월 8일 오후 3시, 서울 도곡동 한국IBM의 21층 세미나실은 뜨거운 열기로 가득 찼다. IBM 로보코드 코리아컵 2007에 참가한 255개의 로봇 중 64강을 거쳐 16강 본선에 오른 주인공과 그들의 응원단 등 90여명이 자리를 가득 메워 최종 승자가 누가 될지를 기다리고 있었기 때문이다. IBM 로보코드 코리아컵은 올해 4회째 행사로, 올해는 전년도보다 더욱 강해진 로봇들..
출처 : 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를 알게 되었을 때, 어떤 로봇이 가장 으뜸인지를 가려내는 공식적인 대회는 없었다. 그나마 존재했던 토너먼트도 새로운 버전의 로봇들이 속출하면서 바로 구식이 되어버렸다. 필자가 로봇을 개발하는 동..
출처 : http://www.ibm.com/developerworks/kr/library/j-movement/index.html 타겟팅(targeting) 알고리즘에는 한계가 있습니다. 예견하기 어려운 움직임 패턴이 언제나 있기 때문입니다. 자신의 로봇이 상대편에 맞게 최상의 움직임 알고리즘을 선택하도록 하는 방법을 설명합니다. 이 글에서는 과거의 성능의 기반으로 움직임 상태를 선택하는 기술을 설명한다. 가능한 간략한 예제가 될 수 있도록, 본 예제에서는 장기적인 데이터의 영속성은 무시하기로 했다. 이 글에서는 코드에 대한 개요만 제공한다. 클래스나 메소드에 대한 상세한 설명이 필요하다면 소스 코드 문서를 참조하라. 전체 소스 코드는 참고자료 섹션을 참조하기 바란다. 수학 유틸리티 클래스 일반적으로, 로..
출처 : http://www.ibm.com/developerworks/kr/library/j-robotips/index.html 로보코드 전문가들이 자신들이 로봇 전투에서의 성공의 비밀을 나눕니다. Factored wall avoidance (한글) 코너에 갇히거나 원하는 이동 방향에서 너무 많이 벗어나지 않으면서, 로봇과 벽 사이의 간격을 유지하는 알고리즘을 만드는 것은 어려운 일입니다. 이에 대한 한 가지 간단한 솔루션으로, factored wall avoidance가 있습니다. 이 글에서, David McCoy가 이 기술을 구현하는 방법을 설명합니다. 반 중력 움직임 (한글) 반 중력 움직임(Anti-gravity movement)은, 여러 가지 변형된 형태들 중에, 대부분의 로보코더(Robocod..
출처 : 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 ..
출처 : http://www.ibm.com/developerworks/kr/library/j-antigrav/ 반중력 운동(Anti-gravity movement)은 대부분의 Robocoder 전문가들이 선택하는 움직임 유형이다. 이를 사용하여 지도상에서 피할 수 있는 지점을 설정하고 움직임 패턴을 만들며 적의 총알을 피할 수 있다. Alisdair Owens는 이 유용한 기술의 구현 방법을 설명하고 테스트 구동을 위해 로봇 예제도 제공한다. 반중력 운동(Anti-gravity movement)은 유연성이 뛰어난 기술로서 전투장 내에서 피신할 수 있는 특별한 지점 (중력 지점-gravity points)을 정의하여 패턴 분석 로봇을 혼란에 빠트린다. 각각의 중력 지점(gravity point)은 세기(s..
출처 : http://www.ibm.com/developerworks/kr/library/j-robocode/index.html 총알을 피하고 정확한 공격 작전을 수행하면서 상속, 다형성, 이벤트 처리 및 내부 클래스를 배우는 것이 가능할까? 중독적인 게임광 대상 교육 툴인 Robocode가 전 세계 자바 개발자들에게 이를 가능하도록 한다. Robocode는 사용하기 쉬운 로봇 전쟁 시뮬레이터로, Java 2를 지원하는 모든 플랫폼에서 실행된다. 여러분은 로봇을 만들어 전쟁터에 내보내고 다른 개발자가 만든 상대 로봇과 끝까지 싸우도록 해야한다. 여러분이 일단 이들을 무찌르고 나면 전세계적으로 형성되고 있는 리그 중 하나에 세계 최고 로봇에 대항하여 자신의 로봇을 출전시킬 수 있다. 각 Robocode 참..