https://github.com/reiddraper/crosscram
https://github.com/reiddraper/crosscram
Last synced: 8 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/reiddraper/crosscram
- Owner: reiddraper
- License: other
- Created: 2012-04-11T02:30:44.000Z (about 14 years ago)
- Default Branch: master
- Last Pushed: 2014-08-17T19:54:53.000Z (almost 12 years ago)
- Last Synced: 2025-02-14T22:43:07.206Z (over 1 year ago)
- Language: Clojure
- Homepage:
- Size: 219 KB
- Stars: 3
- Watchers: 3
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: COPYING
Awesome Lists containing this project
README
# crosscram
[Crosscram](http://en.wikipedia.org/wiki/Domineering) is a two-player
[perfect information](http://en.wikipedia.org/wiki/Perfect_information) game.
This is a Clojure project for writing AI bots to play against each other:
```bash
$ lein run crosscram.samples.eager-walk crosscram.samples.random 13 13 100
Scores: {:bot-a 3, :bot-b 66, :draws 31}
```
The game is played on a two-dimensional board, much like Chess, Checkers
or Go. The two players alternate turns until one player can no longer
move, based on the game rules. Players place dominoes (2 x 1 pieces)
on empty locations on the board. One player plays horizontal pieces,
the other vertical. The game continues until one player can no longer
make a move. The last player able to make a move is the winner.
Here's an example game. In this example, the board
is square, 4 x 4. The first player is playing as horizontal
and the second as vertical.
# Empty game
[ ][ ][ ][ ]
[ ][ ][ ][ ]
[ ][ ][ ][ ]
[ ][ ][ ][ ]
# First move
[1][1][ ][ ]
[ ][ ][ ][ ]
[ ][ ][ ][ ]
[ ][ ][ ][ ]
# Second move
[1][1][ ][ ]
[2][ ][ ][ ]
[2][ ][ ][ ]
[ ][ ][ ][ ]
# Third move
[1][1][ ][ ]
[2][ ][ ][ ]
[2][ ][ ][ ]
[ ][ ][3][3]
# Fourth move
[1][1][ ][ ]
[2][ ][4][ ]
[2][ ][4][ ]
[ ][ ][3][3]
# Fifth move
[1][1][ ][ ]
[2][ ][4][ ]
[2][ ][4][ ]
[5][5][3][3]
# Sixth move
[1][1][ ][6]
[2][ ][4][6]
[2][ ][4][ ]
[5][5][3][3]
The game is now over because the next player cannot play a horizontal piece.
## License
Copyright (C) 2012 Reid Draper and
[contributors](https://github.com/baznex/crosscram/graphs/contributors)
Distributed under the Eclipse Public License, the same as Clojure uses.
See the file COPYING.