Comments (4)
Hi, those are typically represented in PGN as "numeric annotation glyphs", eg $1 means "strong move" and a PGN rendering program will typically output "!". There are equivalent NAGs for +/= etc. Im ok with supporting but my understanding is that is not valid PGN.
from pgn-parser.
Thanks for the details!
It turns out that there is another reason that chess.com PGNs won't parse. When computer analysis is included in the PGN text, Chess.com will put comments at the beginning of variations. Note the second line here:
1. f3 e6 2. g4?? ∓ {BLUNDER (♚ Mate in 1)}
({(-0.44) The best move was} 2. c3 d5) 2... Qh4# 0-1
Maybe each variation should also have a list of comments? Then any comments discovered at the beginning of a varation could be put in that variation's comments
list.
To address both problems, my thought is that the above pgn text could parse to something this:
{
comments_above_header: null,
headers: null,
comments: null,
result: "0-1",
moves: [
{
move_number: 1,
move: "f3",
comments:[]
},
{
move: "e6",
comments:[]
},
{
move_number: 2,
move: "g4??",
// PROPOSED SUPPORT FOR NUMERIC ANNOTATION GLYPHS
nag: {symbol: '∓', number: 17},
comments: [{text: "BLUNDER (♚ Mate in 1)"}],
ravs: [
{
// PROPOSED SUPPORT FOR COMMENTS FOUND AT THE BEGINNING OF VARIATIONS
comments: [{text: "(-0.44) The best move was"}],
result: null,
moves: [
{
move_number: 2,
move: "c3",
comments: []
},
{
move: "d5",
comments: []
}
]
}
],
},
{
move_number: 2,
move: "Qh4#",
comments:[]
}
]
}
I am using this table of NAG values as reference.
Does this approach look right?
from pgn-parser.
My mistake. I should have looked at the code for this project more closely before making the suggestion above. I see that $[0-9] NAGs are already supported.
In light of that, my revised idea for parsing the move 2. g4?? ∓ ∞ $4
would be:
{
move_number: 2,
move: "g4??",
nags: [
"∓",
"∞",
"$4",
]
}
from pgn-parser.
I will take a look and see what i can do. Please note ill be out on holiday so i wont get to this for about a week.
from pgn-parser.
Related Issues (11)
- Does not parse PGN with moves that have both rank and file HOT 4
- Accented characters are ignored in comments HOT 3
- Pawn promotion handling HOT 1
- Doesn't handle pgn's with null moves HOT 1
- Current build is shown as failing - the build is also failing on my local setup?
- Add typescript declaration to DefinitelyTyped repo
- there are correct pgns that it is not parsed correctly (with errors) HOT 2
- Possible to go back to pgn file format from JS structure? HOT 1
- Handle single line comments HOT 3
- %cal and %cls not parsed HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pgn-parser.