C#棋盘游戏int二维数组映射为X/O空格格式化输出实现问题
你只需要在输出单元格内容时,将int类型的数值映射为对应的显示字符即可,修改后的DisplayBoard方法代码如下:
// 确认类中已定义棋盘大小常量,未定义的话可以在类内添加这行 // const int BOARD_SIZE = 8; static void DisplayBoard(int[,] board) { Console.Write(" "); for (int i = 0; i < BOARD_SIZE; ++i) { Console.Write(" {0} ", i); } Console.WriteLine(); Console.WriteLine(" ---------------------------------"); for (int row = 0; row < BOARD_SIZE; row++) { Console.Write(" {0} |",row); for (int col = 0; col < BOARD_SIZE; ++col) { // 新增数值到显示字符的映射逻辑 char displayChar = board[row, col] switch { 0 => ' ', 1 => 'X', 2 => 'O', _ => ' ' // 异常值默认显示空格 }; Console.Write(" {0} |", displayChar); } Console.WriteLine(); Console.WriteLine(" ---------------------------------"); } Console.WriteLine(); }
如果你使用的是低版本C#不支持switch表达式,也可以用三元运算符替换映射部分:
char displayChar = board[row, col] == 1 ? 'X' : board[row, col] == 2 ? 'O' : ' ';
修改后运行即可实现0显示为空格、1显示为X、2显示为O的棋盘效果,原有行列号、边框的布局逻辑不会受影响。
内容的提问来源于stack exchange,提问作者Bryce
相关产品推荐
相关产品推荐

