#ifndef PLAYER_H
#define PLAYER_H

typedef enum {
    COOPERATE,
    CONFLICT,
} reaction_t;

class Player {
  public:
    /* Gathered points during the game are stored internally
     */
    long points = 0;     
    /* This is for logging the game
     */
    const char * name;
    /* Called before facing a new opponent
     */
    virtual void new_game()                                      = 0;
    /* Called during a match;
     *  the return value is your response
     */
    virtual reaction_t play()                                    = 0;
    /* Called after the match;
     *  the argument signals what your opponent played;
     *  you may use/store this information as you wish
     */
    virtual void push_result(reaction_t opponents_last_reaction) = 0;
};

#endif
