gpt4 book ai didi

c++ - 有没有更优雅的方法来找到正确的数字?

转载 作者:太空狗 更新时间:2023-10-29 23:37:12 24 4
gpt4 key购买 nike

我有一个二维数组,用作国际象棋游戏的棋盘。我希望用户输入在 Smith Notation 中.我的数组设置方式是,如果用户说他们想要一 block 移动到第 8 行或从第 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] 交互,这将消除对这个功能的需要。但是,我仍然想知道解决这个问题的其他方法。预先感谢您的回复。

最佳答案

看起来这可以简化为:

int convertToCorrectRow(int row) {
assert(row > 0 && row <= 8);
return 8 - row;
}

如果 row 来自用户输入而没有进一步验证,我不会使用断言。

关于c++ - 有没有更优雅的方法来找到正确的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9051738/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com