메뉴 건너뛰기

app

[AI] Google AI challenge starter_package 실행 해 보기

박영식2011.04.13 01:10조회 수 3601댓글 2

  • 2
    • 글자 크기

14개의 언어로 모두 실행해 봤습니다. 이제 lisp winner code로 다른 코드들과 대결(?)해 봐야겠네요.
그래도 PHP만한 언어가 없다는 생각이 드네요. ㅎㅎ

LISP, C++, JAVA, Python, C#, GO, Groovy, Haskell, Javascript, OCaml, Perl, PHP, Scala, Ruby

# 우분투에서 TEST 함(밑줄은 fc11에서)

C#을 LINUX에서 실행할 수 있다는 것에서 많은 이들이 흥미를 느꼈습니다.

결과는 LISP이 1위 인데, 다른 언어들도 많이 있으므로 같이 TEST 해 보기로 했습니다.

자바는 기본적으로 제공되므로, 나머지 언어에 대해서 테스트 합니다.
자바를 포함해 모든 언어를 테스트 해보기로 했습니다.


# 자바가 설치되어 있어야 한다.
우분투라면, 시스템->관리->소프트웨어 소스 를 선택하면, partner가 있다. 체크박스를 선택하고, 닫으면 새로고침 된다.
그 후, 프로그램 우분투 소프트웨어 센터 에서 java를 검색하면, sun java6 플러그인을 설치해, 자바 런타임의 환경을 구성할 수 있다.

1. LISP

1) 개발환경
우분투라면, sbcl, slime, emacs 등을 설치한다.(sudo apt-get install emacs sbcl slime)
emacs에서 C-U M-X slime 하고
sh/path/to/starter-kit/bin/run-sbcl.sh 로 MyBot 파일을 만들 수 있다.

그냥 터미널에서
      sbcl --disable-ldb --lose-on-corruption --end-runtime-options
      --no-sysinit --no-userinit --disable-debugger --load MyBot.lisp
      --eval "(save-lisp-and-die "MyBot" :executable t :toplevel #'pwbot::main)"
위 명령어를 이용해 만드는 것도 가능하다.

2) 실행
$ java -jar tools/PlayGame.jar maps/map8.txt 1000 1000 game.log      "java -jar example_bots/DualBot.jar" "./MyBot" | java -jar tools/ShowGame.jar

자바가 설치되어 있다면 이상없이 실행되고, 아래 화면을 볼 수 있다.
1.png

 



2. C++
1) 개발환경
특별한 개발환경은 필요없지만, g++은 설치되어 있어야 한다.
sudo apt-get install g++
로 설치하면 된다.
cpp-starter-packager를 다운로드 한 후, 해당 Makefile이 존재하는 디렉터리에서 make를 하면, 바로 MyBot 파일을 얻을 수 있다.

2) 실행 방법은 모두 같다.

$ java -jar tools/PlayGame.jar maps/map8.txt 1000 1000 game.log      "java -jar example_bots/DualBot.jar" "./MyBot" | java -jar tools/ShowGame.jar

 
 
3. Javascript
1) 개발환경
node라는 게 있어야 한다. 이를 설치하기 위해, curl 등이 필요하다.
# sudo apt-get install curl make g++ libssl-dev
# curl http://nodejs.org/dist/node-v0.2.1.tar.gz -O
# tar xvfz node-v0.2.1.tar.gz
# cd node-v0.2.1
# ./configure
# make
# sudo make install
 
꽤 시간이 걸린다.
 
2) 실행
 
node MyBot.js 가 player 자리에 들어가는 것만 빼고 동일하다.
 
# java -jar tools/PlayGame-1.2.jar maps/map7.txt 1000 1000 log.txt  "java -jar example_bots/RandomBot.jar" "node MyBot.js"  | java -jar tools/ShowGame.jar
 
이건 자바스크립트가 승리한다. 시간을 투자한 보람이 있다. T.t"'''
 
4. peal
 
1) 실행환경
peal만 있으면 된다.
 
2) 실행
 
sh play_bot.sh
하면 java를 실행시키는 스크립트가 자동으로 실행해 준다. 물론 아래와 같이 기술해도 된다.
# java -jar tools/PlayGame.jar maps/map7.txt 1000 1000 log.txt  "java -jar example_bots/RandomBot.jar" "perl MyBot.pl"  | java -jar tools/ShowGame.jar
 
5. C#
mono로 실행했다고 되어있는데, http://www.mvpmagazine.net/38 를 참고했다.
mono를 우분투에서 사용하려 했으나, 현재 서비스가 원할하지 않아, mono를 이용할 수 없다.

1) 컴파일
fedora에서 성공했다. 설명이 없어서 찾을 수 없었고, 대충 아무거나 입력 하다가 성공했다.
# gmcs MyBot.cs PlanetWars.cs Planet.cs Fleet.cs
하면, MyBot.exe가 생긴다.
2) 실행
# java -jar tools/PlayGame.jar maps/map7.txt 1000 1000 log.txt  "java -jar example_bots/RandomBot.jar" "mono MyBot.exe"  | java -jar tools/ShowGame.jar
 
6. php
 
1) php version이 5.2.4 이상, php-cli 확인
 
2) 실행
# java -jar tools/PlayGame.jar maps/map7.txt 1000 1000 log.txt  "java -jar example_bots/RandomBot.jar" "php MyBot.php"  | java -jar tools/ShowGame.jar
 
7. Java
 
1) 환경
# apt-get install openjdk-6-jdk
로 openjdk를 설치하고 다운로드한 java_starter_package 안에서 MyBot을 컴파일 한다.
# javac Mybot.java
 
2) 실행
 
