我有一個二維數組,充當棋盤遊戲的棋盤。我希望用戶輸入在Smith Notation。我的數組設置的方式是,如果用戶說他們想要一塊移動到第8行(從用戶的角度來看最上面一行),那麼它們將與數組中的row[0]
進行交互。所以爲了處理這個問題,我編寫了一個函數,將用戶的輸入轉換爲數組的正確行。然而,它似乎有點笨拙,我想知道具有更多經驗的程序員如何解決這個問題。有沒有更優雅的方式來找到正確的號碼?
int convertToCorrectRow(int row)
{
int newRow;
switch (row) {
case 1:
newRow = 7;
break;
case 2:
newRow = 6;
break;
case 3:
newRow = 5;
break;
case 4:
newRow = 4;
break;
case 5:
newRow = 3;
break;
case 6:
newRow = 2;
break;
case 7:
newRow = 1;
break;
case 8:
newRow = 0;
break;
default:
assert(false);
break;
}
return newRow;
}
我沒覺得有翻轉陣列和反向顯示它給用戶,這樣當用戶與8行交互其實都是與row[7]
陣列中的互動,這將消除該功能的需要。但是,我仍然想知道解決這個問題的其他方法。 預先感謝您的回覆。
DERP。現在我很尷尬。我知道有一個更簡單的方法來做到這一點,但顯然我太笨了,想不起來);謝謝! – 2012-01-29 08:07:12