如何将 "A1" 样式的行+列规范作为输入?
How do I take in "A1"-style row+column specifications as input?
我正在用 C++ 编写 TicTacToe 游戏。我正在使用二维字符数组将每个玩家的棋子输入到一个正方形中。但是,对于输入,我要求用户输入 A1,这将是 board[0][0] 和游戏板的左上角。我如何允许用户输入 A1 但仍然允许它是 board[0][0] 而无需硬编码?此外,用户可以确定电路板尺寸。最小:3x3,最大:13x16。
(假设棋盘是3x3,最多9x9)
从用户那里获取两个字符,确保第一个是大写字母,第二个是数字,并且它们在正确的范围内。
请注意 - 在您可能使用的大多数平台上 - 如果字符变量 c
的值为 'A'
、'B'
或 'C'
,则表达式c - 'A'
的值为 0
、1
或 2
,您可以将其用作索引。不过,正如@SomeProgrammerDude 指出的那样,它不是 100% 可移植的代码。
...如果电路板较大,您可能必须允许 multiple-character 指定列和行,并适当地解析它们。当然,c - 'A'
索引只能工作到 'Z'
。
我正在用 C++ 编写 TicTacToe 游戏。我正在使用二维字符数组将每个玩家的棋子输入到一个正方形中。但是,对于输入,我要求用户输入 A1,这将是 board[0][0] 和游戏板的左上角。我如何允许用户输入 A1 但仍然允许它是 board[0][0] 而无需硬编码?此外,用户可以确定电路板尺寸。最小:3x3,最大:13x16。
(假设棋盘是3x3,最多9x9)
从用户那里获取两个字符,确保第一个是大写字母,第二个是数字,并且它们在正确的范围内。
请注意 - 在您可能使用的大多数平台上 - 如果字符变量 c
的值为 'A'
、'B'
或 'C'
,则表达式c - 'A'
的值为 0
、1
或 2
,您可以将其用作索引。不过,正如@SomeProgrammerDude 指出的那样,它不是 100% 可移植的代码。
...如果电路板较大,您可能必须允许 multiple-character 指定列和行,并适当地解析它们。当然,c - 'A'
索引只能工作到 'Z'
。