From e9bb9660a89cbc7ce507cc0f1198ea9ffa7262dc Mon Sep 17 00:00:00 2001 From: Rhys Lloyd Date: Mon, 18 May 2026 12:56:37 -0700 Subject: [PATCH] fix is_win --- klondike/src/lib.rs | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/klondike/src/lib.rs b/klondike/src/lib.rs index 824d0b2..5d36265 100644 --- a/klondike/src/lib.rs +++ b/klondike/src/lib.rs @@ -624,14 +624,13 @@ impl Game for Klondike { } } fn is_win(&self) -> bool { - // all face down cards empty means win - self.state.stock.face_down().is_empty() - && self.state.tableau1.face_down().is_empty() - && self.state.tableau2.face_down().is_empty() - && self.state.tableau3.face_down().is_empty() - && self.state.tableau4.face_down().is_empty() - && self.state.tableau5.face_down().is_empty() - && self.state.tableau6.face_down().is_empty() - && self.state.tableau7.face_down().is_empty() + // all foundations contain all ranks + self.state.foundations.iter().all(|foundation| { + foundation.len() == Rank::RANKS.len() + && foundation + .iter() + .zip(Rank::RANKS) + .all(|(card, rank)| card.rank() == rank) + }) } }