diff --git a/src/SnakePkg/Apple.java b/src/SnakePkg/Apple.java index d433086..039d886 100755 --- a/src/SnakePkg/Apple.java +++ b/src/SnakePkg/Apple.java @@ -3,19 +3,35 @@ package SnakePkg; import java.lang.Math; /** - * A class to represent an Apple in the Board + * @class Apple + * @brief Represent an Apple in the Board. + * + * Apples are part of the elements we place on the board. + * Each apple have a point contribution to the user and can be eaten once + * The point system is algebraic in order to simplify calculation. + * * @author Christos Choutouridis 8997 + * @email cchoutou@ece.auth.gr */ public class Apple { /** @name Constructors */ /** @{ */ - /** Default ctor */ + /** + * A Default, doing nothing constructor + * @note We don't use this constructor + */ Apple () { appleId = appleTileId= 0; color = ""; points = 0; } - /** Main ctor */ + /** + * The main constructor + * @param appleId The id of the apple + * @param appleTileId The tile where the apples is placed + * @param color The color of the apple + * @param points The points the apple is adding or subtracking from user + */ Apple (int appleId, int appleTileId, String color, int points) { this.appleId = appleId; this.appleTileId = appleTileId; @@ -23,7 +39,7 @@ public class Apple { this.points = points; } /** Copy constructor - * @note We don't use clone as long as we don't inherit Cloneable iface + * @param a The apple we want to copy */ Apple (Apple a) { appleId = a.getAppleId (); @@ -49,7 +65,7 @@ public class Apple { * @arg Otherwise zero */ void setColor (String color) { - this.color = color; + this.color = color.toLowerCase(); if (color == "red") points = Math.abs(points); else if (color == "black") points = -Math.abs(points); else points = 0; @@ -62,27 +78,25 @@ public class Apple { } /** @} */ - /** @name Data members (private) */ + /** @name Data members */ /** @{ */ - private int appleId; //!< Apples's ID - private int appleTileId; //!< Apple's tile location - private String color; //!< Apple's color - /**^ - * @note - * This way of representing color is not preferable by the author. - * An enum Color { red, black } would be better and far less error prone - * In order to support this style we have to strict the color names to - * lower case letters. We also update the points sign to make thinks easier. - * @see setColor - */ - private int points; //!< The points added (algebraically) to the user + private int appleId; /**< Apples's ID */ + private int appleTileId; /**< Apple's tile location */ + private String color; + /**< Apple's color + * @note + * This way of representing color is not preferable by the @ref author + * An
+       *    enum Color {
+       *       red, black
+       *    }
+ * would be better and far less error prone. + * In order to support this style of color encoding we have to strict the + * color names to lower case letters and also convert user input. + * We also update the points sign to make calculations easier. + * @see setColor + */ + private int points; /**< The points added (algebraically) to the user */ /** @} */ } - -//class BadColor extends Exception { -// // default constructor -// BadColor() { } -// // parametrized constructor -// BadColor (String str) { super(str); } -//}