Skip to content

Commit 5bb7409

Browse files
Daniel WhiteDaniel White
authored andcommitted
Added README.md.
1 parent f590f16 commit 5bb7409

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

README.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
## Introduction
2+
iota aims to be a tiny C chess engine, supporting the full rules of chess, as
3+
well as a standard protocol. More precisely, it aims to:
4+
5+
1. support (a subset of) a standard protocol (UCI or CECP) such that a full game
6+
can be played, and
7+
2. for every *legal position* in which a legal move exists, be able to give one.
8+
9+
Where we define a *legal position* as one which can be reached from the initial
10+
position by a sequence of legal moves. It includes the full game state. While it
11+
may be arbitrary, we require a standard protocol because one could imagine a
12+
pathological protocol where the GUI sends a list of legal moves, from which the
13+
engine then selects one. This would reduce the exercise to writing the smallest
14+
program which repeatedly choose the first move (say).
15+
16+
For the first criteria we use the UCI protocol, in particular the following
17+
commands are used: 'uci'/'uciok', 'isready'/'readyok', 'position' and
18+
'go'/'bestmove'. While iota does obey the second requirement - so accepting
19+
en-passent captures, under-promotions and castling - it will never castle
20+
itself. Note that this is not a violation because if we have the option to
21+
castle, then we always have the alternatives of simply moving either one of the
22+
king and rook toward the other.
23+
24+
## Acknowledgements
25+
I would like to give thanks to H. G. Muller (HGM) both for his engine MicroMax
26+
and its description, and also for his practical
27+
[definition](http://home.hccnet.nl/h.g.muller/definition.txt) of a chess
28+
program:
29+
> A Chess program is a program that can finish more than 50% of the games it
30+
> plays against an opponent that plays moves randomly chosen from the set of
31+
> Chess moves that are legal from the current position according to the FIDE
32+
> rules.

0 commit comments

Comments
 (0)