hive/engine/game/
player.rs

1use serde::{Deserialize, Serialize};
2
3use crate::engine::grid::piece::{Piece, PieceColor};
4
5#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
6pub struct Player {
7  pub color: PieceColor,
8  pub pieces: Vec<Piece>,
9  pub is_queen_played: bool,
10}
11
12impl Player {
13  pub fn white() -> Player {
14    Player {
15      pieces: vec![
16        Piece::queen_bee().white(),
17        Piece::spider().white(),
18        Piece::spider().white(),
19        Piece::beetle().white(),
20        Piece::beetle().white(),
21        Piece::grasshopper().white(),
22        Piece::grasshopper().white(),
23        Piece::grasshopper().white(),
24        Piece::soldier_ant().white(),
25        Piece::soldier_ant().white(),
26        Piece::soldier_ant().white(),
27        Piece::mosquito().white(),
28        Piece::ladybug().white(),
29      ],
30      color: PieceColor::WHITE,
31      is_queen_played: false,
32    }
33  }
34
35  pub fn black() -> Player {
36    Player {
37      pieces: vec![
38        Piece::queen_bee().black(),
39        Piece::spider().black(),
40        Piece::spider().black(),
41        Piece::beetle().black(),
42        Piece::beetle().black(),
43        Piece::grasshopper().black(),
44        Piece::grasshopper().black(),
45        Piece::grasshopper().black(),
46        Piece::soldier_ant().black(),
47        Piece::soldier_ant().black(),
48        Piece::soldier_ant().black(),
49        Piece::mosquito().black(),
50        Piece::ladybug().black(),
51      ],
52      color: PieceColor::BLACK,
53      is_queen_played: false,
54    }
55  }
56}