// est inférieur/supérieur à la limite définie
// vecteur de 3 éléments [ bool_red, bool_green, bool_blue ]
let mut res_draw: Vec<bool> = Vec::new();
+
+ // extraction du nombre de cubes pour chaque couleur
+ // vérification de ce nombre avec la limite
+ // stockage "true" si le tirage est correct ("false" sinon)
regex.iter().zip(limits) // (re, limit)
.for_each(|(re, l)| {
let caps = re.captures(draw);
- //println!("caps: {:?}", caps);
if caps.is_some() {
let n = caps.unwrap().get(1);
if n.is_some() {
let n: i32 = n.unwrap().as_str().parse().unwrap();
- //println!("{l}: {n}");
res_draw.push( n <= l );
return;
}
}
res_draw.push(true);
});
- //println!("collect foreach draw: {:?}", res_draw);
result.push( ! res_draw.contains(&false) );
});
- //println!("result per game {:?}", result);
+ // on ne conserve que les parties dont tous les tirages sont corrects
!result.contains(&false)
})
.collect();
let mut max = [ 0, 0, 0 ];
l.split(';')
.for_each(|draw| {
- regex.iter().enumerate() // (re, limit)
+ regex.iter().enumerate()
.for_each(|(i, re)| {
let caps = re.captures(draw);
if caps.is_some() {