Nino was my first 'serious' programming project. I started to write it in my second year of university because I love chess ever since I was a kid, I had learned C and I wanted to challenge myself.
Found it laying around and decided to dust it off and post it.
It partially implements the CECP protocol so it has been tested with XBoard, WinBoard and Arena on Windows.
Just use make under linux/windows or use the compile.bat script.
$ cd src
$ make= or set Sets the board to the initial state
/ or boardinfo prints the current state of the board and other information
xxxx An algebraic notation chess move (a-h)(1-8)(a-h)(1-8). It just makes that move on the board
; n , play n or search n starts the chess engine to find a move using a max ply of n
\ n or think n start the chess engine to run for n seconds reaching the maximum ply posible. If no n is supplied default time to think is 5 seconds.
- or undo Undo the last move
fen Prints the fen notation string for the position
clear clears the terminal
debug Turn debug mode on
perft n to run a performance test with a n ply depth
epdtest file Read file (an epd file) and does a performance with the test file supplied
exit, bye or quit to exit the program
eval Evaluates position and outputs the result
h or hash Outputs the hash for the position
see sq Evaluates SEE for the sq (0-63) Square
, or moves Show all available moves
< or captures Generates and outputs all captures
attacked Prints a Board with all atacked squares
+escape Generates and outputs moves that escape from check
order Orders available moves (according to some heuristic I can't remember) and outputs them
- Chess Engine Comunication Protocol
- Bit Twidiling
- Bitboards
- Minimax algorithm
- Alpha Beta Prunning
- Pthreads
- Iterative deepening
- Quiescence Search
- Hashing, Trasposition tables
- FEN parsing
Linux terminal mode
Executing on Arena for windows
yes

