Skip to content

Henningzen/clj-go

Repository files navigation

README

clj-go

Go game written in Clojure for the fun of machine learning and super non-human intelligence!

‼️⚠️🚧 Under Construction 🚧️

You are here. Please enjoy your stay. Add your merge-request and help out?

./img/clj-go-intro.png

Installation

Download from https://github.com/no.jansenh/clj-go

Usage

# 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)

Testing

clojure -T:build test

CI pipeline

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

Changelog

We keep a changelog!

License

Copyright © 2025 Henning Jansen Distributed under the GNU General Public License v3.0

About

Clojure Go game

Resources

License

Stars

Watchers

Forks

Packages

No packages published