Added card faces
Not super duper happy with consistency of sizes between different cards
This commit is contained in:
@@ -31,7 +31,7 @@ fn draw_waste(cards_in_waste: &Vec<card_stuffs::Card>, area: Rect, frame: &mut F
|
||||
]);
|
||||
let [w1, w2, top_waste] = horizontal.areas(area);
|
||||
|
||||
// There must be a better way to do this
|
||||
// There must be a better way to do all of this
|
||||
if cards_in_waste.len() == 0 {
|
||||
frame.render_widget(
|
||||
empty_pile(),
|
||||
@@ -88,21 +88,13 @@ fn deck_widget(cards_in_deck: &Vec<card_stuffs::Card>) -> Paragraph<'static> {
|
||||
.border_type(BorderType::Rounded))
|
||||
}
|
||||
|
||||
|
||||
fn card_widget<'a>(card: &'a card_stuffs::Card, top: bool, highlight: bool, select: bool) -> Paragraph<'a> {
|
||||
if !card.visible {
|
||||
return facedown_card(top);
|
||||
}
|
||||
|
||||
let card_image = format!(
|
||||
"{value}{suit}
|
||||
|
||||
{suit} {suit}
|
||||
|
||||
{suit}
|
||||
|
||||
{suit} {suit}
|
||||
|
||||
{value}{suit}", value=card.value, suit=card.suit);
|
||||
let card_image = card_paragraph(&card);
|
||||
|
||||
let card_style = match card.suit.colour() {
|
||||
card_stuffs::Colour::Black => Style::new().black().bg(Color::White),
|
||||
@@ -357,3 +349,287 @@ fn main() -> io::Result<()> {
|
||||
ratatui::restore();
|
||||
app_result
|
||||
}
|
||||
|
||||
|
||||
|
||||
fn card_paragraph(c: &card_stuffs::Card) -> String {
|
||||
match c.value {
|
||||
card_stuffs::Value::Ace => {
|
||||
/*
|
||||
XX
|
||||
X
|
||||
X X
|
||||
X X
|
||||
X X
|
||||
XXXXXXX
|
||||
X X
|
||||
X X
|
||||
XX
|
||||
*/
|
||||
format!(
|
||||
"{value}{suit}
|
||||
{suit}
|
||||
{suit} {suit}
|
||||
{suit} {suit}
|
||||
{suit} {suit}
|
||||
{suit}{suit}{suit}{suit}{suit}{suit}{suit}
|
||||
{suit} {suit}
|
||||
{suit} {suit}
|
||||
{value}{suit}", value=c.value, suit=c.suit)
|
||||
},
|
||||
card_stuffs::Value::Two => {
|
||||
/*
|
||||
XX
|
||||
X
|
||||
XXX
|
||||
X
|
||||
|
||||
X
|
||||
XXX
|
||||
X
|
||||
XX
|
||||
*/
|
||||
format!(
|
||||
"{value}{suit}
|
||||
{suit}
|
||||
{suit}{suit}{suit}
|
||||
{suit}
|
||||
|
||||
{suit}
|
||||
{suit}{suit}{suit}
|
||||
{suit}
|
||||
{value}{suit}", value=c.value, suit=c.suit)
|
||||
},
|
||||
card_stuffs::Value::Three => {
|
||||
/*
|
||||
XX X
|
||||
XXX
|
||||
X
|
||||
X
|
||||
XXX
|
||||
X
|
||||
X
|
||||
XXX
|
||||
X XX
|
||||
*/
|
||||
format!(
|
||||
"{value}{suit} {suit}
|
||||
{suit}{suit}{suit}
|
||||
{suit}
|
||||
{suit}
|
||||
{suit}{suit}{suit}
|
||||
{suit}
|
||||
{suit}
|
||||
{suit}{suit}{suit}
|
||||
{suit} {value}{suit}", value=c.value, suit=c.suit)
|
||||
},
|
||||
card_stuffs::Value::Four => {
|
||||
format!(
|
||||
"{value}{suit}
|
||||
|
||||
{suit}{suit} {suit}{suit}
|
||||
|
||||
|
||||
|
||||
{suit}{suit} {suit}{suit}
|
||||
|
||||
{value}{suit}", value=c.value, suit=c.suit)
|
||||
},
|
||||
card_stuffs::Value::Five => {
|
||||
format!(
|
||||
"{value}{suit}
|
||||
|
||||
{suit}{suit} {suit}{suit}
|
||||
|
||||
{suit}{suit}
|
||||
|
||||
{suit}{suit} {suit}{suit}
|
||||
|
||||
{value}{suit}", value=c.value, suit=c.suit)
|
||||
},
|
||||
card_stuffs::Value::Six => {
|
||||
/*
|
||||
XX
|
||||
|
||||
XX XX
|
||||
|
||||
XX XX
|
||||
|
||||
XX XX
|
||||
|
||||
XX
|
||||
*/
|
||||
format!(
|
||||
"{value}{suit}
|
||||
|
||||
{suit}{suit} {suit}{suit}
|
||||
|
||||
{suit}{suit} {suit}{suit}
|
||||
|
||||
{suit}{suit} {suit}{suit}
|
||||
|
||||
{value}{suit}", value=c.value, suit=c.suit)
|
||||
},
|
||||
card_stuffs::Value::Seven => {
|
||||
/*
|
||||
XX
|
||||
XX XX
|
||||
|
||||
XX
|
||||
|
||||
XX XX
|
||||
|
||||
XX XX
|
||||
XX
|
||||
*/
|
||||
format!(
|
||||
"{value}{suit}
|
||||
{suit}{suit} {suit}{suit}
|
||||
|
||||
{suit}{suit}
|
||||
|
||||
{suit}{suit} {suit}{suit}
|
||||
|
||||
{suit}{suit} {suit}{suit}
|
||||
{value}{suit}", value=c.value, suit=c.suit)
|
||||
},
|
||||
card_stuffs::Value::Eight => {
|
||||
/*
|
||||
XX
|
||||
|
||||
X X
|
||||
X
|
||||
X X
|
||||
X
|
||||
X X
|
||||
|
||||
XX
|
||||
*/
|
||||
format!(
|
||||
"{value}{suit}
|
||||
|
||||
{suit} {suit}
|
||||
{suit}
|
||||
{suit} {suit}
|
||||
{suit}
|
||||
{suit} {suit}
|
||||
|
||||
{value}{suit}", value=c.value, suit=c.suit)
|
||||
},
|
||||
card_stuffs::Value::Nine=> {
|
||||
/*
|
||||
XX
|
||||
X X
|
||||
|
||||
X X
|
||||
X
|
||||
X X
|
||||
|
||||
X X
|
||||
XX
|
||||
*/
|
||||
format!(
|
||||
"{value}{suit}
|
||||
{suit} {suit}
|
||||
|
||||
{suit} {suit}
|
||||
{suit}
|
||||
{suit} {suit}
|
||||
|
||||
{suit} {suit}
|
||||
{value}{suit}", value=c.value, suit=c.suit)
|
||||
},
|
||||
card_stuffs::Value::Ten => {
|
||||
/*
|
||||
XX
|
||||
X X
|
||||
X
|
||||
X X
|
||||
|
||||
X X
|
||||
X
|
||||
X X
|
||||
XX
|
||||
*/
|
||||
format!(
|
||||
"{value}{suit}
|
||||
{suit} {suit}
|
||||
{suit}
|
||||
{suit} {suit}
|
||||
|
||||
{suit} {suit}
|
||||
{suit}
|
||||
{suit} {suit}
|
||||
{value}{suit}", value=c.value, suit=c.suit)
|
||||
},
|
||||
card_stuffs::Value::Jack => {
|
||||
/*
|
||||
XX
|
||||
|
||||
XXXXX
|
||||
X
|
||||
X
|
||||
X X
|
||||
XX
|
||||
|
||||
XX
|
||||
*/
|
||||
format!(
|
||||
"{value}{suit}
|
||||
|
||||
{suit}{suit}{suit}{suit}{suit}
|
||||
{suit}
|
||||
{suit}
|
||||
{suit} {suit}
|
||||
{suit}{suit}
|
||||
|
||||
{value}{suit}", value=c.value, suit=c.suit)
|
||||
},
|
||||
card_stuffs::Value::Queen => {
|
||||
/*
|
||||
XX
|
||||
XXXX
|
||||
X X
|
||||
X X
|
||||
X X
|
||||
X XX
|
||||
XXXXX
|
||||
X
|
||||
XX
|
||||
*/
|
||||
format!(
|
||||
"{value}{suit}
|
||||
{suit}{suit}{suit}{suit}
|
||||
{suit} {suit}
|
||||
{suit} {suit}
|
||||
{suit} {suit}
|
||||
{suit} {suit}
|
||||
{suit}{suit}{suit}{suit}{suit}
|
||||
{suit}
|
||||
{value}{suit}", value=c.value, suit=c.suit)
|
||||
},
|
||||
card_stuffs::Value::King => {
|
||||
/*
|
||||
XX
|
||||
X X
|
||||
X XX
|
||||
X XX
|
||||
XX
|
||||
X XX
|
||||
X XX
|
||||
X X
|
||||
XX
|
||||
*/
|
||||
format!(
|
||||
"{value}{suit}
|
||||
{suit} {suit}
|
||||
{suit} {suit}{suit}
|
||||
{suit} {suit}{suit}
|
||||
{suit}{suit}
|
||||
{suit} {suit}{suit}
|
||||
{suit} {suit}{suit}
|
||||
{suit} {suit}
|
||||
{value}{suit}", value=c.value, suit=c.suit)
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user