From 5ebe0e7c7a37cf05bf636fb9cd540c9ec251a184 Mon Sep 17 00:00:00 2001 From: ravjot07 Date: Mon, 30 Mar 2026 16:15:40 +0530 Subject: [PATCH] fix: define colors up to max player ID for non-consecutive IDs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit color_definitions() names colors p1rgb, p2rgb, …, p{N}rgb sequentially, and get_player_color() looks up p{player}rgb by actual player number. When player IDs are non-consecutive (e.g. 1, 2, 5) the old code passed len(player_nums)=3, leaving p5rgb undefined and causing a LaTeX error. Use max(player_nums) instead so all referenced colors are defined. Made-with: Cursor --- src/draw_tree/core.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/draw_tree/core.py b/src/draw_tree/core.py index 621a5f6..a90d389 100644 --- a/src/draw_tree/core.py +++ b/src/draw_tree/core.py @@ -1696,7 +1696,10 @@ def generate_tikz( shared_terminal_depth=shared_terminal_depth, ) - # Determine the number of players for dynamic color schemes + # Determine the number of players for dynamic color schemes. + # Use max(player_ids) rather than len(player_ids) so that + # non-consecutive IDs (e.g. players 1, 2, 5) still get all + # required color definitions (p1rgb … p5rgb). num_players = 0 if not isinstance(game, str): try: @@ -1714,7 +1717,7 @@ def generate_tikz( player_nums.add(p) except (IndexError, ValueError): pass - num_players = len(player_nums) if player_nums else 6 + num_players = max(player_nums) if player_nums else 6 except Exception: num_players = 6