2013-03-13 4 views
8

Ich suche ein JavaScript-Bibliothek PGN-Dateien mit Bewegung Notationen einschließlich Stück und Ziel wie zu konvertieren:Javascript Schachnotation Konvertierungsfunktion

nur mit den quadratischen Koordinaten, wie
... 3. cxd5 Qxd5 ... 

In Notation:

... 3. c4-d5 h5-d5 ... 

Ohne eine Bibliothek wäre es eine ziemlich große Menge an Arbeit, um diesen Stein fest zu machen, da er durch jeden Schritt gehen müsste, und legale Bewegungen validieren, um zu bestimmen, welches Stück das Zielquadrat erreichen kann.

Gibt es etwas in Javascript, um mir zu helfen, oder in einer anderen Sprache, die ich leicht portieren könnte?

+2

Auf der anderen Seite, das gesamte Spiel scheint :-) –

+0

wie ein Spaß-Projekt zu simulieren google Suche nach 'Javascript pgn Bibliothek "diese Frage ist 8. aufgeführt. Gibt es einen Begriff dafür? Vielleicht etwas aus der Quantenmechanik, über die Beobachtung der Ergebnisse. –

+2

Erste Treffer auf Google: https://github.com/bmarini/jchess, zweite: https://github.com/vetzer/jschess, dritte: http://chesstempo.com/pgn-viewer.html – Christoph

Antwort

6

Vorwort: Ich bin nicht wirklich ein Schachspieler noch verstehe ich PGN völlig. Ich denke jedoch, dass dies richtig ist. Lass es mich wissen, wenn ich überhaupt weg bin.

Da Sie gesagt haben, dass Sie diese Server-Seite tun wollen, habe ich nach node.js Schach-Paketen gesucht. Es gab eine Reihe gutaussehender Kandidaten von nodejs modules tagged chess. Ich endete mit jhlywa/chess.js.

app.js

var cjs = require('./chess.js'), 
    chess = new cjs.Chess(), 
    pgn = ['[Event "Casual Game"]', 
     '[Site "Berlin GER"]', 
     '[Date "1852.??.??"]', 
     '[EventDate "?"]', 
     '[Round "?"]', 
     '[Result "1-0"]', 
     '[White "Adolf Anderssen"]', 
     '[Black "Jean Dufresne"]', 
     '[ECO "C52"]', 
     '[WhiteElo "?"]', 
     '[BlackElo "?"]', 
     '[PlyCount "47"]', 
     '', 
     '1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.b4 Bxb4 5.c3 Ba5 6.d4 exd4 7.O-O', 
     'd3 8.Qb3 Qf6 9.e5 Qg6 10.Re1 Nge7 11.Ba3 b5 12.Qxb5 Rb8 13.Qa4', 
     'Bb6 14.Nbd2 Bb7 15.Ne4 Qf5 16.Bxd3 Qh5 17.Nf6+ gxf6 18.exf6', 
     'Rg8 19.Rad1 Qxf3 20.Rxe7+ Nxe7 21.Qxd7+ Kxd7 22.Bf5+ Ke8', 
     '23.Bd7+ Kf8 24.Bxe7# 1-0'], 
    i = 1, 
    moveHistory; 

chess.load_pgn(pgn.join('\n')); 
moveHistory = chess.history({ verbose: true }); 

while (moveHistory.length > 0) { 
    var p1Move = moveHistory.shift(), 
    p2Move = moveHistory.shift(), 
    p1c = p1Move.from + '-' + p1Move.to, 
    p2c = (p2Move == undefined) ? '' : p2Move.from + '-' + p2Move.to; 
    console.log(i + '. ' + p1c + ' ' + p2c); 
    i++; 
} 

Ausgabe von console.log:

1. e2-e4 e7-e5 
2. g1-f3 b8-c6 
3. f1-c4 f8-c5 
4. b2-b4 c5-b4 
5. c2-c3 b4-a5 
6. d2-d4 e5-d4 
7. e1-g1 d4-d3 
8. d1-b3 d8-f6 
9. e4-e5 f6-g6 
10. f1-e1 g8-e7 
11. c1-a3 b7-b5 
12. b3-b5 a8-b8 
13. b5-a4 a5-b6 
14. b1-d2 c8-b7 
15. d2-e4 g6-f5 
16. c4-d3 f5-h5 
17. e4-f6 g7-f6 
18. e5-f6 h8-g8 
19. a1-d1 h5-f3 
20. e1-e7 c6-e7 
21. a4-d7 e8-d7 
22. d3-f5 d7-e8 
23. f5-d7 e8-f8 
24. a3-e7 
+0

das ist brilliant vielen Dank –

Verwandte Themen