private ChessEngine.Engine.Engine ReturnNewState(ChessEngine.Engine.Engine engine, byte piece, byte move) { ChessEngine.Engine.Engine newState = new Engine.Engine(); newState.ChessBoard = new Board(engine.ChessBoard); byte[] sourcePos = engine.CalculateColumnAndRow((byte)(piece)); byte[] destinationPos = engine.CalculateColumnAndRow(move); if (!newState.MovePiece(sourcePos[0], sourcePos[1], destinationPos[0], destinationPos[1])) { return(null); } return(newState); }