fix take_top_card using pop_flip_up
This commit is contained in:
@@ -182,6 +182,13 @@ impl<const DN: usize, const UP: usize> Pile<DN, UP> {
|
|||||||
pub fn pop(&mut self) -> Option<Card> {
|
pub fn pop(&mut self) -> Option<Card> {
|
||||||
self.face_up.pop()
|
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> {
|
pub fn take_range<R: RangeBounds<usize>>(&mut self, range: R) -> Stack<UP> {
|
||||||
// if self.face_up.get(range).is_none() {
|
// if self.face_up.get(range).is_none() {
|
||||||
// return None;
|
// return None;
|
||||||
|
|||||||
+8
-8
@@ -365,16 +365,16 @@ impl KlondikeState {
|
|||||||
fn take_top_card(&mut self, src: KlondikePile) -> Option<Card> {
|
fn take_top_card(&mut self, src: KlondikePile) -> Option<Card> {
|
||||||
match src {
|
match src {
|
||||||
KlondikePile::Tableau(tableau) => match tableau {
|
KlondikePile::Tableau(tableau) => match tableau {
|
||||||
Tableau::Tableau1 => self.tableau1.pop(),
|
Tableau::Tableau1 => self.tableau1.pop_flip_up(),
|
||||||
Tableau::Tableau2 => self.tableau2.pop(),
|
Tableau::Tableau2 => self.tableau2.pop_flip_up(),
|
||||||
Tableau::Tableau3 => self.tableau3.pop(),
|
Tableau::Tableau3 => self.tableau3.pop_flip_up(),
|
||||||
Tableau::Tableau4 => self.tableau4.pop(),
|
Tableau::Tableau4 => self.tableau4.pop_flip_up(),
|
||||||
Tableau::Tableau5 => self.tableau5.pop(),
|
Tableau::Tableau5 => self.tableau5.pop_flip_up(),
|
||||||
Tableau::Tableau6 => self.tableau6.pop(),
|
Tableau::Tableau6 => self.tableau6.pop_flip_up(),
|
||||||
Tableau::Tableau7 => self.tableau7.pop(),
|
Tableau::Tableau7 => self.tableau7.pop_flip_up(),
|
||||||
},
|
},
|
||||||
KlondikePile::Foundation(foundation) => self.foundations[foundation as usize].pop(),
|
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) {
|
fn extend<I: IntoIterator<Item = Card>>(&mut self, dst: KlondikePile, cards: I) {
|
||||||
|
|||||||
Reference in New Issue
Block a user