public void SDK_TransIX(int[] TrPara, bool TransB = false, bool DspSolB = false)
        {
            int rx = TrPara[8], cx = 1 - rx;

            for (int j = 0; j < 2; j++)
            {
                for (int k = 0; k < 9; k++)
                {
                    int n = RCX[j, k / 3 + 9];
                    RCX[j + 2, k] = RCX[j, n + k % 3];
                }
            }

            List <UCell> UCL = null;

            if (TransB)
            {
                UCL = new List <UCell>();
            }
            int [] AnsN2 = new int[81];
            int    r, c, w;

            for (int rc = 0; rc < 81; rc++)
            {
                r = RCX[rx + 2, rc / 9]; c = RCX[cx + 2, rc % 9];
                if (rx == 1)
                {
                    w = r; r = c; c = w;
                }
                int rc2 = r * 9 + c;
                AnsN2[rc] = UPbas.AnsNum[rc2];
                if (TransB)
                {
                    UCell P = UPbas.BDL[rc2];
                    UCL.Add(new UCell(rc, P.No, P.FreeB));
                }
            }

            if (TransB)
            {
                UPuzzle UP = pGP.Copy(0, 0);
                UP.BDL = UCL; UP.AnsNum = AnsN2;
                pGNP.SDKProbLst[ID] = UP;
                if (!DspSolB)
                {
                    UP.BDL.ForEach(P => { P.No = Max(P.No, 0); });
                }
                pGNP.CurrentPrbNo = ID;
            }

            SetIDCode(TrPara, AnsN2);
        }