From 2aad864b58e482afa67ec6a712701ab24e838a8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20W=C3=B6lfer?= Date: Sat, 26 Jul 2025 00:47:46 +0200 Subject: [PATCH] Worked on objectives --- src/main.rs | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index bd3a118..6036a2a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -22,6 +22,7 @@ enum CardField { } #[derive(Debug)] +// There are 60 cards in the base set struct Card { field: [CardField; 5], } @@ -37,9 +38,27 @@ struct Player { struct Board { players: Vec, shop: Shop, - objectives: [Objective; 4], + objectives: [CriteriaCard; 4], } + #[derive(Debug)] -struct Objective {} +struct CriteriaCard { + objective: Objective, + // Points depending on how often the criteria was met + points: Vec, +} + +// There are 12 objectives/criteria in the base set +#[derive(Debug)] +enum Objective { + AllFields, + IconsUsed(Vec), + /// The count of all icons in the vec `.0` combined is exactly `.1` + ExactlyNIcons((Vec, u8)), + Neighbors(Vec<(Icon, Icon)>), + /// Both icons are on one card, but not adjacent + DistantNeighbors(Vec<(Icon, Icon)>), + NInARow(Icon, u8), +} fn main() {}