GitXplorerGitXplorer
t

morat

public
6 stars
7 forks
3 issues

Commits

List of commits on branch master.
Unverified
cbfb58c82f2fc8c39ff16bc1ac6d6356cced89f4

Fix some alignment.

ttewalds committed 5 years ago
Unverified
101ace971f708a35c32e096b540fb0632e26b309

Fix the garbage collector by using a small array instead of a flexible array which isn't supported by c++

ttewalds committed 5 years ago
Unverified
e73747bd5b7f21068b2a80c0894c50688048649e

Flip x and y, or at least letters and numbers, so that bigger boards render properly.

ttewalds committed 9 years ago
Unverified
b6e78c6c66c2babf1269425adb723f0743576681

Increase the max board sizes, fix compact tree

ttewalds committed 9 years ago
Unverified
a73d6893147167adf0bb2f98cc68c5ee48af5149

Add some aliases to make playing manually easier

ttewalds committed 9 years ago
Unverified
995a6927143a684125d0185355f36ef0cfb286d1

Add a lap timer.

ttewalds committed 9 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.