Author: Tim Foden
Date: 11:44:03 05/25/03
Go up one level in this thread
On May 25, 2003 at 06:32:36, Uri Blass wrote:
>Task number 1:Translate text files of lines in book for white and black
>to an epd file of positions that are ordered in lexicographic order.
>
>The text files are books in frenzee format(for example this may be part of the
>book for white):
>
>e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f1e2f8e7e1g1b8c6c1e3a7a6f2f4d8c7d1e1c8d7a1d1e8g8e1g3b7b5a2a3a8c8f4f5c6d4d1d4g8h8d4d2d7c6
>e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f1e2f8e7e1g1b8c6c1e3a7a6f2f4d8c7d1e1c8d7a1d1e8g8e1g3c6d4e3d4d7c6e2d3f6h5g3h3e6e5c3d5c6d5e4d5e5d4h3h5g7g6h5f3e7f6
>e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f1e2f8e7e1g1b8c6c1e3a7a6f2f4d8c7d1e1c6d4e3d4b7b5e1g3e8g8a2a3c8b7g1h1f8d8e2d3f6e8a1e1e7f8e4e5g7g6
>e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f1e2f8e7e1g1b8c6c1e3a7a6f2f4d8c7d1e1c6d4e3d4b7b5e1g3e8g8e4e5d6e5f4e5e7c5d4c5c7c5g1h1f6d7a1e1b5b4c3e4c5e5e4f6g8h8g3h4d7f6e2f3e5b2f3a8c8d7
>e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f1e2f8e7e1g1b8c6c1e3a7a6f2f4d8c7d1e1e8g8a1d1c6d4e3d4b7b5e4e5d6e5d4e5c7b6g1h1c8b7
>e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f1e2f8e7e1g1b8c6c1e3a7a6f2f4d8c7e2f3c6a5d1e2a5c4e4e5d6e5d4b5a6b5c3b5c7b8e2c4e8g8f4e5b8e5e3d4
>e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f1e2f8e7e1g1b8c6g1h1e8g8f2f4d8c7e2f3a7a6g2g4f8d8g4g5f6d7h2h4c6d4d1d4b7b5a2a4c8b7a4b5a6b5a1a8b7a8f3g2c7c5d4c5d7c5e4e5b5b4e5d6a8g2h1g2e7d6c3b5d6e7
>e2e4c7c5g1f3e7e6d2d4c5d4f3d4g8f6b1c3d7d6f1e2f8e7e1g1b8c6g1h1e8g8f2f4d8c7d4b3a7a6a2a4c6a5b3a5c7a5d1e1a5c7e2f3c8d7c1e3g8h8e1f2d7c6
I have a program (pgn2fen) that will convert a pgn file into either FEN or EPD
format.
======================================================================
pgn2fen -- A utility to convert from PGN to a series of FEN/EPD lines
Copyright (c) 2002 by Tim Foden; All rights reserved.
Version 1.0.5. Compiled at 13:58:39 on 26 Apr 2002.
Usage: pgn2fen <pgn-file-name> [-f|-e|-p] [-w|-b] [-v] [-l]
Output format options:
-f Outputs positions as FEN (this is the default)
-e Outputs positions as EPD
-p<P> Outputs only a board containing frequency counts
<P> is a single black {pnbrqk} or white {PNBRQK} piece
Output filter options:
-w Only output positions with white to move
-b Only output positions with black to move
-min <ply> Minimum ply to include (1 based)
-max <ply> Maximum ply to include (1 based)
-res <value> Include only games matching result field
Output tree options:
-v Include variations in output (default is main line only)
-l Include leaf nodes (no pm or bm in EPD)
Miscellaneous options
-s Only parse a single game from the pgn file
-sc <dir> <exe> <scoreCmd> <scoreFmt>
Use engine to get evaluation scores [EPD only]
=====================================================================
With a little bit of editing (possibly automatic) it could cope with your input
above.
For input it would need something like:
[]
e2e4 c7c5 g1f3 e7e6 d2d4 c5d4 f3d4 g8f6 b1c3 d7d6 f1e2 f8e7 e1g1 b8c6 c1e3 a7a6
f2f4 d8c7 d1e1 c8d7 a1d1 e8g8 e1g3 b7b5 a2a3 a8c8 f4f5 c6d4 d1d4 g8h8 d4d2 d7c6
[]
e2e4 c7c5 g1f3 e7e6 d2d4 c5d4 f3d4 g8f6 b1c3 d7d6 f1e2 f8e7 e1g1 b8c6 c1e3 a7a6
f2f4 d8c7 d1e1 c8d7 a1d1 e8g8 e1g3 c6d4 e3d4 d7c6 e2d3 f6h5 g3h3 e6e5 c3d5 c6d5
e4d5 e5d4 h3h5 g7g6 h5f3 e7f6
And can produce output like this:
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq - 0 1
rnbqkbnr/pp1ppppp/8/2p5/4P3/8/PPPP1PPP/RNBQKBNR w KQkq - 0 2
rnbqkbnr/pp1ppppp/8/2p5/4P3/5N2/PPPP1PPP/RNBQKB1R b KQkq - 1 2
rnbqkbnr/pp1p1ppp/4p3/2p5/4P3/5N2/PPPP1PPP/RNBQKB1R w KQkq - 0 3
rnbqkbnr/pp1p1ppp/4p3/2p5/3PP3/5N2/PPP2PPP/RNBQKB1R b KQkq - 0 3
rnbqkbnr/pp1p1ppp/4p3/8/3pP3/5N2/PPP2PPP/RNBQKB1R w KQkq - 0 4
...
or like this:
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - fmvn 1; hmvc 0; pm e4;
rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq - fmvn 1; hmvc 0; pm c5;
rnbqkbnr/pp1ppppp/8/2p5/4P3/8/PPPP1PPP/RNBQKBNR w KQkq - fmvn 2; hmvc 0; pm Nf3;
rnbqkbnr/pp1ppppp/8/2p5/4P3/5N2/PPPP1PPP/RNBQKB1R b KQkq - fmvn 2; hmvc 1; pm
e6;
rnbqkbnr/pp1p1ppp/4p3/2p5/4P3/5N2/PPPP1PPP/RNBQKB1R w KQkq - fmvn 3; hmvc 0; pm
d4;
rnbqkbnr/pp1p1ppp/4p3/2p5/3PP3/5N2/PPP2PPP/RNBQKB1R b KQkq - fmvn 3; hmvc 0; pm
cxd4;
rnbqkbnr/pp1p1ppp/4p3/8/3pP3/5N2/PPP2PPP/RNBQKB1R w KQkq - fmvn 4; hmvc 0; pm
Nxd4;
...
which again should be fairly simple to massage into the form you want using unix
command line tools (e.g. awk or sed).
Cheers, Tim.
>
>Task number 2:check if a position is in the book and return a move if it is in
>the book:the check should also consider symmetric and in case that
>
>rnbqkbnr/pppp1ppp/8/4p3/4P3/8/PPPP1PPP/RNBQKBNR w KQkq -
>is in book
>
>Then I want also the following position to be in book:
>rnbqkbnr/pppp1ppp/8/4p3/4P3/8/PPPP1PPP/RNBQKBNR b KQkq -
>
>I want the enpassent flag to be off unless enpassent capture is legal
>
>I hate programs for giving me after e4 e5 the following position:
>rnbqkbnr/pppp1ppp/8/4p3/4P3/8/PPPP1PPP/RNBQKBNR w KQkq e6 0 2
>
>I think this stupid rule of FEN is only to confuse computers because there is no
>difference between this position and the position without the e6 flag.
>
>Less important is to detect another kind of symmetry to detect that these 2
>positions are the same(I could not find in a short time a practical example of
>this kind of symmetry that can happen in normal games).
>
>rnbq1bnr/ppp2ppp/4k3/3pp3/3PP3/4K3/PPP2PPP/RNBQ1BNR w - -
>rnb1qbnr/ppp2ppp/3k4/3pp3/3PP3/3K4/PPP2PPP/RNB1QBNR w - -
>
>Uri
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.