chess_game 0.2.0

Simple Chess game
Documentation
use chess::{Board, Piece, BoardStatus};

use crate::piece::Value;

pub trait Evaluation {
    fn evaluate(&self) -> f32;
}

impl Evaluation for Board {
    fn evaluate(&self) -> f32 {
        let mut score = 0.0;

        if self.status() == BoardStatus::Checkmate { return 3.55E10 }
        
        for piece_type in [Piece::Pawn, Piece::Knight, Piece::Bishop, Piece::Rook, Piece::Queen, Piece::King] {
            score += self.pieces(piece_type).count() as f32 * piece_type.value();
        }
        score -= self.checkers().count() as f32 * 2.0;

        score
    }
}