From b6f7a202b43c662811d07307ea8a9dfba6a3f870 Mon Sep 17 00:00:00 2001 From: CoCoSol007 Date: Wed, 14 Feb 2024 10:46:32 +0100 Subject: [PATCH] fix fmt --- crates/border-wars/src/hex.rs | 46 ++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/crates/border-wars/src/hex.rs b/crates/border-wars/src/hex.rs index 10c3380..6ce4920 100644 --- a/crates/border-wars/src/hex.rs +++ b/crates/border-wars/src/hex.rs @@ -16,21 +16,22 @@ pub struct HexPosition { impl HexPosition { /// Returns the distance between two [HexPosition] - /// + /// /// # How does it work ? - /// - /// Hexagonal grid using the [cube](https://www.redblobgames.com/grids/hexagons/#coordinates) coordinate system, - /// is like a cube in 2D space. - /// The Manhattan distance between two positions is equal to: the half of the sum of abs(dx) + abs(dy) + abs(dz) - /// + /// + /// Hexagonal grid using the [cube](https://www.redblobgames.com/grids/hexagons/#coordinates) coordinate system, + /// is like a cube in 2D space. + /// The Manhattan distance between two positions is equal to: the half of + /// the sum of abs(dx) + abs(dy) + abs(dz) + /// /// # Example: - /// + /// /// ```no_run /// use border_wars::hex::HexPosition; - /// + /// /// let a = HexPosition { q: 0, r: 0 }; /// let b = HexPosition { q: 1, r: 1 }; - /// + /// /// assert_eq!(a.distance_to(&b), 2.0); /// ``` pub fn distance_to(&self, other: &HexPosition) -> f32 { @@ -43,27 +44,29 @@ impl HexPosition { // dz = |z1 - z2| and z = -q - r let ds = self.q + self.r - other.q - other.r; - // Manhattan distance = (abs(dq) + abs(dr) + abs(ds)) / 2 + // Manhattan distance = (abs(dq) + abs(dr) + abs(ds)) / 2 (dq.abs() + dr.abs() + ds.abs()) as f32 / 2. } - /// Returns all positions within a given `range` from the current HexPosition. + /// Returns all positions within a given `range` from the current + /// HexPosition. + /// + /// This function iterates over the possible q and r values within the + /// specified range and inserts HexPositions into a HashSet, ensuring + /// that each generated position is within the given range from the + /// current position. /// - /// This function iterates over the possible q and r values within the specified range - /// and inserts HexPositions into a HashSet, ensuring that each generated position - /// is within the given range from the current position. - /// /// for more details: https://www.redblobgames.com/grids/hexagons/#range - /// + /// /// # Example: - /// + /// /// ```no_run /// use border_wars::hex::HexPosition; - /// + /// /// let position = HexPosition { q: 0, r: 0 }; - /// + /// /// let positions = position.range(1); - /// + /// /// assert_eq!(positions.len(), 7); /// ``` pub fn range(&self, range: i32) -> HashSet { @@ -75,9 +78,8 @@ impl HexPosition { } result_positions } - } - + impl ops::Add for HexPosition { type Output = HexPosition;