summaryrefslogtreecommitdiffstats
path: root/game.h
blob: f3f24de6287dd840901f6c7130cd6b72a0d68556 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#ifndef _GAME_H_
#define _GAME_H_

#include <iostream>
#include <cstdio>
#include <string>
#include <cstdlib>
#include <ctime>
#include <cctype>
#include <limits>

#include "cardpile.h"
#include "user.h"
#include "opponent.h"

#define ANSI_COLOR_RED     "\x1b[31m"
#define ANSI_COLOR_GREEN   "\x1b[32m"
#define ANSI_COLOR_YELLOW  "\x1b[33m"
#define ANSI_COLOR_BLUE    "\x1b[34m"
#define ANSI_COLOR_MAGENTA "\x1b[35m"
#define ANSI_COLOR_CYAN    "\x1b[36m"
#define ANSI_COLOR_RESET   "\x1b[0m"
#define PRINT_COLOR(C, S)  printf("%s%s%s", C, S, ANSI_COLOR_RESET)

using std::cout;
using std::endl;
using std::cin;

class Game : virtual public CardPile, public User, public Opponent
{
    private:

    protected:
        static string *hands[10];

    public:
        Game(void);
        void shufflePile(void);
        void askForNumberOfOpponents(void);
        void repeatGame(bool *);

        /* asks user for a number, param1 = msg, 2 = rangeA, 3 = rangeB */
        int parseInt(string *, int, int);
        int howManyCardsOfSameSuit(Card **);
        bool pairOrBetter(Card **cards);
        int numOfSameCards(Card **);

        void opponentAI(Card **cards);

        /* variables */
        int numOfOpponents;
        int handsPlayed;
        int handsWon;
};

#endif