Skip to content

Broderick-Westrope/mancala-go

Repository files navigation

Mancala-GO

demo gif

If you're unsure what Mancala is, take a look here (or Google it if my link is broken).

This is a little personal project I created whilst learning Golang to test the power of the standard library, and also experiment with a few packages like:

I'm also taking the opportunity to try out a few Golang devtools like Air, Delve, and (not Go specific) DevContainers. I also recommend checking out Lazygit if you haven't already. It's by no means new to my toolkit, but it's awesome and made with Go.

An opponent is included. It is built using the Minimax algorithm, and can be used by providing the flag -mode minimax.

Any feedback is much appreciated :)

Inspirations

Roadmap

Some more things I'm thinking of adding:

  • Improved algorithm & performance for the Minimax opponent.
  • Remote play with SSH (maybe Wish), WebSockets, or something else (this stuff is not my forte). So far I'm leaning towards SSH because from what I can tell I'd need a central server for the WebSocket approach.
  • REST API to interact with the core engine, which I'd then deploy :)

Gifs

You may notice some *.tape files in the repo. These are used to generate the gifs used for the docs (like seen at the top). This is done using VHS which is another awesome tool by Charm. It provides a simple format for creating terminal recordings.