In 2013 when I was in University and had to learn Java I was looking for a project to do so. The result of this was jessy, which I already mentioned in another post.
It’s a chess game for the terminal using Unicode and written in Java. Shortly before I started it I have been watching Breaking Bad. One of the characters is named Jesse Pinkman and I called my Java Chess program jessy.
At first I did it only become clear in my head about multi dimensional arrays and how they get displayed. Then I used it to have some practise in Java and it was always my intention to add a bunch of random quotes from the TV series. For example Jesse telling Walter to fuck himself once the AI loses against the player. Sadly I only added view of them and none at all via a random generator.
For example the description of jessy: a totally kafkaesque chess game is a quote of Jesse Pinkman. If you read the README of the program you can see that I tried to adhere to the style.
So the first commit to jessy happened on 17th December 2013 and the last on 15th December 2014. It used the flux chess engine and could load and save games into files.
On 29th December 2014 I started a new project: pinkman. I was playing around with Go at that time and thought about reimplementing the command line chess game in Go. At first it didnt happen much but in Christmas holidays of 2015 I revived the project and finished it some days later.
pinkman is a command line based chess interface to UCI compatible chess engines, particularly Stockfish; using Unicode written in Go.
pinkman can use any UCI compatible chess engine as a backend, though I myself only used the Stockfish chess engine. Which is (or at least was at some point) the strongest chess engine out there.
Since I like Go more than Java, and pinkman more than jessy, pinkman’s title is the totally kafkaesque chess game.
People who would likt to play the game have several possibilities to install it. If you have installed Go you can just follow the README and run: go get github.com/jubalh/pinkman
to get the program.
Followed by $GOPATH/bin/pinkman --path /usr/bin/stockfish
to launch it.
What’s this --path
thing you might wonder? Right. You need the stockfish engine to be installed. Some distributions have it in their package manager. Since openSUSE doesnt have it I packaged it and put it in my home project. Most people just download the binary from the official download site though.
Either you rename the binary to stockfish
and place it in the same directory as pinkman or you use the --path
parameter to tell pinkman where stockfish resides.
A third way is download the latest release version of pinkman from the GitHub release page which is a zipped archive containing the binaries for pinkman and stockfish. At the time of this writing I only have binaries for 64bit Linux present, because I only have Linux machines around recently. But maybe I will add other binaries as well.
Downloading the release is the easiest option because you dont have to care about stockfish.
A quick way to play pinkman version 0.1 on a 64 bit Linux system would be:
$ wget https://github.com/jubalh/pinkman/files/77434/pinkman-linux-64.tar.gz
$ tar xfv pinkman-linux-64.tar.gz
pinkman/stockfish
pinkman/pinkman
pinkman/
$ cd pinkman
$ ./pinkman
You can see pinkman parameters and switches with --help
and also in-game you can run a help
to learn which commands pinkman understands.
$ pinkman --help
NAME:
pinkman - the totally kafkaesque chess game
USAGE:
pinkman [global options] command [command options] [arguments...]
VERSION:
0.1
AUTHOR(S):
Michael Vetter <jubalh@openmailbox.org>
COMMANDS:
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--no-ai don't play against the engine. Can be used in case two people want to play on the same computer
--ai-white let AI play white
--path "./stockfish" set path to UCI engine. Standard is a executable named 'stockfish' in the same directory as the pinkman binary
--help, -h show help
--version, -v print the version
$ ./pinkman
*** pinkman ***
the totally kafkaesque chess game
# start
A B C D E F G H
________________________________
8| [♜ ][♞ ][♝ ][♛ ][♚ ][♝ ][♞ ][♜ ]
7| [♟ ][♟ ][♟ ][♟ ][♟ ][♟ ][♟ ][♟ ]
6| [ ][ ][ ][ ][ ][ ][ ][ ]
5| [ ][ ][ ][ ][ ][ ][ ][ ]
4| [ ][ ][ ][ ][ ][ ][ ][ ]
3| [ ][ ][ ][ ][ ][ ][ ][ ]
2| [♙ ][♙ ][♙ ][♙ ][♙ ][♙ ][♙ ][♙ ]
1| [♖ ][♘ ][♗ ][♕ ][♔ ][♗ ][♘ ][♖ ]
A B C D E F G H
________________________________
Game started ▫ white# b1c3
A B C D E F G H
________________________________
8| [♜ ][♞ ][♝ ][♛ ][♚ ][♝ ][♞ ][♜ ]
7| [♟ ][♟ ][♟ ][♟ ][ ][♟ ][♟ ][♟ ]
6| [ ][ ][ ][ ][ ][ ][ ][ ]
5| [ ][ ][ ][ ][♟ ][ ][ ][ ]
4| [ ][ ][ ][ ][ ][ ][ ][ ]
3| [ ][ ][♘ ][ ][ ][ ][ ][ ]
2| [♙ ][♙ ][♙ ][♙ ][♙ ][♙ ][♙ ][♙ ]
1| [♖ ][ ][♗ ][♕ ][♔ ][♗ ][♘ ][♖ ]
A B C D E F G H
________________________________
Game started ▫ white#