summaryrefslogtreecommitdiff
path: root/digital/io-hub/src/apbirthday/candles.hh
diff options
context:
space:
mode:
authorJerome Jutteau2013-04-01 23:37:16 +0200
committerJerome Jutteau2013-04-01 23:37:16 +0200
commita952395dac9dfd8ba28a855db8e8618944a57641 (patch)
tree90318ed92b5734a1805a540569dc2ea87fd4ad82 /digital/io-hub/src/apbirthday/candles.hh
parenta03dcf3ba0e07ec702c209cc293ae187f963649f (diff)
digital/io-hub/src/apbirthday: be more c++
Diffstat (limited to 'digital/io-hub/src/apbirthday/candles.hh')
-rw-r--r--digital/io-hub/src/apbirthday/candles.hh60
1 files changed, 28 insertions, 32 deletions
diff --git a/digital/io-hub/src/apbirthday/candles.hh b/digital/io-hub/src/apbirthday/candles.hh
index 5aa917d9..3d953a87 100644
--- a/digital/io-hub/src/apbirthday/candles.hh
+++ b/digital/io-hub/src/apbirthday/candles.hh
@@ -25,12 +25,6 @@
//
// }}}
-#define CANDLE_FAR 8
-#define CANDLE_NEAR 12
-#define CANDLES_NB (CANDLE_NEAR + CANDLE_FAR)
-#define CANDLE_IS_FAR(c) ((c) < CANDLE_FAR)
-#define CANDLE_IS_NEAR(c) ((c) >= CANDLE_FAR)
-
/* The cake is a lie !
-----------------------------------------------------------
@@ -45,38 +39,40 @@
- ______ -
*/
-typedef enum
-{
- CANDLE_UNPUNCHED,
- CANDLE_PUNCHED,
- CANDLE_STATE_NB
-} candle_state_t;
-
-typedef enum
-{
- FLOOR_NEAR = 0,
- FLOOR_FAR = 1,
- CANDLE_FLOOR_NB
-} candle_floor_t;
-
-/* XXX use another common type for colors ? */
-typedef enum
-{
- CANDLE_RED = TEAM_COLOR_RIGHT,
- CANDLE_BLUE = TEAM_COLOR_LEFT,
- CANDLE_WHITE,
- CANDLE_UNKNOWN,
-} candle_color_t;
-
class Candles
{
public:
- candle_state_t state[CANDLES_NB];
- candle_color_t color[CANDLES_NB];
Candles (int calif_mode);
void blow (int candle);
void deduce ();
- int actual_pos[CANDLE_FLOOR_NB];
+ enum State
+ {
+ UNPUNCHED,
+ PUNCHED,
+ };
+ enum Floor
+ {
+ NEAR = 0,
+ FAR = 1,
+ FLOOR_NB
+ };
+ enum Color
+ {
+ RED = TEAM_COLOR_RIGHT,
+ BLUE = TEAM_COLOR_LEFT,
+ WHITE,
+ UNKNOWN,
+ };
+ static bool is_near (int pos);
+ static bool is_far (int pos);
+ private:
+ static const int total_count = 20;
+ static const int near_count = 12;
+ static const int far_count = 8;
+ public:
+ State state[total_count];
+ Color color[total_count];
+ int actual_pos[FLOOR_NB];
};
#endif // candles_hh