954,535 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

connect four program wont display anything

my connnect four program will compile but nothing is displayed just a white screen i know that the code is not finished but i just need help making it display what i have so far

#include<u:\C Plus\LVP\gui_top.h>
#include<u:\C Plus\LVP\matrix.h>
//--------------------------------------------------------------------------------
class ButtonClass {
public:
 ButtonClass(String Text, int X1,int Y1, int X2, int Y2);
 void Paint();
 bool IsHit(int x, int y);
private:
 int MyX1, MyY1, MyX2, MyY2;
 String MyText;
};
//--------------------------------------------------------------------------------
ButtonClass::ButtonClass(String Text, int X1, int Y1, int X2, int Y2)
 : MyText(Text), MyX1(X1), MyY1(Y1), MyX2(X2), MyY2(Y2)
{
}
//--------------------------------------------------------------------------------
void ButtonClass::Paint()
{
 SetColor(BLACK);
 SetFillColor(RED);
 FilledRectangle(MyX1, MyY1, MyX2, MyY2);
 gotoxy((MyX1+MyX2)/2, 5+(MyY1+MyY2)/2);
 SetTextColor(BLUE);
 SetTextSize(20);
 SetTextFont("Arial");
 DrawCenteredText(MyText);
}
//--------------------------------------------------------------------------------
bool ButtonClass::IsHit(int x, int y)
{
 return (x>=MyX1&&x<=MyX2&&y>=MyY1&&y<=MyY2);
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
class GridClass {
public:
 GridClass();
 void Paint(matrix<int> Board);
 void MouseClick(matrix<int> Board, int x, int y);
 void InitGrid();
 void Title();
private:
 const int GridDimensionX, GridDimensionY;    // # of Rows/columns in grid
 // Constants for board; must all differ
 const int Empty, Player1, Player2;
   matrix<int> Board(int GridDimensionX, int GridDimensionY, int &Empty);
 int Player, Player1Row, Player1Col, Player2Row, Player2Col;
 bool GameOver;
 int BoxSize;       // Pixels per box
 int LeftMargin;    // Pixels from left
 int TopMargin;    // Pixels from top
 void XYToRowCol(int x, int y, int &Row, int &Col);
 void MarkBox(int Row, int Col, int BoxContents);
 ButtonClass QuitButton;
 ButtonClass RestartButton;
   ButtonClass Column1Button;
};
//--------------------------------------------------------------------------------
GridClass::GridClass()
 : GridDimensionX(10), GridDimensionY(10), Empty(0), Player1(1), Player2(2),
 BoxSize(GetMaxY()/2/GridDimensionX),    // Fill half of y-dimension
 LeftMargin((GetMaxX()-BoxSize*GridDimensionX)/2),
 TopMargin(GetMaxY()/4),
 QuitButton(" I Quit! ",10,10,100,40),
 RestartButton(" Restart ", 100,10, 190,40),
   Column1Button(" Column 1 ",((GetMaxX()-BoxSize*GridDimensionX)/2),((GetMaxY()/4)-40),(((GetMaxX()-BoxSize*GridDimensionX)/2)+90),(((GetMaxY()/4)-40)+5))
{
}
//--------------------------------------------------------------------------------
void GridClass::InitGrid()
/* Post: Grid initialized for a new game */
{
 GameOver=false;
}
//--------------------------------------------------------------------------------
void GridClass::XYToRowCol(int x, int y, int &Row, int &Col)
/* Post: Row and Column corresponding to x, y returned,
 or -1 for if x, y is not on the board          */
{
 int DistFromLeft=x-LeftMargin;
 Col=(DistFromLeft+BoxSize)/BoxSize-1;
 int DistFromTop=y-TopMargin;
 Row=(DistFromTop+BoxSize)/BoxSize-1;
 if(Col<0||Col>=GridDimensionX||Row<0||Row>=GridDimensionX)
      {
   Row=-1;
   Col=-1;
  }
}
//--------------------------------------------------------------------------------
void GridClass::MarkBox(int Row, int Col, int BoxContents)
/* Post: Row, Col box in appropriate color */
{
 SetColor(YELLOW);    // For outline
 SetFillColor(WHITE);
 if (BoxContents==Player1)
  SetFillColor(BLACK);
 else if (BoxContents==Player2)
  SetFillColor(RED);
 FilledRectangle(Col*BoxSize+LeftMargin, Row*BoxSize+TopMargin,
 (Col+1)*BoxSize+LeftMargin,
 (Row+1)*BoxSize+TopMargin);
}
//--------------------------------------------------------------------------------
void GridClass::MouseClick(matrix<int> Board, int x, int y)
{
 int Row, Col;
 if (QuitButton.IsHit(x,y))
 {
  GameOver = true;
  if(MessageBoxYN("Are you sure you want to quit?", "Quit button clicked")==1)
   PostQuitMessage(0);
  else
   InitGrid();
 }   //if QuitButton
 else
  if (RestartButton.IsHit(x,y))
  {
   InitGrid();
   Paint(Board);
  }
  else
  {
   XYToRowCol(x, y, Row, Col);
   if((Row!=-1 && Col!=-1 && Board[Row][Col]!=Player1 && Board[Row][Col]!=Player2 && GameOver==false))
   {
    if ((Board[Row][Col]==Empty)&&(Player=1))
               Board[Row][Col]=Player1;
    else if ((Board[Row][Col]==Empty)&&(Player=2))
             Board[Row][Col]=Player2;
   }    //if invalide move
  else
   MessageBeep(-1);
 }
}
//------------------------------------------------------------------------------
void GridClass :: Title()
{
 SetTextFont("Times New Roman");
 SetTextColor(RED);
 SetTextSize(40);
 gotoxy(GetMaxX()/2, GetMaxY()/10);
 DrawCenteredText("Connect Four");
}
//-------------------------------------------------------------------------------
void GridClass::Paint(matrix<int> Board)
{
 QuitButton.Paint();
 RestartButton.Paint();
   Column1Button.Paint();
 Title();
 SetColor(YELLOW);
 int Row, Col;
 // Draw lines
 for (Col=0; Col<=GridDimensionX; Col++)
  Line(LeftMargin+Col*BoxSize, TopMargin,
  LeftMargin+Col*BoxSize,
  TopMargin+GridDimensionX*BoxSize);
 for (Row=0; Row<=GridDimensionX; Row++)
  Line(LeftMargin, TopMargin+Row*BoxSize,
  LeftMargin+GridDimensionX*BoxSize,
  TopMargin+Row*BoxSize);
 // Color in boxes
 for (Row=0; Row < GridDimensionX; Row++)
  for (Col=0; Col<GridDimensionX; Col++)
   MarkBox(Row,Col,Board[Row][Col]);
 // Display results
 SetTextSize(24);
 if (GameOver==true)
    {
     gotoxy(20,GetMaxY()-100);
   DrawText("Game over!  Score = ");
  }
}
//------------------------------------------------------------------------------
class GuiClass {
 public:
   GuiClass();
   void GuiMouseClick(int x, int y); //Action if mouse click
   void GuiPaint(); //Repaint the entire window
   String Title(); //Return the title for the Window
   private:
   };
   //---------------------------------------------------------------------------
   GuiClass::GuiClass()
   {
   }
   //---------------------------------------------------------------------------
   String GuiClass::Title()
   {
    return ("Connect Four");
   }
   //---------------------------------------------------------------------------
   void GuiClass::GuiMouseClick(int x, int y)
   {
   }
   //---------------------------------------------------------------------------
   void GuiClass::GuiPaint()
   {
   }
   //---------------------------------------------------------------------------
   #include <u:\C PLus\LVP\gui_bot.h>


thanks for your help

luckycharms3657
Newbie Poster
4 posts since Jun 2006
Reputation Points: 10
Solved Threads: 0
 

what operating system and compiler are you using? Some of the code appears to be MS-Windows 32 api functions, but I don't know what the rest is -- gotoxy() is a TurboC MS-DOS function, there is no such thing for MS-Windows GUI programs.

Ancient Dragon
Retired & Loving It
Team Colleague
30,050 posts since Aug 2005
Reputation Points: 5,662
Solved Threads: 2,343
 

its windows xp pro using borland c++

luckycharms3657
Newbie Poster
4 posts since Jun 2006
Reputation Points: 10
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You