replenishing played cards works

main
Elijah Voigt 2 years ago
parent c8b6ccf352
commit 7c737e5d72

@ -55,12 +55,14 @@ impl Deck {
let rs = RandomState::new(); let rs = RandomState::new();
let mut base = Self::cards(); let mut base = Self::cards();
let len = base.len(); let len = base.len();
(1..len).into_iter().for_each(|i| { (0..2).iter().for_each(|_| {
let a = rs.hash_one(base[i]) % (len as u64); (1..len).into_iter().for_each(|i| {
let b = rs.hash_one(base[i - 1]) % (len as u64); let a = rs.hash_one(base[i]) % (len as u64);
if a > b { let b = rs.hash_one(base[i - 1]) % (len as u64);
base.swap(a as usize, b as usize); if a > b {
} base.swap(a as usize, b as usize);
}
});
}); });
base base
} }

@ -20,25 +20,27 @@ impl Plugin for SetupPlugin {
/// Setup drawing our cards on the screen /// Setup drawing our cards on the screen
pub(crate) fn setup_cards(mut commands: Commands, deck: Res<Deck>) { pub(crate) fn setup_cards(mut commands: Commands, deck: Res<Deck>) {
Deck::iter_cards().enumerate().for_each(|(i, this_card)| { Deck::iter_shuffled()
let this = deck .enumerate()
.cards .for_each(|(i, this_card)| {
.get(&this_card) let this = deck
.unwrap_or_else(|| panic!("fech card sprite {:?}", this_card)) .cards
.clone(); .get(&this_card)
let this_sprite = Sprite { .unwrap_or_else(|| panic!("fech card sprite {:?}", this_card))
custom_size: Some(Vec2::new(80.0, 128.0)), .clone();
..this let this_sprite = Sprite {
}; custom_size: Some(Vec2::new(80.0, 128.0)),
let order = play::DeckOrder(i as u8); ..this
commands };
.spawn((this_sprite, this_card, order, Visibility::Hidden)) let order = play::DeckOrder(i as u8);
.observe(play::place_card) commands
.observe(debug::set_debug_card) .spawn((this_sprite, this_card, order, Visibility::Hidden))
.observe(debug::hide_debug_card) .observe(play::place_card)
.observe(play::reset_rotation) .observe(debug::set_debug_card)
.observe(play::toggle_selected); .observe(debug::hide_debug_card)
}); .observe(play::reset_rotation)
.observe(play::toggle_selected);
});
} }
/// Setup our camera to view cardson the screen /// Setup our camera to view cardson the screen

@ -1,9 +1,4 @@
TODO: TODO:
* Check for sets
* Capture valid sets
* Shuffle deck
* Serve out 12 cards
* Deal out additional cards after set captured
* Reset game (click new game button) * Reset game (click new game button)
* Track score (number of sets) * Track score (number of sets)
* Make button(s) look pretty * Make button(s) look pretty

Loading…
Cancel
Save