C++ 纠正Tic Tac Toe牵引功能

C++ 纠正Tic Tac Toe牵引功能,c++,turbo-c++,C++,Turbo C++,我正在制作一个带有半图形界面的多人tic-tac-toe游戏。我已经编写了代码,其中大部分都能正常工作。唯一不能正常工作的部分是draw函数 我知道我使用的是TurboC +,这是一个非常过时的编译器,但是印度的教育系统只遵循Turbc++,所以我必须在其中做我的项目。(最近的大纲被改变为Python而不是C++,但是我碰巧是在最后一批不被教Python的学生中) 问题在result()函数的最后一部分。我找不到它有什么问题。我没有使用图形。h,因为它不在我的教学大纲中 仅结果函数: struc

我正在制作一个带有半图形界面的多人tic-tac-toe游戏。我已经编写了代码,其中大部分都能正常工作。唯一不能正常工作的部分是draw函数

<>我知道我使用的是TurboC +,这是一个非常过时的编译器,但是印度的教育系统只遵循Turbc++,所以我必须在其中做我的项目。(最近的大纲被改变为Python而不是C++,但是我碰巧是在最后一批不被教Python的学生中)

问题在result()函数的最后一部分。我找不到它有什么问题。我没有使用图形。h,因为它不在我的教学大纲中

仅结果函数:

struct mat  //To store the positions and what is present in the 9 boxes
{
 int x,y;char ch;
};

struct xo  //To keep track of the match
{
 int actp,actx,acty;
 mat pos[3][3];
 char flag;

void setup() //To create the boxes/bars
 {
  actp=1,actx=1,acty=1;
  flag=0;
  for(int i=0;i<3;i++)
  {
   for(int j=0;j<3;j++)
   pos[i][j].ch=0;
  }
 }

void result()  //To find the result
 {
  char flage;
  for(int i=0;i<3;i++) //Column win
  {
   if(pos[i][0].ch==pos[i][1].ch&&pos[i][1].ch==pos[i][2].ch)
   flage=pos[i][0].ch;
  }
  for(i=0;i<3;i++) //Row win
  {
   if(pos[0][i].ch==pos[1][i].ch&&pos[1][i].ch==pos[2][i].ch)
   flage=pos[0][i].ch;
  }

  if(pos[0][0].ch==pos[1][1].ch&&pos[1][1].ch==pos[2][2].ch) //Diagonal win
  flage=pos[0][0].ch;

  if(pos[0][2].ch==pos[1][1].ch&&pos[1][1].ch==pos[2][0].ch) //Other diagonal win
  flage=pos[0][2].ch;

  if(flage=='X')flag='1';
  else if(flage=='O')flag='2';
  else flag='0';

  int chk=1;
  for(i=0;i<3;i++)
  {
   for(int j=0;j<3;j++)
   {if(pos[i][j].ch=='0'){chk=0;gotoxy(3,15);cout<<chk;} }//Added cout statement for debugging
  }
  if(flag=='0'&&chk==0)flag='D';//I understand that the condition is supposed to be chk==1,but it works only if I have this condition
 }
}a;
struct mat//存储位置和9个框中的内容
{
int x,y;char ch;
};
struct xo//以跟踪匹配情况
{
int actp、actx、acty;
mat pos[3][3];
字符标志;
void setup()//创建框/条
{
actp=1,actx=1,acty=1;
flag=0;

对于(int i=0;i我已经更正了错误,很快就会详细说明。感谢您的帮助。

欢迎使用堆栈溢出!听起来您可能需要学习如何使用调试器来逐步完成代码。有了一个好的调试器,您可以逐行执行程序,并查看程序偏离预期的地方。如果您需要,这是一个必不可少的工具进一步阅读:为什么你需要一个3x3的位置数组?你似乎把一个简单的游戏变得非常复杂。一个简单的游戏版本对盒子进行编号,并使用一个一维数组。嗯,先生,我想我已经很清楚地提到了是哪条线导致了这个问题。我需要一个带行的3x3数组和列位置,因为该程序是一个高度直观的半图形用户界面。一个3x3的整数数组就足够了(0表示空,1表示“X”,2表示“O”-为了更好的样式,可以使用枚举在代码中明确这些含义)