天天看点

C#面向过程复习之飞行棋

     学习C#面向过程知识之后,用一个综合性的练习来复习已学的知识点,飞行棋案例就是一个非常给力的C#面向过程典型练习。现在这里分享一个飞行棋制作过程!

     -->制作飞行棋的核心思想是改变位置并重绘地图,即当每一步发生之后,通过改变代码中变量的值,然后重新绘制地图。

     -->第一次学习制作飞行棋和复习制作飞行棋,复习时需要明白C#面向对象的思想,将功能封装成方法,只需在Main方法中调用即可。

     -->制作飞行棋步骤:

     -->第一步:首先应该显示飞行棋界面,这里就可以用一个方法封装起来,因为当重绘地图时需要显示飞行棋界面。

     -->知识点:方法定义、Console.WriteLine();。

     -->第二步:提示玩家输入姓名,也需要封装成方法,用一个数组来存放,判断第一位玩家姓名不能为空;判断第二位玩家姓名不能为空,并且不能与第一位玩家的重名。

     -->知识点:Console.ReadLine();、while循环。

     -->第三步:清空当前页面,重绘地图,显示玩家姓名,以及显示之后地图上格子的功能,由于地图上没法完整显示玩家的姓名,需要先前定义两个字母来代替玩家姓名。

     ----------------定义一个有100个长度的int数组,用来代表100个格子。默认值为0,之后通过修改值来代表特定功,并对特定功能的值赋特定图标。

     ----------------定义一个数组来存放两位玩家的位置并初始化为0。

     ----------------并且要声明一个布尔数组来作为标志位,主要是为暂停功能做辅助,以及定义一个int类型变量来循环玩家轮流掷骰子。

     -->知识点:Console.Clear();、数组定义。

     -->第四步:绘制地图。思路是先将要有特定功能的格子赋特定的int值,然后通过特定的int值来匹配特定图标,并绘制在地图上面。

     ----------------分析如何绘制地图成S形,确定怎么去界定是否要换行和并排输出。注意输入右侧第一列时全角空格等于两个半角空格。

     ----------------地图上的格子需要绘制哪种图标,需要封装成一个方法,通过传参返回一个特定的图标。

     ----------------颜色如何定义:在Console有一个枚举Console.ForegroundColr= ConsoleColor.[颜色值]; ,设定当前颜色,注意用Console.ResetColor改为默认颜色。

     ----------------注意初始时,两位玩家的位置都在第一格,并且当地图格子上面有玩家时需显示玩家的代表字母。

     -->知识点:for循环、ref、、return返回值。

     -->第五步:定义一个方法来判断玩家的位置是否小于0或者大于100,当小于0是复原为0,当大于100时,改为100,并终止这个游戏。

     -->第六步:开始游戏。掷骰子的数通过Random类来产生一个随机数,将值加到玩家位置上,并重绘地图。

     -------------------------------如果玩家与另一玩家在非初始位置相遇,则另一位玩家回到初始位置。

     -------------------------------判断当前位置的值是否是特定功能的值,如是则匹配并处理相应语句代码,并重绘地图。

     -------------------------------注意定义标志位的数组作用是处理暂停功能。

     -->唯一的遗憾是我的飞行棋格子颜色没有成功,请大家指导!

     附上代码飞行棋

     备注:写于2013年5月13日

继续阅读