示例#1
0
        //
        // Herstel zet op het bord.
        //
        public void Herstel(Zet zet)
        {
            //Check(zet, true);
            if (zet.naar == null)             // stuk naar doos
            {
                veld[zet.van.x, zet.van.y] = (int)StukType.geen;
                return;
            }
            veld[zet.van.x, zet.van.y]   = setStuk(zet.van.stuk);// ivm promotie veld[zet.naar.x, zet.naar.y];
            veld[zet.naar.x, zet.naar.y] = setStuk(zet.naar.stuk);

            if (zet.promotie)
            {
                Stuk dame = new Stuk(zet.van.stuk.kleur, StukType.Dame);
                evaluatie -= Stuk.Waarde(dame);
                evaluatie += zet.van.stuk.waarde;
            }
            if (zet.castling)             //V105
            {
                bool longCastling = zet.naar.x < 4;
                if (longCastling)
                {
                    veld[0, zet.van.y] = veld[3, zet.van.y];
                    veld[3, zet.van.y] = 0;
                }
                else
                {
                    veld[7, zet.van.y] = veld[5, zet.van.y];
                    veld[5, zet.van.y] = 0;
                }
                evaluatie -= (zet.van.stuk.kleur) ? 1 : -1;
            }
            evaluatie += zet.naar.stuk.waarde;
            //Check(zet,false);
        }
示例#2
0
        private int EvalueerAbsoluut()
        {
            int evaluatie = 0;

            for (int x = 0; x < 8; x++)
            {
                for (int y = 0; y < 8; y++)
                {
                    evaluatie += Stuk.Waarde(getStuk(x, y));
                }
            }
            return(evaluatie);
        }
示例#3
0
 public int VoerUit(Zet zet)
 {
     //Check(zet,false);
     //
     // Check for Mat.
     //
     zet.mat = zet.naar.stuk.type == StukType.Koning;
     //
     // Voer zet uit op het bord.
     //
     if (zet.van == null)             //Vanuit doos
     {
         veld[zet.naar.x, zet.naar.y] = setStuk(zet.naar.stuk);
     }
     else
     {
         veld[zet.naar.x, zet.naar.y] = veld[zet.van.x, zet.van.y];
         veld[zet.van.x, zet.van.y]   = (int)StukType.geen;
     }
     if (zet.promotie)
     {
         Stuk dame = new Stuk(zet.van.stuk.kleur, StukType.Dame);
         veld[zet.naar.x, zet.naar.y] = setStuk(dame);
         evaluatie += Stuk.Waarde(dame);
         evaluatie -= zet.van.stuk.waarde;
     }
     if (zet.castling)             //V105
     {
         bool longCastling = zet.naar.x < 4;
         if (longCastling)
         {
             veld[3, zet.van.y] = veld[0, zet.van.y];
             veld[0, zet.van.y] = 0;
         }
         else
         {
             veld[5, zet.van.y] = veld[7, zet.van.y];
             veld[7, zet.van.y] = 0;
         }
         evaluatie += (zet.van.stuk.kleur) ? 1 : -1;
     }
     //
     // Bepaal evaluatie.
     //
     evaluatie -= zet.naar.stuk.waarde;
     return(evaluatie); // absolute bordwaarde;
 }