C++ C++;2d字符数组不正确比较
我正在创建一个connectfour,试图实现drop功能,将其添加到特定列的最低行。这是董事会的起始日期C++ C++;2d字符数组不正确比较,c++,char,multidimensional-array,C++,Char,Multidimensional Array,我正在创建一个connectfour,试图实现drop功能,将其添加到特定列的最低行。这是董事会的起始日期 Board::Board() { for(int i=0;i<8;i++) for(int j=0;j<8;j++) place[i][j] = EMP; // EMP is a const char = '-' cout << "Initalized.\n"; } Board::Board() { 对于
Board::Board()
{
for(int i=0;i<8;i++)
for(int j=0;j<8;j++)
place[i][j] = EMP; // EMP is a const char = '-'
cout << "Initalized.\n";
}
Board::Board()
{
对于(inti=0;i一些想法:
不要delete place
,您从未使用new
获取内存。
像这样使用条件运算符更为惯用:piece=(player==1)?P1:P2;
初始化、添加和显示片段的代码在这里非常有效:
您可以更具体地说明您的问题,或者显示一个小得多的代码段来演示您看到的问题吗?您可以将一个字符传递到int函数中,该函数将数字转换为一个char变量(给您带来垃圾)。我重新编写了一点函数,似乎一切正常
int Board::add(int player, char col)
{
char piece;
int Num;
Num = atoi(&col);
cout << Num << endl << endl;
Num--; // Dealing with array starting at 0, not 1
(player==1) ? piece = P1: piece = P2; // Character defining players piece
int i;
for (i = 7; i >= 0; i--)
{
cout << "this - " << this->place[i][Num] << endl;
cout << "place - " << place[i][Num] << endl;
if(place[i][Num] == EMP)
{
cout << "Empty looks like " << place[i][Num] << "\ti: " << i << endl;
place[i][Num] = piece;
return i;
}else
{
cout << "not EMP - " << place[i][Num] << endl;
}
system("pause");
}
return 0;
}
int-Board::添加(int-player,char-col)
{
炭片;
int-Num;
Num=原子(&col);
难道你的问题很模糊“打印到1,然后做什么?”这是一个问题的大量代码。难道你不能至少减少一点代码,让一些人能够正确地评估它。其次,你有一个函数粘贴了多次,这确实让读者感到困惑。花一些时间解释你的问题,你肯定会得到一个答案,清楚地说明什么不起作用,什么是预期的。你把它弄得太乱了。我甚至不能找出你的代码出了什么问题。不寻常的语法,通常人们会写:char-piece=(player==1)?P1:P2;
int Board::add(int player, char col)
{
char piece;
int Num;
Num = atoi(&col);
cout << Num << endl << endl;
Num--; // Dealing with array starting at 0, not 1
(player==1) ? piece = P1: piece = P2; // Character defining players piece
int i;
for (i = 7; i >= 0; i--)
{
cout << "this - " << this->place[i][Num] << endl;
cout << "place - " << place[i][Num] << endl;
if(place[i][Num] == EMP)
{
cout << "Empty looks like " << place[i][Num] << "\ti: " << i << endl;
place[i][Num] = piece;
return i;
}else
{
cout << "not EMP - " << place[i][Num] << endl;
}
system("pause");
}
return 0;
}