// // 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); }
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); }
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; }