메뉴 건너뛰기

app

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

박영식2011.04.13 01:10조회 수 3412댓글 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
    • 글자 크기

댓글 달기

댓글 2
박영식
2011.09.22 조회 2432
박영식
2011.09.21 조회 2364
이전 1 2 3 4 5 6 7 8 9 10 11... 15다음
첨부 (2)
1.png
437.6KB / Download 65
02-google-a-i-challange.pdf
720.7KB / Download 77
위로