【发布时间】:2012-01-29 07:50:42
【问题描述】:
我有一个 2D 数组,用作国际象棋游戏的棋盘。我希望用户输入在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] 交互,这样就不需要这个函数了。但是,我仍然想知道解决此问题的其他方法。
提前感谢您的回复。
【问题讨论】:
标签: c++ switch-statement case