Skip to content

Commit 3b60b89

Browse files
committed
Update README.md
1 parent 49e214c commit 3b60b89

File tree

1 file changed

+32
-25
lines changed

1 file changed

+32
-25
lines changed

README.md

+32-25
Original file line numberDiff line numberDiff line change
@@ -13,28 +13,29 @@
1313

1414
## Chess lib includes:
1515

16-
- Chess board with 2-dimentional array of `Pieces`
17-
- Generation, Validation and Execution of `Moves` on Chess board
18-
- Logic to `Convert`:
19-
- `Move` into `SAN` and back into Move object
20-
- `Chess Board`into `FEN` and back into ChessBoard object
21-
- `Chess Game` into `PGN` and back into ChessBoard object
22-
- Event Handlers:
23-
- `OnInvalidMoveKingChecked` - Raises when trying to execute move that places own king in check
24-
- `OnWhiteKingCheckedChanged`/`OnBlackKingCheckedChanged` with state (checked or not) and its position
25-
- `OnPromotePawn` with PromotionEventArgs.PromotionResult (default: PromotionToQueen)
26-
- `OnEndGame` with according end game info (`Win`/`Loss`/`Draw`)
27-
- `OnCaptured` with captured piece and all recently captured pieces (White/Black)
28-
- `End Game` Declaration: `Draw` or `Resign` of one of sides
29-
- `Navigation` between executed moves:
30-
- `First`/`Last`
31-
- `Next`/`Previous`
32-
- Also: `board.MoveIndex` property to navigate direct to specific move
33-
- `Cancelation` of last executed move
16+
- **ChessBoard** with 2-dimentional array of **Pieces**
17+
- Generation, Validation and Execution of **Moves** on chess board
18+
- **Parse**:
19+
- **Move object** into [SAN](https://www.chessprogramming.org/Algebraic_Chess_Notation#Standard_Algebraic_Notation_.28SAN.29) and back into Move object
20+
- **Load** and play further:
21+
- **Chess _Board_** from [FEN](https://www.chessprogramming.org/Forsyth-Edwards_Notation) and back to *FEN-string*
22+
- **Chess _Game_** from [PGN](https://en.wikipedia.org/wiki/Portable_Game_Notation) and back to *PGN-string*
23+
- **Event handlers** are raised:
24+
- *OnInvalidMoveKingChecked* - when trying to execute move that places own king in **check**
25+
- *On(White/Black)KingCheckedChanged* - with **state** (checked or not) and its **position**
26+
- *OnPromotePawn* - with *PromotionEventArgs.PromotionResult* (default: **PromotionToQueen**)
27+
- *OnEndGame* - with according end game info (**Won Side**/**Draw**)
28+
- *OnCaptured* - with captured piece and all recently captured pieces (**White**/**Black**)
29+
- **End Game** Declaration: **Draw** or **Resign** of one of sides
30+
- **Navigation** between executed moves:
31+
- **First**/**Last**
32+
- **Next**/**Previous**
33+
- Also: **board.MoveIndex** property to navigate directly to specific move
34+
- **Cancelation** of last executed move
3435

3536
# Usage!
3637

37-
Example simple console chess game:
38+
Example simple **console** chess game:
3839

3940
```csharp
4041
using Chess;
@@ -67,7 +68,7 @@ Console.WriteLine(board.ToPgn());
6768
// 1. e4 f5 2. f4 g5 3. Qh5# 1-0
6869
```
6970

70-
Example random chess game:
71+
Example **random** chess game:
7172

7273
```csharp
7374
while (!board.IsEndGame)
@@ -131,13 +132,13 @@ board.Move("e8=K"); // => Bad
131132
board.Move("0-0"); // => Bad
132133
```
133134

134-
Move pieces using Move object and corresponding positions:
135+
Move pieces using **Move object** and corresponding positions:
135136

136137
```csharp
137138
board.Move(new Move("b1", "c3"));
138139
```
139140

140-
Ambiguity:
141+
**Ambiguity**:
141142

142143
```csharp
143144
if(ChessBoard.TryLoadFromPgn("1. e4 e5 2. Ne2 f6", out var board))
@@ -188,7 +189,7 @@ board.LoadFen("rnb1kbnr/pppppppp/8/8/8/8/5q2/7K w kq - 0 1");
188189
board.EndGame... // => { EndgameType = Stalemate, WonSide = null }
189190
```
190191

191-
Load full chess game from PGN:
192+
Load full chess game from **PGN**:
192193

193194
```csharp
194195
board = ChessBoard.LoadFromPgn(
@@ -211,7 +212,7 @@ board.ToAscii();
211212
// a b c d e f g h
212213
```
213214

214-
Alternative moves and comments are (temporary) skipped<br/>
215+
Alternative moves and comments are (temporarily) skipped<br/>
215216
In further versions:<br/>
216217
Navigate between alternative branches, also load branches from PGN<br/>
217218
Adding comments to each move<br/>
@@ -230,9 +231,15 @@ board.Resign(PieceColor.Black);
230231
board.EndGame... // => { EndgameType = Resigned, WonSide = White }
231232
```
232233

234+
## [Unit Tests](/ChessUnitTests/UnitTests.cs)
235+
Here you can see all the tests that have been used to test and improve chess library
236+
237+
## [Benchmarks](/ChessBenchmarks/Benchmarks.cs)
238+
Here you can see the evolution of performance of chess library
239+
233240
## Found a bug?
234241

235242
Drop to <a href="https://github.com/Geras1mleo/Chess/issues">Issues</a><br/>
236-
Or to: sviatoslav.harasymchuk@gmail.com<br/>
243+
Or: sviatoslav.harasymchuk@gmail.com<br/>
237244
<br/>
238245
Thanks in advance!

0 commit comments

Comments
 (0)