1、 初始化地图,在绘制时可先将地图进行初始化,用数组来存储关卡的位置,然后利用循环给地图中 关卡所在处赋予代表关卡的值。

关键代码如下

  /// <summary>
/// 初始化游戏地图
/// </summary>
static void InitialMap()
{
for (int i=;i<Map.Length;i++)
{
Map[i] =;
}
//用于存储关卡位置
int[] luckyTurn = { , , , , , , };//幸运转盘 1
int[] landMine = { , , , , , , , , };//地雷 2
int[] pause = { , , , };//暂停 3
int[] timeTunnel = { , , , , , , };//时空隧道 4
for (int i=;i<luckyTurn.Length;i++)
{
int pos = luckyTurn[i];
Map[pos] = ;
}
for (int i=;i<landMine.Length;i++)
{
Map[landMine[i]] = ;
}
for (int i=;i<pause.Length;i++)
{
int pos = pause[i];
Map[pos] = ;
}
for(int i=;i<timeTunnel.Length;i++)
{
int pos = timeTunnel[i];
Map[pos] =;
}
}

2、检查坐标的值,在将地图进行初始化之后,便可开始进行绘制地图的操作了,地图绘制可使用 在程序设计时所讲的分布绘制,在绘制地图时应检验该该坐标点的值,在根据该点的值绘制相应的图案,在检查时根据值 返回相应的图案 ,在利用循环绘制出即可,检查坐标的值代码如下:

 /// <summary>
