C#游戏开发:编写函数批量输出Dictionary键值对
解决方案
你可以编写一个专用的打印函数,通过遍历字典的键分组自动生成输出,彻底替代冗余的手动代码。以下是具体实现:
1. 添加打印函数
在Program类中新增一个静态方法,按你需要的格式输出字典内容:
static void PrintBoard(Dictionary<string, string> board) { // 定义行前缀:a、b、c、d var rowPrefixes = new[] { "a", "b", "c", "d" }; foreach (var prefix in rowPrefixes) { // 打印当前行的四个值 for (int i = 1; i <= 4; i++) { string key = $"{prefix}{i}"; Console.Write($"{board[key]} "); } // 打印当前行的键标签(修正了你原代码中b行的笔误) Console.WriteLine($" {prefix}1 {prefix}2 {prefix}3 {prefix}4"); } }
2. 替换手动输出代码
在Main方法里,把原来一堆Console.Write的代码删掉,直接调用这个函数:
// 替代所有手动输出的代码 PrintBoard(rutor);
3. 在while循环中使用
如果要在循环里重复打印最新状态,只需要在循环体内调用函数即可,字典值更新后会自动输出最新内容:
while (true) { // 这里添加你的游戏逻辑,修改字典中的值 // ... // 可选:清屏后重新打印,避免输出堆积 Console.Clear(); // 打印当前棋盘状态 PrintBoard(rutor); // 这里添加循环退出条件 // ... }
额外说明
- 函数通过自动生成键的方式,避免了手动逐个写键的冗余,后续如果要扩展棋盘(比如加e行、5列),只需要修改
rowPrefixes数组和数字循环范围就行 - 修正了你原代码中b行标签的笔误(原代码写的是
b1 b1 b3 b3,应该是b1 b2 b3 b4)
内容的提问来源于stack exchange,提问作者21sili
相关产品推荐
相关产品推荐

