使用数组

Max*_*rai 2 c++ arrays

我正在用c ++写一些游戏.问题在于数组.它总是显示带有点(空白部分)的"桌面".需要注释的代码如下:

void showDesk(int someArray[][3])
{
    for(int i = 0; i < 3 ;i++)
    {
        for (int j = 0; j < 3; j++)
        {
            if(someArray [i][j] == 0)      cout << ".";
            else if (someArray[i][j] == 1) cout << "x";
            else if (someArray[i][j] == 2) cout << "o";
        }
        cout<<"\n";
    }
}

void newDesk (int someArray[][3])
{
    for (int i = 0; i < 3; i++)
        for (int j = 0; j < 3; j++)
            someArray [i][j] = 0;
}

bool empty(int someArray[][3], int x, int y)
{
    if (someArray[x][y] == 0)
        return true;       // It returns true
    else
        return false;
}

void setMark(int someArray[][3],int x,int y,int mark)
{
    if (empty(someArray,x,y))
        someArray [x][y] == mark; // But this never calls!
}

int main(int argc, char** argv) {
   int x,y;
   int mark;

   int someArray [3][3];

   newDesk(someArray);
   showDesk(someArray);
   cout << "------------------\n";

   while (true)
   {
       cout<< "put x,y\n";
       cin >> x>>y;

       cout << "put mark\n";
       cin >> mark;

       setMark(someArray,x,y,mark);
       showDesk(someArray);
   }
       return 0;
}
Run Code Online (Sandbox Code Playgroud)

Soa*_*Box 6

==是比较,=是作业.

你的路线:

someArray [x][y] == mark;
Run Code Online (Sandbox Code Playgroud)

什么也没做.它应该是:

someArray [x][y] = mark;
Run Code Online (Sandbox Code Playgroud)