我一直在試圖讓這款Sudoku遊戲能夠正常工作,而且我仍然失敗了一些單獨的功能。所有這些遊戲一起工作,但是當我通過「autograder」運行它時,一些測試用例失敗。 目前,我陷入以下函數placeValue失敗。我確實得到了我得到的輸出與正確的輸出,但是我很困惑。究竟是怎麼回事?仍然失敗的功能,不知道爲什麼...測試用例運行的想法?
編輯:我不知道他們對這個函數做了什麼輸入/調用。
會發生什麼是「無效的行」每placeValue電話後輸出,我找不到爲什麼..
這裏是輸出(礦+正確的),如果它是在所有有用的:http://pastebin.com/Wd3P3nDA
這裏是placeValue了,下面是getCoords是placeValue調用..
void placeValue(Square board[BOARD_SIZE][BOARD_SIZE])
{
int x,y,value;
if(getCoords(x,y))
{
cin>>value;
if(board[x][y].permanent)
{
cout<< endl << "That location cannot be changed";
}
else if(!(value>=1 && value<=9))
{
cout << "Invalid number"<< endl;
clearInput();
}
else if(validMove(board, x, y, value))
{
board[x][y].number=value;
}
}
}
bool getCoords(int & x, int & y)
{
char row;
y=0;
cin>>row>>y;
x = static_cast<int>(toupper(row));
if (isalpha(row) && (x >= 'A' && x <= 'I') && y >= 1 && y <= 9)
{
x = x - 'A'; // converts x from a letter to corresponding index in matrix
y = y - 1; // converts y to corresponding index in matrix
return (true);
}
else if (!(x >= 'A' && x <= 'I'))
{
cout<<"Invalid row"<<endl;
clearInput();
return false;
}
else
{
cout<<"Invalid column"<<endl;
clearInput();
return false;
}
}
哪個是autograder?這是一個像SPOJ這樣的在線裁判嗎?也許你打印的空白或空行比需要更多。或者你的輸出不會在每個地方都以換行符結束。 – 2010-04-06 17:04:17
它的任何部門用來檢查程序輸出。如果他們的程序輸出與我的不匹配,則表示該函數失敗 – codefail 2010-04-06 17:05:32
clearInput()方法在做什麼?你可以粘貼它。 – 2010-04-06 17:09:28