Beispiel #1
0
Datei: pozo.cs Projekt: vyz/myViz
 public pozo()
 {
     pBoard = new Pieco[64];
     qava = -1;
     pzu = null;
     controllomova = null;
 }
Beispiel #2
0
Datei: pozo.cs Projekt: vyz/myViz
 public pozo()
 {
     pBoard        = new Pieco[64];
     qava          = -1;
     pzu           = null;
     controllomova = null;
 }
Beispiel #3
0
Datei: pozo.cs Projekt: vyz/myViz
        /// <summary>
        /// Модификация от 29 июля 2015 года
        /// Заложен 26 июля 2015 года
        /// </summary>
        /// <returns></returns>
        public Mova GetFactMoveFilled()
        {
            Mova reto = null;

            if (null != controllomova)
            {
                controllomova.FormShortoString(pzu);
                reto = controllomova;
            }
            return(reto);
        }
Beispiel #4
0
Datei: pozo.cs Projekt: vyz/myViz
        /// <summary>
        /// Модификация от 24 июля 2015 года
        /// Заложен 24 июля 2015 года
        /// </summary>
        /// <param name="aa"></param>
        /// <returns></returns>
        public bool ContraMov(string aa)
        {
            //AvailableFill();
            if (null == pzu)
            {
                pzu = new PozoUtils(pBoard, whitomv, rokko, enpasso, enfield);
            }
            controllomova = pzu.MovaProverka(aa);
            bool reto = false;

            if (null != controllomova)
            {
                reto = true;
            }
            return(reto);
        }
Beispiel #5
0
Datei: pozo.cs Projekt: vyz/myViz
 /// <summary>
 /// Модификация от 29 июля 2015 года
 /// Заложен 29 июля 2015 года
 /// </summary>
 /// <param name="ppb"></param>
 /// <param name="coloro"></param>
 /// <param name="prok"></param>
 /// <param name="penp"></param>
 /// <param name="penf"></param>
 /// <param name="ppmv"></param>
 /// <param name="pnum"></param>
 public pozo(Pieco[] ppb, bool coloro, Caslo prok, bool penp, int penf, int ppmv, int pnum)
 {
     pBoard = new Pieco[64];
     for (int i = 0; i < 64; i++) {
         pBoard[i] = ppb[i];
         }
     whitomv = coloro;
     rokko = prok;
     enpasso = penp;
     enfield = penf;
     pustomv = ppmv;
     numbero = pnum;
     qava = -1;
     pzu = null;
     controllomova = null;
 }
Beispiel #6
0
Datei: pozo.cs Projekt: vyz/myViz
 /// <summary>
 /// Модификация от 29 июля 2015 года
 /// Заложен 29 июля 2015 года
 /// </summary>
 /// <param name="ppb"></param>
 /// <param name="coloro"></param>
 /// <param name="prok"></param>
 /// <param name="penp"></param>
 /// <param name="penf"></param>
 /// <param name="ppmv"></param>
 /// <param name="pnum"></param>
 public pozo(Pieco[] ppb, bool coloro, Caslo prok, bool penp, int penf, int ppmv, int pnum)
 {
     pBoard = new Pieco[64];
     for (int i = 0; i < 64; i++)
     {
         pBoard[i] = ppb[i];
     }
     whitomv       = coloro;
     rokko         = prok;
     enpasso       = penp;
     enfield       = penf;
     pustomv       = ppmv;
     numbero       = pnum;
     qava          = -1;
     pzu           = null;
     controllomova = null;
 }
Beispiel #7
0
 /// <summary>
 /// Модификация от 21 июля 2015 года
 /// Заложен 2015 год
 /// </summary>
 /// <param name="pif"></param>
 /// <param name="pit"></param>
 /// <param name="addo"></param>
 /// <returns></returns>
 private List<Mova> AddPawnPromotion(int pif, int pit, MovoTypo addo)
 {
     List<Mova> reto = new List<Mova>();
     MovoTypo movtyp = MovoTypo.PawnPromotionToQueen | addo;
     Pieco fipa = whitomv ? Pieco.Queen : (Pieco.Queen | Pieco.Black);
     if (IsAvailableMove(pif, pit, fipa, movtyp))
     {
         Mova aa = new Mova(whitomv, pBoard[pif], pif, pit, movtyp);
         reto.Add(aa);
     }
     movtyp = MovoTypo.PawnPromotionToRook | addo;
     fipa = whitomv ? Pieco.Rook : (Pieco.Rook | Pieco.Black);
     if (IsAvailableMove(pif, pit, fipa, movtyp))
     {
         Mova aa = new Mova(whitomv, pBoard[pif], pif, pit, movtyp);
         reto.Add(aa);
     }
     movtyp = MovoTypo.PawnPromotionToBishop | addo;
     fipa = whitomv ? Pieco.Bishop : (Pieco.Bishop | Pieco.Black);
     if (IsAvailableMove(pif, pit, fipa, movtyp))
     {
         Mova aa = new Mova(whitomv, pBoard[pif], pif, pit, movtyp);
         reto.Add(aa);
     }
     movtyp = MovoTypo.PawnPromotionToKnight | addo;
     fipa = whitomv ? Pieco.Knight : (Pieco.Knight | Pieco.Black);
     if (IsAvailableMove(pif, pit, fipa, movtyp))
     {
         Mova aa = new Mova(whitomv, pBoard[pif], pif, pit, movtyp);
         reto.Add(aa);
     }
     return reto;
 }
