Caractéristiques techniques
La plupart des algorithmes utilisé dans ce projet sont expliqué sur le Chess programming wiki
- Moteur compatible UCI et CECP
- Bitboards + magic bitboards
- Recherche alpha-beta (negamax)
- Iterative deepening
- Aspiration window
- Quiescence search
- Livre d'ouvertures (format Polyglot)
- Principal Variation Search
- Internal iterative deepening
- Adaptive null moves pruning
- Late move reduction
- Late move pruning
- Futility pruning
- Razoring
- Mate distance pruning
- Transposition table + Zobrist hash key
- Utilise Mersenne Twister pour les nombres aléatoires
- 4 buckets
- Remplacement : utilise l'age et la profondeur
- Table de hachage pour les pions (2 Mo)
- Extensions de recherche
- Extension en échec
- Pion sur la 7eme rangée
- Multi processeur
- "Young Brother Wait Concept"
- Supporte 64 threads maximum
- "Lazy SMP" (Shared hash table)
- Supporte 256 threads maximum sous Linux, et 64 sous Windows
- "Young Brother Wait Concept"
- Fonction d'évaluation
- Lazy evaluation
- Phase de jeu (incrémenté)
- Matériel (incrémenté)
- Tables de mobilité
- Piece square tables
- Pions doublés
- Pions passés
- Pions isolés
- Pions arriérés
- Pions bloqué
- Tours sur des colonnes ouvertes ou semi-ouvertes
- Tours sur la 7eme rangée
- Protection du roi
- Avant poste pour les cavaliers
- Materiel insuffisant
- Fin de parties
- Permet de modifier certains paramètres avec les personalités
- Méthode Texel's tuning pour paramétrer
- Algorithme de descente de gradient
- Tables de fin de parties
- Syzygy tablebases
- Ordre des coups
- Table de hachage
- SEE bonnes captures et promotions
- Killer moves
- Counter moves
- History heuristic
- SEE mauvaises captures
- Règles
- Standard
- FRC