|
|
|
|
@ -33,7 +33,7 @@ pub(crate) fn toggle_selected(
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub(crate) fn check_set(trigger: Trigger<Pointer<Click>>, query: Query<&Card, With<Selected>>) {
|
|
|
|
|
pub(crate) fn check_set(_trigger: Trigger<Pointer<Click>>, query: Query<&Card, With<Selected>>) {
|
|
|
|
|
let mut cards = query.iter();
|
|
|
|
|
if cards.len() == 3 {
|
|
|
|
|
let (a, b, c) = (
|
|
|
|
|
@ -41,7 +41,7 @@ pub(crate) fn check_set(trigger: Trigger<Pointer<Click>>, query: Query<&Card, Wi
|
|
|
|
|
cards.next().unwrap(),
|
|
|
|
|
cards.next().unwrap(),
|
|
|
|
|
);
|
|
|
|
|
_is_set((a, b, c));
|
|
|
|
|
info!("Is set: {}", is_set((a, b, c)));
|
|
|
|
|
} else if cards.len() > 3 {
|
|
|
|
|
info!("Too many cards!")
|
|
|
|
|
} else if cards.len() < 3 {
|
|
|
|
|
@ -49,6 +49,22 @@ pub(crate) fn check_set(trigger: Trigger<Pointer<Click>>, query: Query<&Card, Wi
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn _is_set((_a, _b, _c): (&Card, &Card, &Card)) -> bool {
|
|
|
|
|
todo!()
|
|
|
|
|
fn is_set((a, b, c): (&Card, &Card, &Card)) -> bool {
|
|
|
|
|
let color = {
|
|
|
|
|
((a.color == b.color) && (b.color == c.color) && (c.color == a.color))
|
|
|
|
|
|| ((a.color != b.color) && (b.color != c.color) && (c.color != a.color))
|
|
|
|
|
};
|
|
|
|
|
let number = {
|
|
|
|
|
((a.number == b.number) && (b.number == c.number) && (c.number == a.number))
|
|
|
|
|
|| ((a.number != b.number) && (b.number != c.number) && (c.number != a.number))
|
|
|
|
|
};
|
|
|
|
|
let pattern = {
|
|
|
|
|
((a.pattern == b.pattern) && (b.pattern == c.pattern) && (c.pattern == a.pattern))
|
|
|
|
|
|| ((a.pattern != b.pattern) && (b.pattern != c.pattern) && (c.pattern != a.pattern))
|
|
|
|
|
};
|
|
|
|
|
let shape = {
|
|
|
|
|
((a.shape == b.shape) && (b.shape == c.shape) && (c.shape == a.shape))
|
|
|
|
|
|| ((a.shape != b.shape) && (b.shape != c.shape) && (c.shape != a.shape))
|
|
|
|
|
};
|
|
|
|
|
color && number && pattern && shape
|
|
|
|
|
}
|
|
|
|
|
|