Well before you do anything, might wana fix a lil problem w/ ur game.
Your pon can move 2 spaces even when its not its first move : /
I recomend saying if the pon is not in the start y axis, then it can only move 1 space, else it can move 2. Because pons cant move backwards, this will assure it works. But i havent looked at code first so i cant solve your problem yet. I will check.
also i moved the king allot and dident get any access violation. But i will see