trioskosmos's picture
Upload folder using huggingface_hub
88d4171 verified
pub fn process_hearts(pool: &mut [u32; 7], need: &[u32; 7]) -> (u32, u32) {
let mut satisfied = 0;
let mut wildcards = pool[6] as i32;
let mut total_req = 0;
// 1. Specific colors
for i in 0..6 {
let n = need[i] as i32;
let h = pool[i] as i32;
total_req += n;
if h >= n {
satisfied += n;
pool[i] -= n as u32;
} else {
satisfied += h;
pool[i] = 0;
let deficit = n - h;
let used_wild = wildcards.min(deficit);
satisfied += used_wild;
wildcards -= used_wild;
}
}
// 2. ANY (STAR) requirements
let mut any_need = need[6] as i32;
total_req += any_need;
// Use remaining wildcards
let used_wild = wildcards.min(any_need);
satisfied += used_wild;
wildcards -= used_wild;
any_need -= used_wild;
// Use specific surpluses
if any_need > 0 {
for i in 0..6 {
let surplus = pool[i] as i32;
let used_surplus = surplus.min(any_need);
satisfied += used_surplus;
pool[i] -= used_surplus as u32;
any_need -= used_surplus;
if any_need <= 0 { break; }
}
}
// Update wildcard pool
pool[6] = wildcards.max(0) as u32;
(satisfied as u32, total_req as u32)
}