# java -jar tools/PlayGame.jar maps/map7.txt 1000 1000 log.txt  "java -jar example_bots/RandomBot.jar" "java MyBot"  | java -jar tools/ShowGame.jar
 
 
8. python
 
1) python이 설치되어있는지 확인한다.
2) 실행
# java -jar tools/PlayGame.jar maps/map7.txt 1000 1000 log.txt  "java -jar example_bots/RandomBot.jar" "python MyBot.py"  | java -jar tools/ShowGame.jar
 
 
9. go
1) mercurial 로 go를 받아야 한다. 
2) mercurial 설치
# yum install mercurial
3) go download
# hg clone -r release https://go.googlecode.com/hg/ go
4) go 설치
# cd go/src
# ./all.bash
5) go 환경설정
export GOROOT=$HOME/go
export GOARCH=386
export GOOS=linux
export GOBIN=$HOME/go/bin
export PATH=$PATH:$HOME/go/bin
6) go 소스 코드 수정
2011-3-7 일자 go가 설치되었다면, float 함수가 float32, float64로 바뀌었기 때문에,
MyBot.go:26: undefined: float
MyBot.go:29: undefined: float
MyBot.go:39: undefined: float
MyBot.go:41: undefined: float
위와 같은 에러를 볼 수 있다.
editor로 열어서, 4부분을 수정한다.
 
이 밖에 go에 대한 에러로 can't find import os 같은 error가 발생하면, environment error이니, 5)를 잘 세팅하기 바란다.
7) 컴파일 - 설정이 완벽하다면 make 만으로 MyBot이 만들어 진다.
# make
8) 실행
 java -jar tools/PlayGame.jar maps/map7.txt 1000 1000 log.txt  "java -jar example_bots/RandomBot.jar" "MyBot"  | java -jar tools/ShowGame.jar
9) google 욕하기
google에서 주최하고, go도 google이 고안했는데, 설명도 없고, 하루 종일 시달렸다. OZL.....
 
10. Groovy
1) groovy install or download
http://groovy.codehaus.org/Download
2) JAVA_HOME check(if you need)
# export JAVA_HOME=[java_home]
(cf. export JAVA_HOME=/usr/lib/jvm/jre-1.6.0-openjdk/)

3) add groovy path
# export PATH=/home/forone/groovy-1.7.10/bin:$PATH

4) execution
# java -jar tools/PlayGame.jar maps/map7.txt 20000 20000 log.txt "groovy MyBot.groovy" "java -jar example_bots/RandomBot.jar"  | java -jar tools/ShowGame.jar

$) Time out happening
1000 1000 -> increment
(cf. 20000 20000)

11. Heskell
1) install GHC(Glasgow Heskell Compiler)
# yum install ghc
2) compile
# ghc --make MyBot.hs
3) copy to jar files[if you need]
# cp [example_bots_jar_path]/*.jar [your_setting]/example_bots/
(cf. # cp *.jar ../../planet-wars-haskell/example_bots/)
4) execution
# java -jar tools/PlayGame.jar maps/map7.txt 1000 1000 log.txt "MyBot" "java -jar example_bots/RandomBot.jar"  | java -jar tools/ShowGame.jar

12. ruby
1) ruby install
# yum install ruby
2) execution
# java -jar tools/PlayGame.jar maps/map7.txt 5000 5000 log.txt "ruby mybot.rb" "java -jar example_bots/RandomBot.jar"  | java -jar tools/ShowGame.jar

13. OCaml
1) 설치
$ sudo aptitude install ocaml-native-compilers
컴파일러만 설치하면 될 것 같다.
(cf. # sudo aptitude install ocaml / 이건 필요치 않을 수도 있다.)

2) 컴파일
$ ocamlbuild MyBot.native
README 파일을 읽어보면 이렇게 build 하라고 되어 있다.
실행파일 MyBot.native 가 생긴다.

3) 실행
$ java -jar tools/PlayGame.jar maps/map7.txt 5000 5000 log.txt  "java -jar example_bots/RandomBot.jar" "./MyBot.native"  | java -jar tools/ShowGame.jar

14. scala
1) download
Install Scala 2.8 (http://www.scala-lang.org/)

2) build:
scalac *scala

3) example_bots 복사
# cp example_bots [your_scalar_pkg_path]
(cf. $ cp example_bots/ ../scala_starter_package)

4) 실행
$ java -jar tools/PlayGame.jar maps/map8.txt 11000 11000 game.log      "java -jar example_bots/DualBot.jar" "scala MyBot" | java -jar tools/ShowGame.jar

$) http://ai-contest.com/starter_packages.php 페이지 확인
여기엔 1.8 이라고 되어 있는데, README 파일을 읽어보면, 오타라는 것을 알 수 있다.
제대로 빌드가 안 되었는지 error가 있다. 그건 무시..

https://sites.google.com/site/2011korealispseminar/

박영식 (비회원)
  • 2
    • 글자 크기
[C++] 하위 폴더 검색 최간편 소스 (by 박영식) [PHP] XE에서 document_srl로 DocumentModel 만들기 (by 박영식)

댓글 달기

댓글 2
suritam9
2013.04.25 조회 6108
suritam9
2013.04.04 조회 2197
suritam9
2012.09.14 조회 2515
suritam9
2012.06.24 조회 2366
suritam9
2012.06.24 조회 2776
suritam9
2012.06.24 조회 2532
suritam9
2012.06.22 조회 2582
박영식
2011.09.22 조회 2544
박영식
2011.09.21 조회 2488
박영식
2011.02.18 조회 2964
박영식
2010.09.29 조회 4757
첨부 (2)
1.png
437.6KB / Download 84
02-google-a-i-challange.pdf
720.7KB / Download 97
위로