summaryrefslogtreecommitdiff
path: root/src/engine/bitwise_engine.rs
diff options
context:
space:
mode:
authorJustin Worthe <justin@worthe-it.co.za>2018-09-01 20:27:57 +0200
committerJustin Worthe <justin@worthe-it.co.za>2018-09-01 20:27:57 +0200
commitf7a7d40dede261bc29edf88e8a8d2bfb71c58513 (patch)
treeb062cfb04efc462d3250879988559d915a99d636 /src/engine/bitwise_engine.rs
parent95ab438eb33e67c47fb9371f3294e44dcc9e163e (diff)
Added basic heuristic
Diffstat (limited to 'src/engine/bitwise_engine.rs')
-rw-r--r--src/engine/bitwise_engine.rs14
1 files changed, 14 insertions, 0 deletions
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()
+ }
}