C++ C++;2d字符数组不正确比较

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() { 对于

我正在创建一个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()
{
对于(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;
}