use chironaut::{
game::Game,
rules::GameRules,
};
fn main() {
let rules = GameRules::nlhe(10, 20);
let mut game = Game::new(rules);
println!("=== SEAT SELECTION EXAMPLE ===\n");
println!("Available seats: {:?}", game.get_available_seats());
println!("\nAdding players to specific seats...");
match game.add_player_to_seat("Alice".to_string(), 1000, 3) {
Ok(id) => println!(" Added Alice to seat 3 with ID {}", id),
Err(e) => println!(" Error: {}", e),
}
match game.add_player_to_seat("Bob".to_string(), 1000, 7) {
Ok(id) => println!(" Added Bob to seat 7 with ID {}", id),
Err(e) => println!(" Error: {}", e),
}
match game.add_player_to_seat("Charlie".to_string(), 1000, 3) {
Ok(id) => println!(" Added Charlie to seat 3 with ID {}", id),
Err(e) => println!(" Error adding Charlie to seat 3: {}", e),
}
println!("\nAvailable seats after adding players:");
println!(" {:?}", game.get_available_seats());
match game.add_player("Diana".to_string(), 1000) {
Ok(id) => {
let seat = game.players.iter().find(|p| p.id == id).unwrap().seat_position;
println!("\nAdded Diana to first available seat: {} (ID: {})", seat, id);
},
Err(e) => println!("\nError adding Diana: {}", e),
}
println!("\nCurrent players:");
for player in &game.players {
println!(" {} (ID: {}) at seat {}", player.name, player.id, player.seat_position);
}
println!("\nRemoving Bob (ID: 1)...");
match game.remove_player(1) {
Ok(_) => println!(" Bob removed successfully"),
Err(e) => println!(" Error: {}", e),
}
println!("\nFinal available seats:");
println!(" {:?}", game.get_available_seats());
println!("\nRemaining players:");
for player in &game.players {
println!(" {} (ID: {}) at seat {}", player.name, player.id, player.seat_position);
}
}