#include #include #include #include #include #include using std::cout; using std::cin; using std::endl; using std::string; using std::vector; enum Direction { None, Left, Right, Up, Down }; enum Controller_t {PC , User}; //Global Variables: char*board; int Height, Width; //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //Classes - Prototypes //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ class board_t; class peg_t; //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //Classes Decleratios //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ class peg_t { private: bool Moving; Controller_t controller; public: char Peg; peg_t (char,bool,Controller_t); Direction Move; }; class board_t { private: void SetBoard(int,int); public: void SetValues(int, int); void PrintBoard(); friend class peg_t; }Board; //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //Class Functions: //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //PEG_T_FUNCTIONS: peg_t::peg_t(const char a, bool b, Controller_t c) { Peg = a; Moving = b; controller = c; } //BOARD_T_FUNCTIONS: void board_t::SetValues(int a, int b) { SetBoard(a,b); } void board_t::SetBoard(int a, int b) { board = new char [a*b]; for (int i = 0; i < a; i++) { for (int j = 0;j> Height; if (Height > 8) Height = 8; if (Height < 5) Height = 5; cout << "Width: "; cin >> Width; if (Width > 8) Width = 8; if (Width < 5) Width = 5; Board.SetValues(Height,Width); int playh = 1, playw = 1; board [ (Height*Width) - 1 ] = Treasure.Peg; DrawLine('*'); cout << "The target of the game is to reach the Treasure [T] without coming in contact with a Trap [O] or an Enemy[X]."; cout << "The character is controlled by W,S,A & D, that alllow the character to move Up, Down, Left and Right respectively\n"; DrawLine ('*'); cout << endl; while (true) { //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //board[ (Row-1) * Width + (Column-1) ] = CHARACTER //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ board[ (playh-1) * (Width) + (playw-1)] = Hero.Peg; Board.PrintBoard(); if (board [(Height*Width)-1] != Treasure.Peg) { cout << "Congratulations. You have won the Game!!!"; break; } cout << "In What direction do you want to move: "; cin >> Move; cin.sync(); switch (Move) { case 'W': case 'w': Hero.Move = Up; break; case 'S': case 's': Hero.Move = Down; break; case 'A': case 'a': Hero.Move = Left; break; case 'D': case 'd': Hero.Move = Right; break; } switch (Hero.Move) { case Up: if (playh != 1) { board[ (playh-1) * Width + (playw-1)] = '.'; playh -= 1; } break; case Down: if (playh != Height) { board[ (playh-1) * Width + (playw-1)] = '.'; playh += 1; } break; case Left: if (playw != 1) { board[ (playh-1) * Width + (playw-1)] = '.'; playw -= 1; } break; case Right: if (playw != Width) { board[ (playh-1) * Width + (playw-1)] = '.'; playw += 1; } break; } DrawLine('-'); } cout << endl << endl; DrawLine ('='); cout << endl; cout << "Press ENTER/RETURN to Exit . . ."; cin.sync(); cin.get(); return 0; }