Beispiel #8
0
 private Mova AddMoveIsNotCheck(int pif, int pit, MovoTypo pmt)
 {
     Mova reto = null;
     if (IsAvailableMove(pif, pit, pBoard[pif], pmt))
     {
         reto = new Mova(whitomv, pBoard[pif], pif, pit, pmt);
     }
     return reto;
 }
Beispiel #9
0
 /// <summary>
 /// Модификация от 3 августа 2015 года
 /// Заложен 29 июля 2015 года
 /// </summary>
 /// <param name="old"></param>
 /// <param name="pmv"></param>
 /// <returns></returns>
 public Caslo RokkoChangeAfterMove(Caslo old, Mova pmv)
 {
     Caslo reto = old;
     if (pmv.MvType == MovoTypo.Castle || (pmv.Figura & Pieco.PieceMask) == Pieco.King) {
         if (whitomv) { //Это уже инверсия. Сейчас ход противника, а в pmv ещё предыдущий ход
             if ((reto & Caslo.KingBlack) > 0) { reto ^= Caslo.KingBlack; }
             if ((reto & Caslo.QueenBlack ) > 0) { reto ^= Caslo.QueenBlack; }
         } else {
             if ((reto & Caslo.KingWhite) > 0) { reto ^= Caslo.KingWhite; }
             if ((reto & Caslo.QueenWhite) > 0) { reto ^= Caslo.QueenWhite; }
             }
     } else if ((pmv.Figura & Pieco.PieceMask) == Pieco.Rook) {
         if (whitomv) {
             if (pmv.FromField == 56) {
                 if ((reto & Caslo.KingBlack) > 0) { reto ^= Caslo.KingBlack; }
                 }
             if (pmv.FromField == 63) {
                 if ((reto & Caslo.QueenBlack) > 0) { reto ^= Caslo.QueenBlack; }
                 }
         } else {
             if (pmv.FromField == 0) {
                 if ((reto & Caslo.KingWhite) > 0) { reto ^= Caslo.KingWhite; }
                 }
             if (pmv.FromField == 7) {
                 if ((reto & Caslo.QueenWhite) > 0) { reto ^= Caslo.QueenWhite; }
                 }
             }
         }
     return reto;
 }
Beispiel #10
0
        /// <summary>
        /// Модификация от 30 июля 2015 года
        /// Заложен 29 июля 2015 года
        /// </summary>
        /// <param name="pmv"></param>
        /// <returns></returns>
        public int CanEnpasso(Mova pmv)
        {
            int reto = -1;
            if (pmv.Figura == (Pieco.Pawn | Pieco.White) && ((pmv.ToField - pmv.FromField) == 16)) {
                if ((pmv.ToField % 8 > 0 && pBoard[pmv.ToField - 1] == (Pieco.Pawn | Pieco.Black)) ||
                    (pmv.ToField % 8 < 7 && pBoard[pmv.ToField + 1] == (Pieco.Pawn | Pieco.Black))) {
                    reto = pmv.ToField - 8;
                    }
            } else if (pmv.Figura == (Pieco.Pawn | Pieco.Black) && (pmv.FromField - pmv.ToField == 16)) {
                if ((pmv.ToField % 8 > 0 && pBoard[pmv.ToField - 1] == (Pieco.Pawn | Pieco.White)) ||
                    (pmv.ToField % 8 < 7 && pBoard[pmv.ToField + 1] == (Pieco.Pawn | Pieco.White))) {
                    reto = pmv.ToField + 8;
                    }

                }
            return reto;
        }
Beispiel #11
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="move">     Move position</param>
 public MoveSelectedEventArgs(Mova move)
 {
     Move = move;
 }
Beispiel #12
0
Datei: pozo.cs Projekt: vyz/myViz
 /// <summary>
 /// Модификация от 24 июля 2015 года
 /// Заложен 24 июля 2015 года
 /// </summary>
 /// <param name="aa"></param>
 /// <returns></returns>
 public bool ContraMov(string aa)
 {
     //AvailableFill();
     if (null == pzu) {
         pzu = new PozoUtils(pBoard, whitomv, rokko, enpasso, enfield);
         }
     controllomova = pzu.MovaProverka(aa);
     bool reto = false;
     if( null != controllomova ) {
         reto = true;
         }
     return reto;
 }
Beispiel #13
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="move">     Move position</param>
 public MoveSelectedEventArgs(Mova move)
 {
     Move = move;
 }