Portable Game Notation (PGN) implementation in .NET
C# F# PowerShell
Latest commit ce04637 Dec 30, 2015 @iigorr Merge pull request #17 from Yokomojamo/master
Fix BoardSetup indexer bug
Permalink
Failed to load latest commit information.
examples
external add portable version of FParsec Dec 15, 2013
resources
src
test omitted piece letter implies a pawn move. closes #15 Jul 28, 2015
tools
.gitignore
LICENSE
README.md
pgn.NET.png

README.md

pgn.net

Portable Game Notation (PGN) implementation in .NET

About PGN

Read more about PGN on Wikipedia.

Here is an excellent spec document.

About pgn.NET

pgn.NET is a library which can be used to handle chess games and read/write them in the PGN format. It is implemented in F# and C# and uses FParsec.

To support as many .pgn file formats as possible the parsers try to be as tolerant as possible. It mostly conforms to this specs. However, other than the specification says we use UTF-8 as encoding, cause it's the 21st century.

How To Use

using ilf.pgn;
using ilf.pgn.Data;

// ...

//READ FILE
var reader = new PgnReader();
var gameDb = reader.ReadFromFile("Tarrasch.pgn");

Game game = gameDb.Games[0];

Console.WriteLine(game);

Installation

You can download the NuGet Package or just clone, build and reference the assemblies.

NuGet package via console:

PM> Install-Package pgn.NET

NuGet package in Visual Studio:

Choose your project and open the NuGet Package Manager: vs step1

Search for "pgn.net" in the online directory, then click "Install" on the pgn.net package: vs step2

The project should now reference the pgn.NET assembly

How To Contribute

  1. Fork
  2. Clone
  3. Code
  4. Create Pull Request

Changelog

Bugfix Release 1.1.1

Release 1.1

  • Bugfix: zero-length move text bug (IndexOutOfRange)
  • Introduce MoveTextEntryList, a MoveEntry list which provides simplifed access to moves.
  • Change type of Game.MoveText and RAVEntry.MoveText to MoveTextEntryList
  • Add missing API doc
  • Add support for frameworks: net40, net45, wp71

Release 1.0

This is the initial release of pgn.NET, a library to parse PGN chess databases which includes