Skip to content

Handicap mode

amchess edited this page Mar 10, 2026 · 1 revision

The Alexander True Handicap Mode: A Revolutionary Approach to Simulating Human Play

1. Introduction

Traditional chess engine handicap modes typically rely on introducing random errors or limiting search depth to weaken the engine. While effective at lowering playing strength, they fail to replicate the thought process of a human player at a given level. Alexander introduces a revolutionary True Handicap Mode that simulates not just the strength, but the very strategic understanding of players from different historical chess schools. By progressively enabling or disabling evaluation terms and adjusting their weights, Alexander mimics the way humans at various Elo levels perceive a position.

This mode is based on the idea that a player's strength is not merely a function of how many mistakes they make, but of which chess concepts they grasp. A beginner thinks in terms of material, piece activity, and immediate threats; an intermediate player understands pawn structure; an advanced player can handle complex piece play and combinations; and an expert incorporates subtle material imbalances and long‑term initiative. Alexander's True Handicap Mode translates this into concrete evaluation terms.

2. The Four Chess Schools / Playing Levels

Alexander maps Elo ratings to four distinct playing levels, each corresponding to a historical chess school and a set of evaluation components.

Elo Range Level Chess School
0 - 1999 Beginner Italian School (16th century)
2000 - 2199 Intermediate Philidor's School (18th century)
2200 - 2399 Advanced Romantic School (19th century)
2400 - 3190 Expert Modern School (Steinitz, Capablanca, …)

Each level adds new layers of strategic understanding. The evaluation function is dynamically adapted by enabling or disabling specific term groups and by applying appropriate weights.

3. Mapping Human Concepts to Stockfish Evaluation Terms

The following tables show how classical human positional factors are mapped to Alexander's evaluation terms for each level. The terms are grouped into static (long‑term) and dynamic (short‑term) factors, mirroring the way human players think. Note that the evaluation of individual pieces (Knights, Bishops, Rooks, Queens) is always present, but its strategic significance evolves with the player's understanding.

3.1 Beginner Level (Italian School)

Human Concept Alexander Evaluation Term
Static
Quantitative material Material
Pieces (Knights, Bishops, Rooks, Queens) Knights, Bishops, Rooks, Queens
Mobility (number of legal moves) Mobility
Space and time Space
King safety (both sides) King safety
Dynamic
Threats Threats

At this level, the engine focuses on the most basic elements: who has more material, which pieces are more active, and whether the king is safe. Pawn structure, passed pawns, and material imbalances are ignored. The evaluation of pieces is purely based on their intrinsic value and immediate mobility, without consideration of pawn structure or long‑term potential.

3.2 Intermediate Level (Philidor's School)

Human Concept Alexander Evaluation Term
Static
Quantitative material Material
Pieces (now understood in context) Knights, Bishops, Rooks, Queens
Mobility Mobility
Space and time Space
King safety King safety
Pawn structure (weaknesses, islands) Pawns (doubled, isolated, backward)
Passed pawns Passed pawns
Dynamic
Threats Threats

Here, the engine begins to appreciate the importance of pawn structure. It recognises weaknesses such as isolated or doubled pawns and values passed pawns. Piece activity is now seen in the context of the pawn skeleton, although the piece evaluation terms themselves are unchanged; the presence of pawn‑structure terms indirectly improves the positional judgement.

3.3 Advanced Level (Romantic School)

Human Concept Alexander Evaluation Term
Static
Quantitative material Material
Pieces Knights, Bishops, Rooks, Queens
Mobility Mobility
Space and time Space
King safety King safety
Pawn structure Pawns
Passed pawns Passed pawns
Dynamic
Threats Threats
Combination (preparation for sacrifices) (implied by higher weight on threats)

The Romantic school introduced daring sacrifices and combinations. While there is no dedicated "combination" term, the increased importance of threats and piece activity naturally leads to more tactical play.

3.4 Expert Level (Modern School)

Human Concept Alexander Evaluation Term
Static
Quantitative material Material
Pieces Knights, Bishops, Rooks, Queens
Mobility Mobility
Space and time Space
King safety King safety
Pawn structure Pawns
Passed pawns Passed pawns
Qualitative material (e.g., good knight vs bad bishop) Imbalances
Dynamic
Threats Threats
Initiative (position's dynamics) Winnable

Experts understand subtle material imbalances (e.g., a knight vs a bishop in closed positions) and can evaluate the long‑term initiative. The Winnable term in Alexander captures the likelihood of converting an advantage, considering factors like king infiltration and pawns on both flanks.

4. Implementation in Code

The handicap mode is controlled by the HandicapConfig structure and the initHandicapMode function. Based on the user‑set UCI_Elo value, three boolean flags are set:

  • pawnsToEvaluate: enabled for Elo > 1999 (Intermediate and above)
  • winnableToEvaluate: enabled for Elo > 2199 (Advanced and above)
  • imbalancesToEvaluate: enabled for Elo > 2399 (Expert)

These flags determine whether the corresponding evaluation terms are included in the final score. All other terms (Material, Mobility, Space, King safety, Threats, and the piece‑specific terms for Knights, Bishops, Rooks, Queens) are always evaluated, but their contributions can be further scaled via avatar weights.

4.1 Avatar Customisation

Alexander allows loading an avatar file (.avt) that contains percentage weights for each evaluation term, both for middlegame and endgame. For example:

text

Material(mg)=100

Material(eg)=100

PawnStructure(mg)=80

PawnStructure(eg)=70

...

These weights multiply the raw score of each term, enabling the engine to mimic the playing style of a specific human player. The avatar file is read by loadAvatar() and applied via apply_weights() throughout the evaluation.

5. Progressive Complexity

The following table summarises which term groups are active at each level:

Term Group Beginner Intermediate Advanced Expert
Material
Knights, Bishops, Rooks, Queens
Mobility
Space
King safety
Threats
Pawns (structure)
Passed pawns
Winnable (initiative)
Imbalances

All terms are always present but their weights can be adjusted. The flags control whether a term is completely omitted (e.g., a beginner never sees pawn‑structure penalties) or only its weight is reduced.

6. Why This Matters

Traditional handicap modes make engines weaker but do not teach a human anything about their own play. Alexander's True Handicap Mode, by contrast, provides a pedagogical tool. When a beginner analyses with the engine set to 1500 Elo, they see only the concepts they themselves understand. As they improve, they can gradually increase the Elo and discover new layers of strategy. The avatar system even allows replicating the style of a specific player, making Alexander an ideal sparring partner for players of all levels.

7. Usage

To activate the True Handicap Mode, set the UCI option UCI_LimitStrength to true and specify the desired Elo with UCI_Elo. Optionally, provide an avatar file via Avatar File to fine‑tune the weights. The engine will then automatically adjust its evaluation function to the corresponding level.

For more details on the search‑related handicap (limited depth) and the simulation of human blunders, refer to the respective documentation.