add constrictor mode
This commit is contained in:
parent
6bcce03d2a
commit
075a08a78c
@ -109,6 +109,7 @@ pub fn get_move(game: &Game, turn: i32, board: &Board, you: &Battlesnake) -> Opt
|
|||||||
turn,
|
turn,
|
||||||
game.ruleset.settings.food_spawn_chance,
|
game.ruleset.settings.food_spawn_chance,
|
||||||
game.ruleset.settings.minimum_food,
|
game.ruleset.settings.minimum_food,
|
||||||
|
game.ruleset.name == "constrictor",
|
||||||
);
|
);
|
||||||
let possible_actions = board.possible_actions().get(&game_info.my_token).cloned()?;
|
let possible_actions = board.possible_actions().get(&game_info.my_token).cloned()?;
|
||||||
if possible_actions.len() == 1 {
|
if possible_actions.len() == 1 {
|
||||||
|
@ -46,6 +46,9 @@ pub struct Board {
|
|||||||
min_food: u8,
|
min_food: u8,
|
||||||
/// Alive snakes
|
/// Alive snakes
|
||||||
snakes: BTreeMap<SnakeToken, Battlesnake>,
|
snakes: BTreeMap<SnakeToken, Battlesnake>,
|
||||||
|
/// True when playing constrictor mode. In this mode the snakes don't loose health and grow
|
||||||
|
/// every turn
|
||||||
|
constrictor: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Board {
|
impl Board {
|
||||||
@ -55,6 +58,7 @@ impl Board {
|
|||||||
turn: i32,
|
turn: i32,
|
||||||
food_chance: u8,
|
food_chance: u8,
|
||||||
min_food: u8,
|
min_food: u8,
|
||||||
|
constrictor: bool,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
let width = board.width;
|
let width = board.width;
|
||||||
debug_assert!(width > 0);
|
debug_assert!(width > 0);
|
||||||
@ -78,6 +82,7 @@ impl Board {
|
|||||||
food_chance,
|
food_chance,
|
||||||
min_food,
|
min_food,
|
||||||
snakes,
|
snakes,
|
||||||
|
constrictor,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -107,7 +112,7 @@ impl Board {
|
|||||||
// feed snakes
|
// feed snakes
|
||||||
for snake in &mut self.snakes.values_mut() {
|
for snake in &mut self.snakes.values_mut() {
|
||||||
let head = snake.head();
|
let head = snake.head();
|
||||||
if self.food.remove(head) {
|
if self.constrictor || self.food.remove(head) {
|
||||||
snake.health = MAX_HEALTH;
|
snake.health = MAX_HEALTH;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user