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
자바가 설치되어 있다면 이상없이 실행되고, 아래 화면을 볼 수 있다.
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
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
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/
댓글 달기