-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathevaluation.py
More file actions
28 lines (25 loc) · 937 Bytes
/
Copy pathevaluation.py
File metadata and controls
28 lines (25 loc) · 937 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# Description: This file contains the Evaluator class which is responsible for evaluating the board state.
from pieces import *
from board import Board
class Evaluator:
@staticmethod
def evaluate(piece:'Piece') -> int:
if isinstance(piece, Pawn):
return 1
elif isinstance(piece, Knight):
return 3
elif isinstance(piece, Bishop):
return 3
elif isinstance(piece, Rook):
return 5
elif isinstance(piece, Queen):
return 9
elif isinstance(piece, King):
return 1000
else:
return 0
@staticmethod
def material_value(board:'Board') -> int:
white_value = sum([Evaluator.evaluate(piece) for piece in board.board if piece.color == 1])
black_value = sum([Evaluator.evaluate(piece) for piece in board.board if piece.color == 0])
return white_value - black_value