···5555 .health = strength * 5,
5656 };
5757 }
5858+};
5959+6060+// Your trusty weapon. Zap those aliens!
6161+const HeatRay = struct {
6262+ damage: u8,
58635964 // We love this method:
6060- pub fn zap(self: *Alien, damage: u8) void {
6161- self.health -= if (damage >= self.health) self.health else damage;
6565+ pub fn zap(self: *HeatRay, alien: *Alien) void {
6666+ alien.health -= if (self.damage >= alien.health) alien.health else self.damage;
6267 }
6368};
6469···7479 };
75807681 var aliens_alive = aliens.len;
7777- var heat_ray_strength: u8 = 7; // We've been given a heat ray weapon.
8282+ var heat_ray = HeatRay{ .damage = 7 }; // We've been given a heat ray weapon.
78837984 // We'll keep checking to see if we've killed all the aliens yet.
8085 while (aliens_alive > 0) {
···8388 // Loop through every alien...
8489 for (aliens) |*alien| {
85908686- // *** Zap the Alien Here! ***
8787- ???.zap(heat_ray_strength);
9191+ // *** Zap the alien with the heat ray here! ***
9292+ ???.zap(???);
88938994 // If the alien's health is still above 0, it's still alive.
9095 if (alien.health > 0) aliens_alive += 1;