fix take_top_card using pop_flip_up

This commit is contained in:
2026-05-16 12:11:29 -07:00
parent a8051b221b
commit 4383228aad
2 changed files with 15 additions and 8 deletions
+7
View File
@@ -182,6 +182,13 @@ impl<const DN: usize, const UP: usize> Pile<DN, UP> {
pub fn pop(&mut self) -> Option<Card> {
self.face_up.pop()
}
pub fn pop_flip_up(&mut self) -> Option<Card> {
let card = self.face_up.pop()?;
if self.face_up.is_empty() {
self.flip_up();
}
Some(card)
}
pub fn take_range<R: RangeBounds<usize>>(&mut self, range: R) -> Stack<UP> {
// if self.face_up.get(range).is_none() {
// return None;
+8 -8
View File
@@ -365,16 +365,16 @@ impl KlondikeState {
fn take_top_card(&mut self, src: KlondikePile) -> Option<Card> {
match src {
KlondikePile::Tableau(tableau) => match tableau {
Tableau::Tableau1 => self.tableau1.pop(),
Tableau::Tableau2 => self.tableau2.pop(),
Tableau::Tableau3 => self.tableau3.pop(),
Tableau::Tableau4 => self.tableau4.pop(),
Tableau::Tableau5 => self.tableau5.pop(),
Tableau::Tableau6 => self.tableau6.pop(),
Tableau::Tableau7 => self.tableau7.pop(),
Tableau::Tableau1 => self.tableau1.pop_flip_up(),
Tableau::Tableau2 => self.tableau2.pop_flip_up(),
Tableau::Tableau3 => self.tableau3.pop_flip_up(),
Tableau::Tableau4 => self.tableau4.pop_flip_up(),
Tableau::Tableau5 => self.tableau5.pop_flip_up(),
Tableau::Tableau6 => self.tableau6.pop_flip_up(),
Tableau::Tableau7 => self.tableau7.pop_flip_up(),
},
KlondikePile::Foundation(foundation) => self.foundations[foundation as usize].pop(),
KlondikePile::Stock => self.stock.pop(),
KlondikePile::Stock => self.stock.pop_flip_up(),
}
}
fn extend<I: IntoIterator<Item = Card>>(&mut self, dst: KlondikePile, cards: I) {