Yes, it is the same book, I got it on wednesday, and I'm on page 88. I'm willing to read it as many times as it is necessary, but I also would like to work on stuff while reading you know. Cuz if I just read it and never implement it, I'll never learn.
That's why I'm making this game, and I still can't figure out what is going wrong, here, if you guys want to use the header file also and run it:
#ifndef GAME_H#define GAME_H/* Include libraries and define standard namespace */#include <windows.h>#include <iostream>using namespace std;/* Define Winners */#define NO_WINNER 0#define PLAYER1 1#define PLAYER2 2#define TIE 3/* Define Turns */#define P1TURN 1#define P2TURN 2/* Define Grid */#define X_START 5#define Y_START 5#define BOARD_WDTH 19#define BOARD_HGT 19#define OPEN 32 /* 20 x 20 - OPEN = empty space and 46 = '.' */const int grid[] = { 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46, OPEN, 46,};class GAMEDATA{ public: /* Constructor */ GAMEDATA(); void init(); /* Init game data */ // Data Access *** int getTurn() const { return turn; } int getWinner() const { return winner; } // *** End of Data Access /* Sets a character on board */ void setScreenBuff(int x, int y, char c, bool scrCoords = true); /* Draws grid on screen */ void drawScreen(); /* Gets user input */ void getInput(); void getInput(int x, int y); /* Increments to the next persons turn */ void nextTurn(); /* Figures out who won the game */ void calcWinner(); /* Fills in grid */ void fillIn(int x, int y, int x1, int y1); private: /* The actual board */ CHAR_INFO screen_buff[BOARD_WDTH * BOARD_HGT]; HANDLE out_handle; /* Handle to the "screen" */ HANDLE in_handle; /* Handle to the "keyboard" */ SMALL_RECT scr_rect; /* This rect specifies where on the screen (where in our console window) should we draw the tic-tac-toe board to */ int turn; /* Who's turn is it? */ int winner; /* Who has won? */};#endif
if you compile all 3 together they should run and show the grid, but they never get all 4 inputs like I said before.