/// 获得要绘制的坐标
/// </summary>
/// <param name="i"> 要绘制的坐标</param>
/// <returns></returns>
static string GetMapString(int i)
{
string Result="";//用于返回 给一个坐标相应的图案
if (playerPos[] == i && playerPos[] == i)//判断是否是对战双方所在此处
{
Console.ForegroundColor = ConsoleColor.Yellow;//设置图案的前景色为黄色
Result = "<>";//得到两人均在图案
}
else if (playerPos[] == i)
{
Console.ForegroundColor = ConsoleColor.Yellow;
Result = "A";//得到A均在图案 }
else if (playerPos[] == i)
{
Console.ForegroundColor = ConsoleColor.Yellow;
Result = "B";//得到B均在图案 }
else
{
switch (Map[i])
{
case :
Console.ForegroundColor = ConsoleColor.White;
Result = "□";//得到普通均在图案 break;
case :
Console.ForegroundColor = ConsoleColor.Red;
Result = "○";//得转盘图案 break;
case :
Console.ForegroundColor = ConsoleColor.Blue;
Result = "☆";
break;
case :
Console.ForegroundColor = ConsoleColor.Green;
Result = "▲";
break;
case :
Console.ForegroundColor = ConsoleColor.DarkBlue;
Result = "卍";
break;
}
}
return Result; //返回图案
}

3、绘制地图,在得到 返回的图案后,便可进行地图的绘制,这里给出绘制第一行的代码

  /// <summary>
/// 绘制游戏地图
/// </summary>
static void DrownMap()
{
Console.WriteLine("图例:幸运转盘 ○ 地雷 ☆ 暂停 ▲ 时空隧道 卍");
//画第一行 下标0-29 的地图
for(int i=;i<;i++)//循环坐标得到 第一行每个点的图案
{
Console.Write(GetMapString(i)); //调用函数得到每个坐标的图案
}
Console.Write("\n");
Console.ResetColor();//重置前景色
}

学习自传智播客教程

---电杆

C#小程序飞行棋地图绘制的更多相关文章

  1. C#小程序飞行棋关卡操作

    飞行棋关卡操作 1.分析设计 飞行棋的基本规则为二人轮流掷骰子,则此处为循环结构,然后根据投掷出的点数进行前进<注:在每一步前进之后均应该判断是否走完了游戏>,在遇到关卡时进行相应的操作, ...

  2. opengl典型例程立方体投影与地图绘制

    立方体投影 http://www.cnblogs.com/opengl/p/3790450.html 地图绘制 http://www.cnblogs.com/opengl/p/3790354.html

  3. Matplotlib Toolkits:地图绘制工具

    Matplotlib Toolkits:地图绘制工具 有没有一种可以直接在详细地图(如谷歌地图)上绘制上百万坐标点的工具???谷歌地图坐标点多了也不能绘制了. Basemap (Not distrib ...

  4. ECharts 地图绘制与钻取简易接口

    1.地图绘制过程原理 给定范围边界经纬度数据,再给它个名字就构成了绘制地图的基础.也就是说,你可以绘制任意形状的地图版块. 2.地图数据生成 中国以及省市县等地图的基础数据可以从这里生成与下载. ht ...

  5. arcgis api for javascript 学习(五) 实现地图绘制工具

    1.本文实现的功能为鼠标与地图之间的交互,能够在地图上绘制不同形状的图形 2.代码部分主要讲到的为Graphic函数的相关功能 <!DOCTYPE html> <html> & ...

  6. 支付宝小程序室内地图导航开发-支付宝小程序JS加载esmap地图

    如果是微信小程序开发,请参考微信小程序室内地图导航开发-微信小程序JS加载esmap地图文章 一.在支付宝小程序里显示室内三维地图 需要满足的两个条件 调用ESMap室内地图需要用到小程序web-vi ...

  7. 微信小程序map地图的一些使用注意事项

    1.小程序组件map,在微信7.0.4以上(不包括7.0.4)层级问题官方已作更新,可在map上随意添加任何标签使用z-index即可:微信7.0.4版本以下map组件层级默认是最高的,只能使用官方提 ...

  8. 小程序利用canvas 绘制图案 (生成海报, 生成有特色的头像)

    小程序利用canvas 绘制图案 (生成海报, 生成有特色的头像) 微信小程序生成特色头像,海报等是比较常见的.下面我来介绍下实现该类小程序的过程. 首先选择前端来通过 canvas 绘制.这样比较节 ...

  9. HTML5 2D平台游戏开发#6地图绘制

    此前已经完成了一部分角色的动作,现在还缺少可以交互的地图让游戏看起来能玩.不过在开始之前应当考虑清楚使用什么类型的地图,就2D平台游戏来说,一般有两种类型的地图,Tile-based和Art-base ...

随机推荐

  1. Android——通讯录

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  2. 关于浏览器兼容问题及hack写法

    浏览器的兼容问题 1.浏览器内核: Mozilla Firefox ( Gecko ) Internet Explorer ( Trident ) Opera ( Presto ) Safari ( ...

  3. MFC编程 | tab control控件的使用

    因为课程需要,会用到MFC编程,所以讲一些经验总结下,以便日后使用查询. // tab control控件的使用 // 建立一个Cluster窗口,通过tab可以切换成C-Means和Fuzzy C- ...

  4. 表单和 HTML 辅助方法– ASP.NET MVC 4 系列

           这里有一个疑问,诸如在文本编辑器中输入 HTML 元素如此简单的任务,也需要任何帮助吗?的确,输入标签名称是很容易的事,但是确保 HTML 页面链接中的 URL 指向正确的位置.表单元素 ...

  5. C#对象克隆介绍

    浅拷贝和深拷贝 有两种对象克隆的方法:浅拷贝和深拷贝.浅拷贝只是复制引用,而不会复制引用的对象.深拷贝会复制引用的对象. 因此,原始对象中的引用和浅拷贝对象中的同一个引用都指向同一个对象.而深拷贝的对 ...

  6. JVM内存模型和性能优化 转

    JVM内存模型和性能优化 JVM内存模型优点 内置基于内存的并发模型:      多线程机制 同步锁Synchronization 大量线程安全型库包支持 基于内存的并发机制,粒度灵活控制,灵活度高于 ...

  7. Chrome Devtools简介

    Chrome开发工具(又称DevTools),是一套内嵌在chrome浏览器内部的web编写和调试工具.DevTools提供给web开发人员深入地访问浏览器内部和web应用的机会.DevTools可以 ...

  8. 网站推广优化(SEO,网站关键字优化,怎么优化网站,如何优化网站关键字)

    网站推广优化教程100条(完整版)下面介绍新手建站推广完美教程,各位根据自己的实际情况酌情选用: 1.准备个好域名.①.尽量在5位数内,当然也不一定,反正要让用户好记.(看个人):②.尽量用顶级的域名 ...

  9. Java Junit单元测试

    使用Junit进行单元测试,首先引入Junit的jar,配置如下. @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(&quo ...

  10. Elasticsearch【mappings】类型配置操作

    在介绍ES的更新操作的时候,说过,ES的索引创建是很简单的,没有必要多说,这里是有个前提的,简单是建立在ES默认的配置基础之上的. 比如,当ES安装完毕后,我们就可以通过curl命令完成index,t ...