c++ - 如何将 "A1"样式的行+列规范作为输入?

标签 c++ multidimensional-array input ascii tic-tac-toe

我正在用 C++ 编写 TicTacToe 游戏。我使用二维字符数组将每个玩家的棋子输入到一个正方形中。但是,对于输入,我要求用户输入 A1,这将是 board[0][0] 和游戏板的左上角。如何允许用户输入 A1 但仍允许其为 board[0][0] 而无需硬编码?此外,用户还可以确定电路板尺寸。最小:3x3,最大:13x16。

最佳答案

(假设棋盘为 3x3,或最多 9x9)

从用户处获取两个字符,确保第一个是大写字母,第二个是数字,并且它们在正确的范围内。

请注意 - 在您可能使用的大多数平台上 - 如果字符变量 c 的值为 'A', 'B''C' 则表达式 c - 'A' 的值为 012,您可以将其用作索引。不过,正如 @SomeProgrammerDude 所指出的那样,它并不是 100% 可移植的代码。

...如果板更大,您可能必须允许列和行的多字符规范,并适本地解析它们。当然,c - 'A' 索引最多只能工作到 'Z'

关于c++ - 如何将 "A1"样式的行+列规范作为输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42055919/

相关文章:

python - 在 Python 中更新和创建多维字典

c - 将数组传递给 C 中的函数

c - 无法从 C 中的 argv[1] 获取文件名

c++ - 如何在 3D 中绕 Z 轴旋转

C++11 智能指针用例

c++ - 我可以将二维数组视为连续的一维数组吗?

c++ - 去除空格 (C++)

android - 如何创建一个 "type along"风格的界面?

c++ - EDSDK 回调不工作

c++ - 如何在不将内部类定义放入父类的情况下创建内部类?