shithub: chessfs

ref: 03c4b270665987e034d6589d595e4e6b638a02ab
dir: /README.md/

View raw version
# Synopsis

This is a 9P filesystem aimed at playing chess. It's written in Go,
leveraging the `styx` library, so you should be able to compile it
on Linux, Plan9, etc, and play it in the terminal.

Usage:

```
chessfs -a tcp!*!5650 &
srv tcp!cobra!5650 chess /n/chess
```

# Files

## Status

The `status` file presents the following things:
	- elapsed time for white
	- elapsed time for black
	- maximum player time (measured in seconds; -1 means no limit)
	- current turn

## Board

The `board` file shows a view of the current board using UTF-8. The
view is from white player's perspective.

## Control file

The following control commands are available:

	- new
	- move <move>
	- load <PGN line>

The moves are coded in a notation similar to the Standard Algebraic Notation.

## History

A PGN-format line representing the game history. You can `cat` it to a file
and replay the game later by using the `load` command.

## Notify

Reading from this file finishes when the player turn changes.

# TODOs

Features:

	- mounting on Inferno does not work
	- more descriptive error messages
	- script or create file for black player's perspective
	- implement the following moves: castling, promotion, en passant
	- win/lose mechanism & score file
	- game history file (PGN format)
	- write a script to import a PGN puzzle
	- Limbo frontend! Emacs frontend!