hive/engine/game/
player.rs1use 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}