chironaut 0.3.5

A poker game library for Texas Hold'em and other poker variants
Documentation
use chironaut::{
    action::Action,
    game::Game,
    rules::GameRules,
    game::GameStage,
};

#[test]
fn test_basic_fold() {
    // Create a new game with 2 players
    let rules = GameRules::nlhe(10, 20);
    let mut game = Game::new(rules);
    
    // Add two players
    game.add_player("Player 1".to_string(), 1000).unwrap();
    game.add_player("Player 2".to_string(), 1000).unwrap();
    
    // Start a hand
    game.start_hand().unwrap();
    
    // Print out initial state
    println!("Initial state:");
    println!("Dealer position: {}", game.dealer_position);
    println!("Current position: {}", game.current_position);
    
    for (i, player) in game.players.iter().enumerate() {
        println!("Player {}: chips {}, bet_amount {}", 
                 player.name, player.chips, player.bet_amount);
    }
    
    println!("Pot: {}", game.pot);
    
    // First player folds
    game.handle_action(Action::Fold).unwrap();
    
    // Game should end immediately when one player folds
    assert_eq!(game.stage, GameStage::Showdown);
    
    // Final state
    println!("\nFinal state:");
    for (i, player) in game.players.iter().enumerate() {
        println!("Player {}: chips {}", player.name, player.chips);
    }
    
    println!("Pot: {}", game.pot);
}