Go game written in Clojure for the fun of machine learning and super non-human intelligence!
You are here. Please enjoy your stay. Add your merge-request and help out?
Download from https://github.com/no.jansenh/clj-go
# Run the project directly, via `:exec-fn`:
clojure -X:run-x
The game has no meaning and makes no sense at this time. All we can do is place stones on the board, alternating white or black player. Or make a pass on a turn. Or resign the game.
The game-board holds a state and graphical implementation of the game. Logic , rules and reasoning to drive the game will follow.
If you choose to use the project in a REPL, you can interact with the game as player white through an API.
;; navigate to the board namespace
(ns no.jansenh.clj-go.board)
;; start the game
(-main)
;; and interact with the game as player :white
(make-white-move [1 2])
(white-pass)
(white-resign)
;; You can observe the game-state in the REPL:
(deref game-state)
clojure -T:build test
Build the project and build an uberjar. This will produce an updated `pom.xml` file with synchronized dependencies inside the `META-INF` directory inside `target/classes` and the uberjar in `target`. You can update the version (and SCM tag) information in generated `pom.xml` by updating `build.clj`.
If you don’t want the `pom.xml` file in your project, you can remove it. The `ci` task will still generate a minimal `pom.xml` as part of the `uber` task, unless you remove `version` from `build.clj`.
clojure -T:build ci
Run that uberjar:
java -jar target/no.jansenh/clj-go-0.1.0-SNAPSHOT.jar
We keep a changelog!
Copyright © 2025 Henning Jansen Distributed under the GNU General Public License v3.0