Skip to content

PGN parser #494

@nescitus

Description

@nescitus

I have tried to add a very basic PGN parser. Internal board is updated correctly, but it crashes on trying to execute a move in BoardUI. What am I doing wrong?

public void SetPgn(string pgn)
{
board.LoadPosition("rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1");
boardUI.UpdatePosition(board);
boardUI.ResetSquareColours();
SetBoardPerspective();

        pgn = ExtractMovesFromPGN(pgn);
        pgn.Trim();
        Console.WriteLine(pgn);
        string[] moveList = pgn.Split(' ');

        foreach (string moveString in moveList)
        {
            MoveGenerator moveGenerator = new();
            var moves = moveGenerator.GenerateMoves(board);
            foreach (var move in moves)
            {
                if (moveString.Equals(MoveUtility.GetMoveNameSAN(move, board)))
                {
                    Console.WriteLine(moveString);
                    PlayMove(move); // CRASH
                    board.MakeMove(move); 
                    break;
                }
            }
        }
    }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions