2024-04-05 22:38:41 -04:00
|
|
|
use serde_json::Result;
|
2024-04-12 02:04:58 -04:00
|
|
|
use std::fs;
|
2024-04-05 22:38:41 -04:00
|
|
|
|
2024-04-09 04:51:30 -04:00
|
|
|
#[allow(non_snake_case)]
|
|
|
|
pub mod CAHd_game;
|
|
|
|
use crate::CAHd_game::*;
|
2024-04-05 22:38:41 -04:00
|
|
|
|
2024-04-06 22:38:00 -04:00
|
|
|
/// Parse json for card data
|
2024-04-05 22:38:41 -04:00
|
|
|
fn load_json(path: &str) -> Result<Vec<CAHCardSet>> {
|
|
|
|
let data: String = fs::read_to_string(path).expect("Error reading file");
|
|
|
|
let jayson: Vec<CAHCardSet> = serde_json::from_str(&data)?;
|
|
|
|
|
|
|
|
Ok(jayson)
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() -> Result<()> {
|
2024-04-06 22:38:00 -04:00
|
|
|
// choose decks
|
2024-04-05 22:38:41 -04:00
|
|
|
let cards_input_path: &str = "data/cah-cards-full.json";
|
2024-04-12 18:23:33 -04:00
|
|
|
|
|
|
|
// TODO: this should be a master card database and pointers
|
|
|
|
// to the cards should be passed to the game instead of actual cards
|
2024-04-12 02:04:58 -04:00
|
|
|
let chosen_packs: Vec<CAHCardSet> = load_json(cards_input_path)?;
|
2024-04-12 18:23:33 -04:00
|
|
|
println!("{}", &chosen_packs.len());
|
2024-04-05 22:38:41 -04:00
|
|
|
|
2024-04-12 02:04:58 -04:00
|
|
|
let test_player0 = CAHPlayer {
|
2024-04-12 18:35:13 -04:00
|
|
|
player_name: "Adam".to_string(),
|
|
|
|
role: PlayerRole::Host,
|
|
|
|
white: vec![],
|
|
|
|
black: vec![],
|
|
|
|
};
|
2024-04-12 02:04:58 -04:00
|
|
|
|
|
|
|
let test_player1 = CAHPlayer {
|
2024-04-12 18:35:13 -04:00
|
|
|
player_name: "Ferris".to_string(),
|
|
|
|
role: PlayerRole::Player,
|
|
|
|
white: vec![],
|
|
|
|
black: vec![],
|
|
|
|
};
|
2024-04-12 02:04:58 -04:00
|
|
|
|
|
|
|
// make some games
|
2024-04-12 18:23:33 -04:00
|
|
|
// use hashmap?
|
2024-04-12 02:04:58 -04:00
|
|
|
let mut games: Vec<CAHGame> = vec![];
|
|
|
|
|
|
|
|
// create game with/for player 0
|
2024-04-12 18:35:13 -04:00
|
|
|
let test_game0 = NewGameRequest {
|
|
|
|
name: "Test0".to_string(),
|
|
|
|
host: test_player0,
|
|
|
|
packs: chosen_packs,
|
|
|
|
};
|
|
|
|
|
2024-04-12 02:04:58 -04:00
|
|
|
games.push(CAHGame::new(
|
2024-04-12 18:35:13 -04:00
|
|
|
test_game0
|
2024-04-12 02:04:58 -04:00
|
|
|
)?);
|
|
|
|
|
2024-04-12 18:23:33 -04:00
|
|
|
// a new game request struct but this player is a player
|
|
|
|
games[0].create_player(test_player1)?;
|
2024-04-10 04:18:31 -04:00
|
|
|
|
2024-04-12 02:35:35 -04:00
|
|
|
// start round
|
2024-04-12 18:23:33 -04:00
|
|
|
games[0].game_start()?;
|
2024-04-05 22:38:41 -04:00
|
|
|
Ok(())
|
|
|
|
}
|