C#总结--骑士飞行棋
来源:互联网 发布:算法导论 原书第3版 编辑:程序博客网 时间:2024/05/29 19:45
前言
经过三天把骑士飞行棋弄完了,刚刚开始接触的时候觉得很困难,但是真正做下来的时候发现没有想象中的那么困难,所以要慢慢改掉先入为主的陋习。
这个小游戏主要分为两部分:(1)绘制地图 (2)玩家在地图中行走
绘制地图
绘制地图主要分为:绘制飞行棋表头;初始化地图;画地图的横行,竖行
1.绘制飞行棋表头:
public static void ShowUI() { Console.WriteLine("*************************************"); Console.WriteLine("* *"); Console.WriteLine("* 终极骑士飞行棋 10.18 *"); Console.WriteLine("* *"); Console.WriteLine("*************************************"); }
这是通过利用最简单的输出代码,将其封装成为一个方法,在画地图的时候直接调用即可。
2.初始化地图
这一步必须首先明确地图上的每个图案是如何出来的,他们之间有什么联系,然后根据他们之间的联系,利用数组来设置每个位置的索引,通过循环的方式来绘制每个位置的图案
int[] luckyturn={6,23,40,55,69,83};//幸运轮盘◎ int[] landMine={5,13,17,33,38,50,64,80,94};//地雷☆ int[] pause={9,27,60,93};//暂停△ int[] timeTunnel={20,25,45,63,72,88,90};//时空隧道卐 for (int i = 0; i < luckyturn.Length ; i++) { //int temp=luckyturn[i ]; Map[luckyturn[i]] = 1; }
3.绘制地图的横行,竖行
首先明确画地图的逻辑方法,先判断玩家是否在一起或者是否在某个坐标上,如果在则画上相应的玩家标识,否则就画改位置原本的图案即可。
画横行和竖行的时候通过for循环根据本行所有的图案的个数调用画地图的逻辑方法来绘制即可,下面举一个例子:
for (int i = 30; i <= 34; i++) { for (int j = 0; j <= 28; j++) { Console.Write(" "); } Console.Write(DrawStringMap(i)); Console.WriteLine(); }
玩家在地图中行走
这一块主要用到了玩家如何掷骰子,如何判断玩家的坐标,根据传过来的数字,如何返回一个数字
1.玩家如何掷骰子:
首先利用随机数random产生随机数,根据相应的随机数,玩家进行相应的移动,此时会坐落在一些特殊的图案上,然后用case语句进行相应的判断与选择即可。
2.如何判断玩家的坐标:
因为当玩家的坐标超出地图所在的坐标时便会报错,所以用简单的if语句将超过范围的坐标进行强制赋值即可。
3.根据传过来的数字,如何返回一个数字:
当遇到幸运轮盘时就会产生1—交换位置,2—轰炸对方两个选项,为了保证我们进行正确的操作,就要有相应的提醒。
总结
将骑士飞行棋完成之后有几点比较大的收获。
1.当遇到一个项目的时候不要被它的表象所迷惑,其实它都是由一个个小的分支完成的,所以要学会拆分,然后分而治之。
2.做一件事情的时候要学会找他们之间的练习,就像c#小杨老师讲课一样,他一般都是从最麻烦,最简单的入手,然后在这个过程中遇到问题再进行优化,而不是一气呵成的,所以说每一段代码之间都有着密切的练习。
3.将过程进行封装:这个例子用到最多的一点可以说是将过程封装成方法,减少了代码的冗余,这一点和上面的找联系不谋而合,就像我们平时画思维导图一样,善于查找各个分支之间的联系,将相同的部分进行汇总,这样有利用我们形成知识网!
- C#总结--骑士飞行棋
- C#总结-骑士飞行棋总结
- C# 控制台 骑士飞行棋
- 骑士飞行棋项目总结
- 骑士飞行棋 - C#基础 练习项目
- C#基础大综合:骑士飞行棋
- 骑士飞行棋 - C#控制台小游戏
- 骑士飞行棋
- 骑士飞行棋
- 骑士飞行棋
- JavaSE骑士飞行棋
- 骑士飞行棋
- 骑士飞行棋游戏
- 骑士飞行棋
- 骑士飞行棋
- 【C#】骑士飞行棋
- [C#]骑士飞行棋
- 黑马程序员——C#版骑士飞行棋
- Git常用命令(一)
- Node.js 笔记四: 简单爬虫
- StackExchange.Redis 管道 批量 高性能插入数据
- 在Express的页面模板中的变量的定义与使用总结
- Hash表
- C#总结--骑士飞行棋
- struct inode
- Git客户端安装图文详解如何安装配置GitHub操作流程攻略
- leetcode--485. Max Consecutive Ones
- 打素数表
- 飞花的线代
- Node.js 笔记五:nodemap-spider
- Android-pull解析xml
- 494. Target Sum