Hotfix release available: 2025-05-14b "Librarian". upgrade now! [56.2] (what's this?)
Hotfix release available: 2025-05-14a "Librarian". upgrade now! [56.1] (what's this?)
New release available: 2025-05-14 "Librarian". upgrade now! [56] (what's this?)
Hotfix release available: 2024-02-06b "Kaos". upgrade now! [55.2] (what's this?)
Hotfix release available: 2024-02-06a "Kaos". upgrade now! [55.1] (what's this?)
New release available: 2024-02-06 "Kaos". upgrade now! [55] (what's this?)
Hotfix release available: 2023-04-04b "Jack Jackrum". upgrade now! [54.2] (what's this?)
Hotfix release available: 2023-04-04a "Jack Jackrum". upgrade now! [54.1] (what's this?)
New release available: 2023-04-04 "Jack Jackrum". upgrade now! [54] (what's this?)
Hotfix release available: 2022-07-31b "Igor". upgrade now! [53.1] (what's this?)
Hotfix release available: 2022-07-31a "Igor". upgrade now! [53] (what's this?)
New release available: 2022-07-31 "Igor". upgrade now! [52.2] (what's this?)
New release candidate 2 available: rc2022-06-26 "Igor". upgrade now! [52.1] (what's this?)
New release candidate available: 2022-06-26 "Igor". upgrade now! [52] (what's this?)
Hotfix release available: 2020-07-29a "Hogfather". upgrade now! [51.4] (what's this?)
New release available: 2020-07-29 "Hogfather". upgrade now! [51.3] (what's this?)
New release candidate 3 available: 2020-06-09 "Hogfather". upgrade now! [51.2] (what's this?)
New release candidate 2 available: 2020-06-01 "Hogfather". upgrade now! [51.1] (what's this?)
New release candidate available: 2020-06-01 "Hogfather". upgrade now! [51] (what's this?)
Hotfix release available: 2018-04-22c "Greebo". upgrade now! [50.3] (what's this?)
Hotfix release available: 2018-04-22b "Greebo". upgrade now! [50.2] (what's this?)
Hotfix release available: 2018-04-22a "Greebo". upgrade now! [50.1] (what's this?)
New release available: 2018-04-22 "Greebo". upgrade now! [50] (what's this?)
Hotfix release available: 2017-02-19g "Frusterick Manners". upgrade now! [49.7] (what's this?)
Hotfix release available: 2017-02-19f "Frusterick Manners". upgrade now! [49.6] (what's this?)
Hotfix release available: 2017-02-19e "Frusterick Manners". upgrade now! [49.5] (what's this?)
Hotfix release available fixing CVE-2017-12979 and CVE-2017-12980: 2017-02-19d "Frusterick Manners". upgrade now! [49.4] (what's this?)
Hotfix release available fixing CVE-2017-12583: 2017-02-19c "Frusterick Manners". upgrade now! [49.3] (what's this?)
Hotfix release available fixing security token and media manager: 2017-02-19b "Frusterick Manners". upgrade now! [49.2] (what's this?)
Hotfix release available fixing install and media manager issues: 2017-02-19a "Frusterick Manners". upgrade now! [49.1] (what's this?)
New release available: 2017-02-19 "Frusterick Manners". upgrade now! [49] (what's this?)
Hotfix release available: 2016-06-26e "Elenor of Tsort". upgrade now! [48.5] (what's this?)
Hotfix release available fixing CVE-2017-12979 and CVE-2017-12980: 2016-06-26d "Elenor of Tsort". upgrade now! [48.4] (what's this?)
Hotfix release available fixing CVE-2017-12583: 2016-06-26c "Elenor of Tsort". upgrade now! [48.3] (what's this?)
Hotfix release available fixing security token: 2016-06-26b "Elenor of Tsort". upgrade now! [48.2] (what's this?)

Game AI Competition Portal

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
wiki:ms_pacman_beginners [2012/06/05 20:07]
kimkj
wiki:ms_pacman_beginners [2019/08/27 14:45] (current)
Line 1: Line 1:
  
-You have two options to start the Ms. Pac-Man competition. ​+You have three options to start the Ms. Pac-Man competition. ​
  
-Option 1) JAVA code + WebPacMan.com \\+[[#Option 1|Option 1)]] JAVA code + WebPacMan.com \\
   * For the original version, you need to configure the color of objects and the position of the game screen. ​   * For the original version, you need to configure the color of objects and the position of the game screen. ​
-Option 2) C# code + Microsoft Revenge of Arcade\\ +[[#Option 2|Option 2)]] C# code + [[http://​www.microsoft.com/​games/​revenge/​|Microsoft Revenge of Arcade]]\\ 
-  * It supports automatic detection of game screen. However, you need to get the Microsoft Revenge of Aracade (from store).  +  * It supports automatic detection of game screen. However, you need to get the Microsoft Revenge of Aracade (from store). ​We bought the SW from Amazon.com ​ 
-Option 3) ICE Pambush 3 \\ +[[http://​dces.essex.ac.uk/​staff/​sml/​pacman/​cig2009/​ICEPambush3/​ICE%20Pambush%203.pdf|Option 3)]] You can simply download [[http://​dces.essex.ac.uk/​staff/​sml/​pacman/​cig2009/​ICEPambush3/​ICE%20Pambush%203.zip|ICE Pambush 3]] source code (JAVA + WebPacMan)and start from it. It is composed of about ten rules with A* search algorithm. It supports automatic detection of game screen. ​ 
-  * It is based on the option 1) but supports ​the automatic detection of game screen. ​+
  
 +|{{youtube>​8cFChSC6-6w?​small}}| {{youtube>​VQJg0VMU62s?​small}} |
 +|ICE Pambush 4| ICE Pambush 5 |
  
- ​CIG에서 제공하는 소프트웨어 툴 킷은 JAVA로 작성된 것과 C#으로 작성된 두가지 버전이 있다. JAVA로 작성된 것은 게임의 두가지 버전 어느것을 사용하더라도 문제가 없으며 C# 툴 킷은 마으크로소프트 리벤지 오브 아케이드의 MS Pac-Man을 사용하여야 한다. +=== Option ​1 ===
- +
- 이 대회에 참여하기 위해서 반드시 이렇게 제공되는 소프트웨어 툴킷을 사용하여야 한다는 제약조건은 없다. 1에서 소개한 기본적인 규칙만 지켜진다면 자유롭게 자신만의 프로그램을 작성하여도 된다. +
- +
- ​하지만 이미지 프로세싱에 대한 기본적인 정보나 지식이 많지 않다면 아무것도 준비되지 않은 상태에서 처음부터 프로그램을 작성한다는 것은 쉽지 않은 일이다. 때문에 CIG에서 제공하는 두가지 소프트웨어 툴킷과, 2010년에 경진대회에서 우승을한 Pambush 3 팀의 프로그램을 소개하고자 한다. +
- +
-====4-공식 JAVA 툴킷====+
   ​   ​
 {{:​wiki:​jabakit.jpg|}} {{:​wiki:​jabakit.jpg|}}
  
- 위의 스크린샷은 CIG에서 제공한 JAVA 툴킷을 사용하여 MS Pac-Man을 플레이 하는 화면이다. 게임 윈도우를 제외하고 두가지 창이 존재하는데,​ Extracted 윈도우는 스크린 캡쳐를 통해 필요한 정보를 추출하고 그것을 보이는 그림이고,​ 화살표 모양이 있는 상단의 윈도우는 현재 발생된 키보드 이벤트를 보여준다.+ It is a toolkit provided by the competition organizer
  
- 이 JAVA 툴킷을 원만하게 구동시키기 위해서는 MsPacInterface 코드 내부의 게임이 실행될 창의 좌표 정보를 넣어주어야 한다또 당신의 컴퓨터에서 표현되는 4마리 유령의 색을 RGB 코드로 입력해주어야 하기 때문에 유용한 시작점으로는 적절하지 않다고 볼 수 있다.+ Download : [[ http://​cswww.essex.ac.uk/​staff/​sml/​pacman/​pac.zip | Click]]
  
- 구동 방법은 Ms Pac-Man 윈도우 위치 및 유령의 색깔 코드를 맞추어주고 게임을 실행시켜놓은 상태에서 ​MsPacInterface의 새 인스턴스를 시작하면 된다+ You need to configure the RGB code for the ghosts and the X-Y position of game screen in the MsPacInterface.Java code. You can start the sample controller. ​
  
   java pacman.MsPacInterface   java pacman.MsPacInterface
  
- 화면 조정을 위해 MsPacInterface의 Code 일부분을 수정할 필요가 있다아래 코드는 그 부분을 일부 발췌해놓은 것이다. + In the toolkit, there is an example controller codeIt simply moves to the closest pill
- +
-  // change these to suit your screen position +
-  static int left = 530; +
-  static int top = 274; +
- +
- ​툴킷에서 제공되는 컨트롤러는 굉장히 단순한 컨트롤러로,​ 미스팩맨의 위치로부터 가장 가까운 알약을 찾아 그 알약을 향해서 이동하는 방식이다. 아래 코드는 Agent.java의 일부를 발췌하여 놓은 것으로 Move와 eval 메소드를 보여준다.+
  
   public int move(GameState gs) {   public int move(GameState gs) {
Line 70: Line 59:
   }   }
  
- ​이미지 프로세싱에 대한 부분의 프로그래밍을 따로 하지 않고 새로운 Controller의 개발에만 집중하고 싶다면 툴킷을 다운로드 하여 미스팩맨을 직접적으로 컨트롤하여 키보드 이벤트를 발생시키는 부분만을 수정하면 된다. 
-  
- 툴 킷 다운로드 : http://​cswww.essex.ac.uk/​staff/​sml/​pacman/​pac.zip ​ 
  
-====4-C# 툴 킷 ====+=== Option ​2 ===
  
 {{:​wiki:​c_kit2.jpg|}} {{:​wiki:​c_kit2.jpg|}}
  
- 위의 그림은 ​http://​www.codeplex.com/​MsPacmanAI ​에서 얻을 수 있는 C# kit를 이용하여 게임이 구동되는 장면이다. 게임을 실행시키고 Initialize 버튼을 누르게 되면 자동으로 화면에서 게임 윈도우를 찾아 그 위치를 옮기고 스크린 캡쳐를 통해 정보를 추출하여 윈도우에 그 정보를 표시하는 방식으로 진행된다.+ Download :  [[http://​www.codeplex.com/​MsPacmanAI|Click]]
  
- 프로그램 내부에 컨트롤러로 사용될 클래스를 미리 작성해 두면 프로그램을 수정하지 않고 간단하게 시험해보고 싶은 컨트롤러를 선택할 수 있고, 일일이 게임 윈도우의 위치나 유령의 색을 지정해줄 필요가 없기 때문에 C#에 익숙한 사람이라면 JAVA 툴 킷 보다 훨씬 쉽게 접근 할 수 있을 것으로 생각 된다.+ It automatically detects the position of the game screen. You don't need to reconfigure the color of the ghosts
  
 {{:​wiki:​c_kit3.jpg?​800|}} {{:​wiki:​c_kit3.jpg?​800|}}
  
- 다음은 ​Visual Studio 2008을 이용하여 제공된 툴 킷의 프로젝트 파일을 실행한 모습이다PacmanAI 부분에 있는 여러 가지 컨트롤러의 버전을 수정하는 것도 가능하고,​ 원한다면 새로운 컨트롤러를 작성하여 추가하여도 된다새로운 컨트롤러를 작성하여 추가해주기만 하면 MsPacmanController 윈도우에서 간편하게 선택하여 테스트 해볼 수 있다.+ You can open the project from the package using Visual Studio 2008. It also supports the simulator for the MsPac-Man controller
  
 {{:​wiki:​c_kit.jpg?​800|}} {{:​wiki:​c_kit.jpg?​800|}}
   ​   ​
- 실행 시키는 것도 간단하다. 위의 그림과 같은 방법으로 MsPacmanController의 인스턴스를 시작해주기만 하면 제어를 위한 윈도우 창이 생기게 되고, 그 윈도우 창을 조작하여 미스팩맨과 연동시켜주면 된다. + You can control the program from the user interface
- +
-====4-3 ICE Pambush 3 ==== +
- +
- ICE Pambush 3는 2009년 경진대회에서 우승을 차지한 팀이다. JAVA에 기반하여 프로그램을 작성하였으며,​ 기존에 CIG에서 제공하는 JAVA 툴 킷의 스크린 캡쳐 부분을 수정하여 자동으로 게임 윈도우를 감지하기 때문에 CIG에서 제공하는 툴과 다르게 윈도우의 위치를 지정해주거나 유령의 색 코드를 맞추어줄 필요가 없어 굉장히 간편하다. ​  +
- +
-2009년 ICE Pambush 3 의 Document :  +
-[[http://​cswww.essex.ac.uk/​staff/​sml/​pacman/​cig2009/​ICEPambush3/​ICE%20Pambush%203.pdf]] +
-     +
-{{:​wiki:​pambush3.jpg?​400|}} {{:​wiki:​pambush3score.jpg?​400|}} +
- +
- ICE Pambush 3의 핵심 전략을 간략하게 소개하자면,​ 만약 유령과 적당한 거리를 유지한 상태에서 현재 Power pill(큰 알약)이 미스팩맨의 근처에 있다면 "​습격 모드"​ On 하는 방식을 사용한다. 즉, 큰 알약의 주변에서 유령이 가까이 오기를 기다리고 있다가 유령이 근접하면 큰 알약을 먹고 유령을 먹어치워버린다. 그 이외에도 A* 알고리즘에서 현재 상황에 따라 두가지 버전의 다른 DFS(Depth First Search)를 사용하는 등의 특징이 있으나 여기서는 자세히 다루지 않겠다.+
  
- C# 대신 JAVA를 사용해서 경진 대회에 참여를 하고 싶다면 이 ICE Pambush 3 팀의 코드를 시작점으로 잡는 것도 하나의 좋은 방법이 될 수 있겠다. 위에서 소개한 C# 툴 킷의 경우에는 게임을 따로 시작해두지 않아도 자동으로 프로그램이 게임을 시작하게 하지만, 이 ICE Pambush 3의 프로그램은 게임을 자동으로 시작하지 않기 때문에 직접 시작 해주어야 한다