首先将region 4复制一份,将region 4里面的代码全部注释掉,在region 4 下面粘贴一些刚刚的代码,由上图代码行号可知第一横排与第一竖排的实现代码用了将近100行,但是其中由一半的几乎全部重复的代码,只要有类似的代码就应该将其提取成一个方法;主要重复的就是if-elseif选择结构中的代码,唯一可变的就是下标 i ,所以定义一个方法GetGraph()其参数就是整形 i ,返回值是字符串类型,使用此方法,通过方法内部的处理后返回当前数组下标中对应值的图案,其代码实现如下
在行号为447 str="><";上面添加一句Console.ForegroundColor = ConsoleColor.Magenta;
提取方法的截图都带有行号,可以根据行号查看其代码;显示对应位置图案的方法已提取好,现在使用该方法重新绘制地图
开始打印第二横排,这个横排需要使用for循环的另一种形式(倒着输出),之前就说过第二横排是从右到左输出,其循环下标为35-64,需要倒着打印输出;第二竖排其循环下标为65-59;第三横排其循环下标为70-99;代码实现如下
注意:
1)横排打印输出使用Console.Write();方法,竖排打印输出使用Console.WriteLine();方法,
2)第一与第三横排除了下标其他一样,第二横排需要倒着打印输出
3)竖排打印输出前必须先换行;第一竖排先打印29个全角空格
使用提取的方法,非常方便,不用再编写大段的几乎重复的代码,即使使用复制粘贴,使用提取的方法便于以后扩展与维护,至此打印输出整个地图如下
下一步就是玩家A/B通过掷骰子,在飞行棋上行走