From f7a7d40dede261bc29edf88e8a8d2bfb71c58513 Mon Sep 17 00:00:00 2001 From: Justin Worthe Date: Sat, 1 Sep 2018 20:27:57 +0200 Subject: Added basic heuristic --- src/engine/bitwise_engine.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/engine/bitwise_engine.rs') diff --git a/src/engine/bitwise_engine.rs b/src/engine/bitwise_engine.rs index d54ccc0..75acb7d 100644 --- a/src/engine/bitwise_engine.rs +++ b/src/engine/bitwise_engine.rs @@ -436,4 +436,18 @@ impl Player { } self.firing_tower = (self.firing_tower + 1) % MISSILE_COOLDOWN_STATES; } + + fn any_missile_towers(&self) -> u64 { + self.missile_towers.iter().fold(0, |acc, next| acc | next) + } + + pub fn count_attack_towers_in_row(&self, y: u8) -> u32 { + let mask = 255u64 << (y * SINGLE_MAP_WIDTH); + (self.any_missile_towers() & mask).count_ones() + } + + pub fn count_energy_towers_in_row(&self, y: u8) -> u32 { + let mask = 255u64 << (y * SINGLE_MAP_WIDTH); + (self.energy_towers & mask).count_ones() + } } -- cgit v1.2.3