1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
use std::fmt::{Debug, Display, Formatter, Result};
use super::GameState;
impl Display for GameState {
fn fmt(&self, f: &mut Formatter) -> Result {
writeln!(f, "{}\n", self.foundations)?;
for (i, cascade) in self.cascades.iter().enumerate() {
let cascade_cards: Vec<String> = cascade.iter().map(
|card| card.to_string()
).collect();
writeln!(f, "Cascade {}: {}", i + 1, cascade_cards.join(", "))?;
}
writeln!(f)?;
let freecell_cards: Vec<String> = self.freecells.iter().map(
|card| card.to_string()
).collect();
writeln!(f, "Freecells: {}", freecell_cards.join(", "))
}
}
impl Debug for GameState {
fn fmt(&self, f: &mut Formatter) -> Result {
writeln!(f, "{:?}\n", self.foundations)?;
for cascade in &self.cascades {
write!(f, "Cascade:")?;
for card in cascade {
write!(f, " {:?}", card)?;
}
writeln!(f)?;
}
writeln!(f)?;
write!(f, "Freecells:")?;
for card in &self.freecells {
write!(f, " {:?}", card)?;
}
writeln!(f)
}
}