GitXplorerGitXplorer
t

morat

public
6 stars
7 forks
3 issues

Commits

List of commits on branch master.
Unverified
66a8f7afef940e4721adcddf0315469dfadac0d8

Move various bits into board_shape_*

ttewalds committed 10 years ago
Unverified
5a0568e8b118c233aef0c6513edc0262a5b0fc4c

Rename BoardBase* to BoardGrid*

ttewalds committed 10 years ago
Unverified
4ee966c39bdc5713815c45dfd00552e0ce65cef3

Move iterators into the super classes.

ttewalds committed 10 years ago
Unverified
d7f28e832700df11045ce94ac00fae16a424eff7

Add a base board, and move patterns into board subclasses.

ttewalds committed 10 years ago
Unverified
796b87b8042c7862e9205d03885fb45a9a772fc2

Various fixes to hashes. Hex now does symmetry correctly. Add some tests.

ttewalds committed 10 years ago
Unverified
7ac0605f6e368e721af4b5cfeeeea09bb490aad7

Make find_group and join_group private, remove the unused overloads

ttewalds committed 10 years ago

README

The README file for this repository.

Morat

Build Status

Morat is a game playing framework, along with implementations of several games. It includes some general purpose libraries (alarm, time, thread, random), and some game specific libraries (compacting tree, gtp, time controls).

It specializes in 2-player, perfect information, zero sum, deterministic games, especially placement games (where RAVE works).

So far it supports 6 games:

Potential games:

Potential variants:

  • Gomoku on a hex board
  • non-regular or non-symmetric boards
  • Misere any game (ie make rex a variant of hex instead of its own game)
  • 1,2,2 (first turn place 1 piece, then each player alternates placing 2 pieces)
  • Various swap rules

So far it supports 3 algorithms:

Potential algorithms:

The goal is to make the algorithms game independent, and make it easier to implement new games with strong players. There is quite a bit of work left to make this a reality, so the current work is just to make the game code more similar and then move the code into common libraries.

The primary interface is GTP (Go Text Protocol), which can be used from:

Requirements

  • Linux (probably works on any unix)
  • C++ tool chain (g++ or clang)

Usage

  • Check out the code from github
  • Run make to compile the code
  • Run:
    • ./morat-gomoku for Gomoku
    • ./morat-havannah for Havannah
    • ./morat-hex for Hex
    • ./morat-rex for Reverse Hex
    • ./morat-y for Y
    • ./morat-pentago for pentago

Run make test to run the test suite. Current test coverage is pretty bad.

If you make any changes to the code and want to update the dependencies, just make clean, or rm .Makefile.

License

This projected is licensed under the terms of the MIT license.