コネクト4を作成し、ドロップ機能を実装しようとして、特定の列の一番下の行に追加します。これがボードの初期化です
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";
}
何らかの理由で、このコードはi = 1まで実行され、place [1] [col]を*に設定しますが、これを表示すると、配列の下部に*が表示されるため、place [7] [ col]。
また、これ->最初のcoutの場所と場所は、本来あるべき「-」の出力を私に決して与えません。
int Board::add(int player, int col)
{
char piece;
col--; // 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][col] << endl;
cout << "place - " << place[i][col] << endl;
if(place[i][col] == EMP)
{
cout << "Empty looks like " << place[i][col] << "\ti: " << i << endl;
place[i][col] = piece;
system("pause");
return i;
}else
{
cout << "not EMP - " << place[i][col] << endl;
system("pause");
}
}
return 0;
}