A simpler alternative, why not just mark the source square for the piece of the side not on move so that the last move can be determined? That handles every case I would think unless there are some games with odd/snakey pawn double/triple moves that might be able to go thru a path where an EP is possible or not possible, although I hardly know much about non-real-chess games myself.
Okay, now I see your dilema. Capturing left or right.
As a chess player, right away, you will see that the Pawn is advanced and white's turn. You'll want to know if there is EP available for white.
Easy, have 2 special characters.
{ or < - left brace for left capture
} or > - right brace for right capture
It points to the direction it captures also, logical.
rnbqkbnr/p1p1pppp/1p6/3pP{3/8/8/PPPP1PPP/RNBQKBNR w KQkq 0 3
Okay you can start implementing
