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);
|
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 {
|
if cards_in_waste.len() == 0 {
|
||||||
frame.render_widget(
|
frame.render_widget(
|
||||||
empty_pile(),
|
empty_pile(),
|
||||||
@@ -88,21 +88,13 @@ fn deck_widget(cards_in_deck: &Vec<card_stuffs::Card>) -> Paragraph<'static> {
|
|||||||
.border_type(BorderType::Rounded))
|
.border_type(BorderType::Rounded))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fn card_widget<'a>(card: &'a card_stuffs::Card, top: bool, highlight: bool, select: bool) -> Paragraph<'a> {
|
fn card_widget<'a>(card: &'a card_stuffs::Card, top: bool, highlight: bool, select: bool) -> Paragraph<'a> {
|
||||||
if !card.visible {
|
if !card.visible {
|
||||||
return facedown_card(top);
|
return facedown_card(top);
|
||||||
}
|
}
|
||||||
|
|
||||||
let card_image = format!(
|
let card_image = card_paragraph(&card);
|
||||||
"{value}{suit}
|
|
||||||
|
|
||||||
{suit} {suit}
|
|
||||||
|
|
||||||
{suit}
|
|
||||||
|
|
||||||
{suit} {suit}
|
|
||||||
|
|
||||||
{value}{suit}", value=card.value, suit=card.suit);
|
|
||||||
|
|
||||||
let card_style = match card.suit.colour() {
|
let card_style = match card.suit.colour() {
|
||||||
card_stuffs::Colour::Black => Style::new().black().bg(Color::White),
|
card_stuffs::Colour::Black => Style::new().black().bg(Color::White),
|
||||||
@@ -357,3 +349,287 @@ fn main() -> io::Result<()> {
|
|||||||
ratatui::restore();
|
ratatui::restore();
|
||||||
app_result
|
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