Atölye › Satranç › 41/48. adım
Şimdi siyahı bilgisayar oynayacak. Bir bilgisayarın iyi hamle seçebilmesi için önce bir pozisyonun ne kadar iyi olduğunu bir sayıyla söyleyebilmesi gerek. Buna değerlendirme denir.
Basit ama işe yarayan bir tarif:
```js
const VALUES = { P: 100, N: 320, B: 330, R: 500, Q: 900, K: 0 }
// Material, plus a little for pieces near the middle, from white's side: positive is good for white.
function evaluate() {
let score = 0
for (let r = 0; r < 8; r++) {
for (let c = 0; c < 8; c++) {
const piece = board[r][c]
if (!piece) continue
const center = piece[1] === 'K' ? 0 : 6 - Math.abs(3.5 - r) - Math.abs(3.5 - c)
score += (VALUES[piece[1]] + center * 4) * (piece[0] === 'w' ? 1 : -1)
}
}
return score
}
```const VALUES = { ... } → taş türlerinin değerleri.if (!piece) continue → boş kareyi atla.Math.abs(x) → mutlak değer: sayının sıfıra uzaklığı, hep artı. Math.abs(-2) → 2.Math.abs(3.5 - r) + Math.abs(3.5 - c) → karenin tahtanın tam ortasına (3.5, 3.5) uzaklığı: ortadaki dört kare
için 1, köşeler için 7.6 - ... → yakınlık: ortada 5, köşede -1. Şah için 0: şahı ortaya sürmek iyi değil.(VALUES[piece[1]] + center * 4) → taşın değeri + yakınlık × 4.* (piece[0] === 'w' ? 1 : -1) → beyazsa artı, siyahsa eksi olarak toplama ekle.const DIAGONAL = ... satırının altına VALUES satırını yaz.const same = ... satırının üstüne yorumu ve evaluate fonksiyonunu yaz; altında bir boş satır kalsın.Beceriler: Fonksiyonlar, Oyun durumları
← Son hamleyi göster İleriyi düşünmek →