basic set checkingcargo run

main
Elijah Voigt 2 years ago
parent 92e4bf9653
commit 2cfb171ece

@ -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
}

Loading…
Cancel
Save