A pure Python implementation of the Ludo game, built for reinforcement learning and strategy testing. The engine defines deterministic rules, cleanly separates game mechanics from strategies, and requires no external libraries.
Project description
Ludo King Engine
A comprehensive Python implementation of the classic Ludo board game, featuring sophisticated AI strategies and an interactive web-based interface. This pure Python engine is designed for reinforcement learning, strategy research, and educational gameplay, offering multiple built-in AI strategies alongside modern visualization tools for strategy analysis and comparison.
โจ Key Features
- ๐ Pure Python Implementation โ Zero external dependencies for the core game engine
- ๐ Interactive Web Interface โ Gradio-powered visualizer for real-time gameplay and analysis
- ๐ฏ Deterministic Gameplay โ Reproducible game sessions with comprehensive seed support
- ๐ง Extensible AI Framework โ Rich strategy system with 10+ sophisticated AI implementations
- ๐๏ธ Clean Architecture โ Modular design separating game mechanics from AI strategies
- ๐ Advanced Analytics โ Detailed game state tracking with comprehensive statistics
- ๐ Tournament System โ Multi-game competition framework featuring league-style tables
- ๐ฌ Real-time Visualization โ Step-by-step game playback with animated token movement
- โ๏ธ Strategy Benchmarking โ Built-in tools for comparing AI performance across multiple metrics
๐ฎ Core Components
Game Mechanics
- ๐ฒ Board System โ 56-position game board with strategic safe zones and home columns
- ๐ด Token Management โ Individual game pieces with advanced position and state tracking
- ๐ค Player Framework โ Comprehensive player management with token lifecycle and performance statistics
- โ๏ธ Game Engine โ Robust game flow controller managing turns, rules, and game state
AI Strategy Framework
- ๐ฏ Heuristic Strategies โ Fundamental approaches including Random, Killer, Defensive, and Balanced tactics
- ๐ง Advanced Algorithms โ Sophisticated strategies like Cautious, Optimist, Winner, and multiple Probabilistic variants
- ๐ค LLM Integration โ Extensible framework ready for Large Language Model-driven strategies
- ๐ญ Strategy Factory โ Streamlined instantiation and management system for all AI strategies
๐ Quick Start Guide
Launch the Web Interface
Get started with the interactive web interface in just a few commands:
# Install optional dependencies for web interface
pip install gradio pillow
# Launch the interactive web application
python main.py
The web interface automatically opens at http://localhost:7860 and provides:
- ๐ฎ Interactive Gameplay โ Step-by-step game visualization with smooth token animations
- ๐ฏ Strategy Selection โ Choose from 10+ AI strategies for each player
- ๐ Tournament Mode โ Automated multi-game competitions with detailed league tables
- ๐ Real-time Analytics โ Live game statistics and comprehensive move history tracking
Programmatic Usage
Create and run games programmatically with full control over strategies and game flow:
from ludo_engine import LudoGame, StrategyFactory
from ludo_engine.player import PlayerColor
# Initialize a new game with four players
game = LudoGame(
player_colors=[PlayerColor.RED, PlayerColor.BLUE, PlayerColor.GREEN, PlayerColor.YELLOW]
)
# Configure AI strategies for each player
strategies = ['random', 'killer', 'defensive', 'balanced']
for i, strategy_name in enumerate(strategies):
strategy = StrategyFactory.create_strategy(strategy_name)
game.players[i].set_strategy(strategy)
# Execute a complete game and analyze results
results = game.play_game()
print(f"๐ Winner: {results['winner']}")
print(f"โฑ๏ธ Game Duration: {results['turns_played']} turns")
๐ง Available AI Strategies
Our comprehensive strategy library includes algorithms ranging from simple heuristics to advanced probabilistic models:
| Strategy | Approach | Description |
|---|---|---|
| Random | Baseline | Randomly selects from all available legal moves |
| Killer | Aggressive | Prioritizes capturing opponent tokens above all else |
| Defensive | Conservative | Emphasizes safe moves and token protection |
| Balanced | Hybrid | Balances offensive and defensive considerations |
| Cautious | Risk-Averse | Extremely conservative, minimizes all forms of risk |
| Optimist | Risk-Taking | Aggressive approach with calculated risk acceptance |
| Winner | Goal-Oriented | Focuses on advancing tokens to finish line efficiently |
| Probabilistic | Mathematical | Uses probability calculations for optimal decision making |
| ProbabilisticV2/V3 | Advanced Math | Enhanced probabilistic models with refined algorithms |
| WeightedRandom | Stochastic | Intelligent sampling with strategic weight distributions |
| HybridProb | Multi-Method | Combines multiple evaluation techniques for robust decisions |
๐ Web Interface Features
The sophisticated web interface transforms strategy analysis into an interactive experience:
Core Functionality
- ๐ฎ Interactive Gameplay โ Step-by-step game visualization with smooth, animated token movement
- ๐ค Strategy Selection โ Choose from 10+ AI strategies for each player with detailed descriptions
- ๐ Tournament Mode โ Automated multi-game competitions with comprehensive league tables
- ๐ Real-time Statistics โ Live tracking of wins, game duration, and detailed performance metrics
Advanced Features
- ๐ Game State Management โ Save and load complete game states for in-depth analysis
- ๐ Move History Analysis โ Review complete game history with detailed move descriptions and reasoning
- ๐ฒ Automated Gameplay โ Run games automatically with configurable speed and pause controls
- ๐ฑ Responsive Design โ Seamless experience across desktop and mobile browsers
Getting Started with the Interface
Launch the interface with python main.py to explore these interactive features firsthand.
๐ Tournament Performance Analysis
Our comprehensive tournament system demonstrates the effectiveness of different AI strategies through large-scale competition. The following results showcase performance across 132 matches with 20 games per match in a league format:
Tournament Configuration
๐ฎ LUDO STRATEGY TOURNAMENT
==================================================
๐๏ธ Configuration Details:
Max turns per game: 500
Games per match: 20
Competing strategies: 12 different AI algorithms
Format: Home and away league system
Total games played: 2,640
๐ Tournament Results Summary
Final League Standings
| Pos | Strategy | P | W | D | L | GF | GA | GD | Pts | Win% | Award |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | probabilistic_v2 | 22 | 17 | 4 | 1 | 17 | 1 | +16 | 55 | 77.3% | ๐ฅ |
| 2 | probabilistic_v3 | 22 | 18 | 1 | 3 | 18 | 3 | +15 | 55 | 81.8% | ๐ฅ |
| 3 | probabilistic | 22 | 16 | 4 | 2 | 16 | 2 | +14 | 52 | 72.7% | ๐ฅ |
| 4 | hybrid_prob | 22 | 15 | 3 | 4 | 15 | 4 | +11 | 48 | 68.2% | |
| 5 | killer | 22 | 13 | 3 | 6 | 13 | 6 | +7 | 42 | 59.1% | |
| 6 | cautious | 22 | 12 | 2 | 8 | 12 | 8 | +4 | 38 | 54.5% | |
| 7 | defensive | 22 | 9 | 1 | 12 | 9 | 12 | -3 | 28 | 40.9% | |
| 8 | balanced | 22 | 8 | 0 | 14 | 8 | 14 | -6 | 24 | 36.4% | |
| 9 | winner | 22 | 7 | 1 | 14 | 7 | 14 | -7 | 22 | 31.8% | |
| 10 | optimist | 22 | 4 | 1 | 17 | 4 | 17 | -13 | 13 | 18.2% | |
| 11 | random | 22 | 1 | 1 | 20 | 1 | 20 | -19 | 4 | 4.5% | |
| 12 | weighted_random | 22 | 1 | 1 | 20 | 1 | 20 | -19 | 4 | 4.5% | ๐ป |
Legend: P=Played, W=Won, D=Draw, L=Lost, GF=Goals For, GA=Goals Against, GD=Goal Difference
Key Tournament Insights
๐ Champion Analysis
- Winner:
probabilistic_v2with 55 points from 22 games - Win Rate: 77.3% demonstrating exceptional consistency
- Performance: Dominated through mathematical optimization
๏ฟฝ Strategic Performance Tiers
๐ฅ Elite Tier (70%+ win rate)
- Probabilistic Dominance: Three probabilistic variants secured the top positions
probabilistic_v2: 77.3% win rate (Champion)probabilistic_v3: 81.8% win rate (Runner-up)probabilistic: 72.7% win rate (Third place)
๐ฅ Competitive Tier (50-70% win rate)
- Hybrid Excellence:
hybrid_prob(68.2%) shows strong potential through multi-method evaluation - Aggressive Success:
killer(59.1%) andcautious(54.5%) demonstrate effective specialized approaches
๐ฅ Developing Tier (<50% win rate)
- Conservative Challenges:
winner(31.8%) andoptimist(18.2%) struggled with risk management - Baseline Performance: Random strategies (
randomandweighted_randomboth at 4.5%) performed as expected
๐ Statistical Significance
- Total Matches: 132 comprehensive matchups ensuring robust statistical validity
- Draw Rate: 11 draws (8.3%) indicating decisive strategic differentiation
- Average Game Length: 151.6 turns demonstrating balanced game pacing
- Clear Differentiation: Results show definitive strategic hierarchy across all performance tiers
๐ฏ Game Rules & Mechanics
Core Gameplay
- ๐ฒ Player Count: Supports 2-4 players with standard Ludo rules
- ๐ Starting Position: Each player begins with 4 tokens in their home base
- ๐ Token Activation: Roll a 6 to move tokens from home to the starting position
- ๐ Victory Condition: First player to move all 4 tokens to the finish area wins
- ๐ Journey Length: 57 steps required per token (1 to start + 56 around the board)
Special Rules
- โก Bonus Turns: Rolling a 6 or capturing an opponent token grants an additional turn
- ๐ฏ Token Capture: Land on opponent tokens to send them back to home (except on safe positions)
- ๐ก๏ธ Safe Zones: Designated safe positions where tokens cannot be captured
- ๐ซ Six Limit: Maximum of 3 consecutive sixes before turn automatically ends
- ๐ Finish Strategy: Tokens must reach the center finish area to complete the game
๐ Code Examples & Usage Patterns
Basic Game Setup
Start with a simple two-player game to understand the fundamentals:
from ludo_engine import LudoGame, StrategyFactory
from ludo_engine.player import PlayerColor
# Initialize a basic two-player game
game = LudoGame([PlayerColor.RED, PlayerColor.BLUE])
# Configure AI strategies for each player
strategies = ['random', 'killer']
for i, strategy_name in enumerate(strategies):
strategy = StrategyFactory.create_strategy(strategy_name)
game.players[i].set_strategy(strategy)
# Execute the game and get results
results = game.play_game()
print(f"๐ Game completed! Winner: {results.get('winner', 'No winner')}")
Strategy Performance Comparison
Analyze and compare different AI strategies across multiple games:
from ludo_engine import LudoGame, StrategyFactory
from ludo_engine.player import PlayerColor
# Define strategies to compare
strategies = ['random', 'killer', 'defensive', 'balanced']
performance_metrics = {strategy: 0 for strategy in strategies}
# Run 100 games for statistical significance
for game_round in range(100):
game = LudoGame([PlayerColor.RED, PlayerColor.BLUE, PlayerColor.GREEN, PlayerColor.YELLOW])
# Assign strategies to players
for player_index, strategy_name in enumerate(strategies):
strategy = StrategyFactory.create_strategy(strategy_name)
game.players[player_index].set_strategy(strategy)
# Play game and record results
results = game.play_game()
if results.get('winner'):
# Identify winning strategy
for player in game.players:
if player.color.value == results['winner']:
performance_metrics[player.strategy.name.lower()] += 1
break
print("๐ Strategy Performance Analysis:")
for strategy, wins in performance_metrics.items():
win_rate = (wins / 100) * 100
print(f" {strategy.capitalize()}: {wins}/100 wins ({win_rate:.1f}%)")
Custom Strategy Development
Create and integrate your own AI strategy:
from ludo_engine.strategies import BaseStrategy
from ludo_engine.player import PlayerColor
from ludo_engine import LudoGame, StrategyFactory
class CustomStrategy(BaseStrategy):
"""Example custom strategy implementation."""
def __init__(self):
super().__init__("CustomStrategy")
def choose_move(self, movable_tokens, dice_roll, game_state):
"""
Implement your strategic logic here.
Args:
movable_tokens: List of tokens that can be moved
dice_roll: Current dice value
game_state: Current state of the game
Returns:
Selected token to move or None if no move possible
"""
# Example: Prioritize tokens closest to finish
if movable_tokens:
return max(movable_tokens, key=lambda token: token.position)
return None
# Register your custom strategy
StrategyFactory.register_strategy('custom_strategy', CustomStrategy)
# Use your strategy in a game
game = LudoGame([PlayerColor.RED, PlayerColor.BLUE])
strategies = ['custom_strategy', 'balanced']
for i, strategy_name in enumerate(strategies):
strategy = StrategyFactory.create_strategy(strategy_name)
game.players[i].set_strategy(strategy)
results = game.play_game()
print(f"๐ฏ Custom strategy game result: {results.get('winner', 'Draw')}")
Advanced Game Analysis
Monitor game progression with detailed turn-by-turn analysis:
from ludo_engine import LudoGame, StrategyFactory
from ludo_engine.player import PlayerColor
# Setup game for detailed analysis
game = LudoGame([PlayerColor.RED, PlayerColor.BLUE])
strategies = ['balanced', 'probabilistic']
for i, strategy_name in enumerate(strategies):
strategy = StrategyFactory.create_strategy(strategy_name)
game.players[i].set_strategy(strategy)
# Initialize game and track progress
game.start_game()
turn_counter = 0
print("๐ Detailed Game Analysis:")
print("=" * 50)
while not game.is_finished():
current_player = game.get_current_player()
turn_result = game.play_turn()
turn_counter += 1
# Log turn details
print(f"Turn {turn_counter:3d} | Player {current_player.color.value:6s}: "
f"Rolled {turn_result.get('dice_roll', 'N/A'):2d} | "
f"Move: {turn_result.get('move_made', 'No move')}")
# Highlight special events
if turn_result.get('captured_tokens'):
captured_count = len(turn_result['captured_tokens'])
print(f" ๐ฏ Captured {captured_count} opponent token(s)!")
if turn_result.get('dice_roll') == 6:
print(f" ๐ฒ Bonus turn earned!")
# Display final results
final_results = game.get_game_results()
print("=" * 50)
print(f"๐ Game completed in {turn_counter} turns")
print(f"๐ Winner: {final_results.get('winner', 'No winner determined')}")
๐ฏ Use Cases & Applications
๐ค Reinforcement Learning & AI Research
- ๐ง State Representation โ Complete game state available as structured dictionaries for ML models
- โก Action Space โ Clear move choices with intelligent valid action filtering
- ๐ Reward Engineering โ Rich reward signals including win/loss, captures, and progress tracking
- ๐ฌ Reproducible Research โ Deterministic gameplay with comprehensive seed support for consistent experiments
๐ Strategy Research & Analysis
- โ๏ธ A/B Testing Framework โ Systematic comparison of strategy performance across multiple metrics
- ๐ Tournament Systems โ Large-scale multi-strategy competitions with statistical significance
- ๐ Performance Analytics โ Detailed game statistics and comprehensive performance tracking
- ๐ง Custom Algorithm Development โ Easy implementation and testing of novel strategic approaches
๐ Educational Applications
- ๐ฒ Game Theory Studies โ Practical exploration of strategic decision making and Nash equilibria
- ๐ Probability & Statistics โ Analysis of dice roll impacts, risk assessment, and outcome prediction
- ๐ป AI Development Learning โ Hands-on experience with game AI programming and algorithm design
- ๐ Algorithm Comparison โ Benchmarking different approaches to understand performance characteristics
๐๏ธ Project Architecture
The project follows a clean, modular architecture separating concerns for maintainability and extensibility:
๐ ludo_engine/ # ๐ฎ Core game engine (pure Python)
โโโ ๐ฏ board.py # Game board logic and position management
โโโ ๐ด token.py # Token mechanics and state management
โโโ ๐ค player.py # Player management and statistics
โโโ โ๏ธ game.py # Main game engine and turn management
โโโ ๐ model.py # Data models and type definitions
โโโ ๐ง constants.py # Game constants and configuration
โโโ ๐ญ strategy.py # Strategy factory and base classes
โโโ ๐ strategies/ # ๐ง AI strategy implementations
โโโ ๐ฏ base.py # Base strategy class and interfaces
โโโ ๐ ๏ธ utils.py # Strategy utility functions
โโโ ๐ฒ random_strategy.py # Random decision making
โโโ โ๏ธ balanced.py # Balanced offensive/defensive approach
โโโ ๐ก๏ธ cautious.py # Risk-averse conservative strategy
โโโ ๐ defensive.py # Defensive token protection
โโโ โ๏ธ killer.py # Aggressive capture-focused strategy
โโโ ๐ optimist.py # Risk-taking aggressive approach
โโโ ๐ winner.py # Goal-oriented finishing strategy
โโโ ๐ probabilistic*.py # Mathematical probability-based strategies
โโโ ๐ฏ weighted_random.py # Intelligent stochastic sampling
โโโ ๐ llm/ # ๐ค LLM-powered strategies
โโโ ๐ฌ prompt.py # LLM prompt engineering
โโโ ๐ง strategy.py # LLM integration framework
๐ ludo_interface/ # ๐ Web interface (optional)
โโโ ๐ฅ๏ธ app.py # Main Gradio application
โโโ ๐จ board_viz.py # Board visualization utilities
๐ tests/ # ๐งช Comprehensive test suite
โโโ ๐ __init__.py # Test package initialization
โโโ ๐ฏ test_board.py # Board mechanics validation
โโโ โ๏ธ test_game.py # Game engine functionality tests
โโโ ๐ test_integration.py # End-to-end integration tests
โโโ ๐ค test_player.py # Player management verification
โโโ ๐ง test_strategies.py # AI strategy validation
โโโ ๐ญ test_strategy.py # Strategy framework tests
โโโ ๐ด test_token.py # Token mechanics verification
๐ examples/ # ๐ Usage examples and demos
โโโ โ๏ธ config.py # Configuration examples and templates
โโโ ๐ tournament.py # Tournament setup and management
โโโ ๐ฎ tournament_demo.py # Interactive tournament demonstration
๐ main.py # ๐ Entry point for web interface
๐ง Design Principles
- ๐ฏ Separation of Concerns โ Game mechanics, AI strategies, and interface are cleanly separated
- ๐ Extensible Framework โ Easy addition of new strategies through factory pattern
- ๐งช Comprehensive Testing โ Full test coverage ensuring reliability and correctness
- ๐ Data-Driven Design โ Rich data models supporting analysis and debugging
- ๐ Modular Interface โ Optional web interface doesn't impact core engine performance
๐ Requirements & Installation
System Requirements
- ๐ Python: Version 3.7 or higher
- ๐ฎ Core Engine: Zero external dependencies (pure Python implementation)
- ๐ Web Interface:
gradioandpillow(optional for visualization features)
๐ Quick Installation
-
Clone the Repository
git clone https://github.com/KameniAlexNea/ludo-king-engine.git cd ludo-king-engine
-
Install Optional Dependencies (for web interface)
pip install gradio pillow
-
Verify Installation with comprehensive test suite
python -m unittest discover -s tests
-
Launch Web Interface
python main.py -
Explore Examples and tutorials
python examples/tournament_demo.py
๐ฏ Getting Started Tips
- Core Engine Only: No installation required beyond Python 3.7+
- Full Experience: Install optional dependencies for complete feature access
- Development Setup: Run tests to ensure everything works correctly
- Learning Path: Start with examples to understand the framework capabilities
๐ค Contributing to the Project
We welcome contributions from the community! Here's how you can get involved:
๐ Development Workflow
-
๐ด Fork the Repository
# Create your own fork on GitHub -
๐ Create a Feature Branch
git checkout -b feature/amazing-new-feature
-
๐ป Implement Your Changes
- Follow existing code style and patterns
- Add comprehensive tests for new functionality
- Update documentation as needed
-
โ Commit Your Changes
git commit -m 'Add amazing new feature with comprehensive tests'
-
๐ Push to Your Branch
git push origin feature/amazing-new-feature
-
๐ Open a Pull Request
- Provide clear description of changes
- Reference any related issues
- Ensure all tests pass
๐ฏ Contribution Areas
- ๐ง New AI Strategies: Implement novel algorithms and strategic approaches
- ๐ Bug Fixes: Report and fix issues in the codebase
- ๐ Documentation: Improve guides, examples, and API documentation
- ๐งช Testing: Expand test coverage and add edge case validation
- ๐ Interface Enhancements: Improve web interface and visualization features
๐ License
This project is licensed under the Apache License - see the LICENSE file for complete details.
๐บ๏ธ Development Roadmap
โ Completed Features
- ๐ Web-based Game Visualization โ Interactive interface with real-time gameplay
๐ง In Development
- ๐ค LLM-powered Strategy Integration โ Advanced AI using large language models
- โก Multi-threading Tournament Simulations โ Parallel processing for faster competitions
- ๐ Advanced Statistical Analysis Tools โ Enhanced performance metrics and insights
๐ฎ Future Enhancements
- ๐พ Export/Import Game Replay Functionality โ Save and analyze complete game sessions
- ๐จ Custom Board Layouts & Rule Variations โ Flexible game configuration options
- ๐ฑ Enhanced Mobile-Responsive Interface โ Optimized mobile gaming experience
- ๐ Strategy Training Mode for Reinforcement Learning โ Dedicated RL training environment
Ready to start playing? Launch the web interface with python main.py and explore the fascinating world of AI strategy competition! ๐ฎโจ
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ludo_king_engine-0.1.0.tar.gz.
File metadata
- Download URL: ludo_king_engine-0.1.0.tar.gz
- Upload date:
- Size: 94.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
84ca8a83fbd57c9b3238dbfd982e37d7c7555b81f86ec700c524998004ad0c4a
|
|
| MD5 |
63e88a8bc4dad8af761e1ed63276f599
|
|
| BLAKE2b-256 |
0d7e7cce53d00e44c934b2265b805d85dc1867d66ba9065f4fcae0f280ff6680
|
Provenance
The following attestation bundles were made for ludo_king_engine-0.1.0.tar.gz:
Publisher:
publish.yml on KameniAlexNea/ludo-king-engine
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ludo_king_engine-0.1.0.tar.gz -
Subject digest:
84ca8a83fbd57c9b3238dbfd982e37d7c7555b81f86ec700c524998004ad0c4a - Sigstore transparency entry: 524105438
- Sigstore integration time:
-
Permalink:
KameniAlexNea/ludo-king-engine@123e8aa97aed18530dda54d39e78ae75c7c77500 -
Branch / Tag:
refs/tags/ludo-king-engine-v0.1.0 - Owner: https://github.com/KameniAlexNea
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@123e8aa97aed18530dda54d39e78ae75c7c77500 -
Trigger Event:
release
-
Statement type:
File details
Details for the file ludo_king_engine-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ludo_king_engine-0.1.0-py3-none-any.whl
- Upload date:
- Size: 85.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a74437f1ab53580a351214a5eff8e7ef684eff9d191e3010891d9aa59593bc06
|
|
| MD5 |
6a8e1a92785efcba44630a487f014f96
|
|
| BLAKE2b-256 |
956969006f1f2f8da104334f99319318e439ae460e61c6db126ddf9f82ce89fb
|
Provenance
The following attestation bundles were made for ludo_king_engine-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on KameniAlexNea/ludo-king-engine
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ludo_king_engine-0.1.0-py3-none-any.whl -
Subject digest:
a74437f1ab53580a351214a5eff8e7ef684eff9d191e3010891d9aa59593bc06 - Sigstore transparency entry: 524105446
- Sigstore integration time:
-
Permalink:
KameniAlexNea/ludo-king-engine@123e8aa97aed18530dda54d39e78ae75c7c77500 -
Branch / Tag:
refs/tags/ludo-king-engine-v0.1.0 - Owner: https://github.com/KameniAlexNea
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@123e8aa97aed18530dda54d39e78ae75c7c77500 -
Trigger Event:
release
-
Statement type: