pneuma/src/battlesnake.rs

50 lines
1.3 KiB
Rust

#[derive(Default, Debug, Clone, PartialEq, serde_derive::Serialize, serde_derive::Deserialize)]
pub struct MoveResponse {
#[serde(rename = "move")]
pub move_field: String,
}
#[derive(Default, Debug, Clone, PartialEq, serde_derive::Serialize, serde_derive::Deserialize)]
pub struct StartResponse {
pub color: String,
#[serde(rename = "HeadType")]
pub head_type: String,
#[serde(rename = "TailType")]
pub tail_type: String,
}
#[derive(Default, Debug, Clone, PartialEq, serde_derive::Serialize, serde_derive::Deserialize)]
pub struct SnakeRequest {
pub game: Game,
pub turn: i64,
pub board: Board,
pub you: Snake,
}
#[derive(Default, Debug, Clone, PartialEq, serde_derive::Serialize, serde_derive::Deserialize)]
pub struct Game {
pub id: String,
}
#[derive(Default, Debug, Clone, PartialEq, serde_derive::Serialize, serde_derive::Deserialize)]
pub struct Board {
pub height: usize,
pub width: usize,
pub food: Vec<Coord>,
pub snakes: Vec<Snake>,
}
#[derive(Default, Debug, Clone, PartialEq, serde_derive::Serialize, serde_derive::Deserialize)]
pub struct Coord {
pub x: usize,
pub y: usize,
}
#[derive(Default, Debug, Clone, PartialEq, serde_derive::Serialize, serde_derive::Deserialize)]
pub struct Snake {
pub id: String,
pub name: String,
pub health: usize,
pub body: Vec<Coord>,
}