abalone

module
v0.0.0-...-351bd47 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 10, 2018 License: MIT

README

This is a AI programming competition for the classic board game Abalone.

Installation:

go get github.com/danmane/abalone/...
cd $GOPATH/github.com/danmane/abalone/go
go get ./...
go build ./...
cd $GOPATH/github.com/danmane/abalone/frontend
npm install
bower install

Getting Started:

We've made it easy to develop an AI, provided you're comfortable using Go. Just take the template in go/cmd/abalone_example_ai/main.go and fill the skeleton play function with your own AI logic. An implementation of the game is already provided in go/game so you don't need to write the logic yourself.

Writing an AI in a different language:

Behind the scenes, the quickstart package will take care of implementing networking and communication for you. If you want to write an AI in a different language, it will need to implement the following spec:

  • It is an executable that will take a "-port" argument at the command line, which will tell it which port to listen on.
  • It will bind to that port. If it receives a GET request to "/ping", it will respond with http.StatusOK (200).
  • If it recieves a POST request to "/move", it will parse the incoming JSON as a MoveRequest (move_request.go) object containing the current Abalone game state and the number of milliseconds it has to respond. It will respond within that number of milliseconds with a valid game state one move advanced from the one it recieved.
To play locally against yourself or another human
cd frontend
grunt
localhost:9999/local.html
To play against an AI with yourself as black
cd frontend
grunt&
./cmd/abalone_example_ai/abalone_example_ai& #defaults to port 3423, which signifies playing as white
./cmd/abalone_relayd/abalone_relayd& #defaults to port 3424, which signifies playing as black
./cmd/abalone_gameoperator/abalone_gameoperator
navigate to localhost:9999/remote.html
To play against an AI with yourself as white
cd frontend
grunt&
cd ../go 
./cmd/abalone_example_ai/abalone_example_ai -port="3424"&
./cmd/abalone_relayd/abalone_relayd -port="3423&
./cmd/abalone_gameoperator/abalone_gameoperator
navigate to localhost:9999/remote.html
To play two AIs agaisnt each other
./cmd/abalone_example_ai/abalone_example_ai -port="3423"&
./cmd/abalone_example_ai/abalone_example_ai -port="3424"&
./cmd/abalone_gameoperator/abalone_gameoperator

Directories

Path Synopsis
go
api
experimental/serialize/proto
Package game_state_pb is a generated protocol buffer package.
Package game_state_pb is a generated protocol buffer package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL