Skip to content

jamesmauss/checkerlution

 
 

Repository files navigation

Build Status

A "checkers bot" which connects to a Checkers Overlord server and uses neurgo to do it's thinking (or lack thereof).

screenshot

Architecture

architecture png

Install pre-requisites

  • Go 1.1 or later

Install checkerlution

$ go get github.com/tleyden/checkerlution
$ go get github.com/couchbaselabs/go.assert

Validate installation - run tests

$ cd $GOPATH/github.com/tleyden/checkerlution
$ go test -v

Install Couchbase Server

Install Sync Gateway

Install Checkers Lite

Not strictly required, but very useful in order to view the game.

The other way to install Checkers-iOS from github. Unfortunately it is a private repo at the time of this writing. Contact wacarter if you are interested in getting the source code.

It can be installed for the iTunes Store, however that version is only able to connect to the non-public production server.

Configure checkerlution

Edit SERVER_URL in gamecontroller.go to point the Sync Gateway you want to test against.

Run checkerlution

$ cd $GOPATH/github.com/tleyden/checkerlution/main
$ go run main.go

How it's modeled

  • sensor1: game state array with 32 elements, each of which is:

    • -1.0: opponent king
    • -0.5: opponent piece
    • 0 empty
    • 0.5 our piece
    • 1.0: our king
  • sensor2: an available move, which is:

    • start_location(normalized to be between -1 and 1)
    • is_king(-1: false, 1: true)
    • final_location(-1 and 1)
    • will_be_king(-1: false, 1: true)
    • amt_would_capture(-1: none, 0: 1 piece, 1: 2 or more pieces)
  • actuator: outputs a scalar value representing the confidence in the available move

There is a loop which presents each move to the network, and the move which has the highest confidence wins.

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%