C#绘制飞行棋地图小程序
1、初始化地图,在绘制时可先将地图进行初始化,用数组来存储关卡的位置,然后利用循环给地图中关卡所在处赋予代表关卡的值。
关键代码如下
///<summary>
///初始化游戏地图
///</summary>
staticvoidInitialMap()
{
for(inti=0;i<Map.Length;i++)
{
Map[i]=0;
}
//用于存储关卡位置
int[]luckyTurn={6,23,40,55,69,83,98};//幸运转盘1
int[]landMine={5,13,17,33,38,50,64,80,94};//地雷2
int[]pause={9,27,60,93};//暂停3
int[]timeTunnel={20,25,45,63,72,88,90};//时空隧道4
for(inti=0;i<luckyTurn.Length;i++)
{
intpos=luckyTurn[i];
Map[pos]=1;
}
for(inti=0;i<landMine.Length;i++)
{
Map[landMine[i]]=2;
}
for(inti=0;i<pause.Length;i++)
{
intpos=pause[i];
Map[pos]=3;
}
for(inti=0;i<timeTunnel.Length;i++)
{
intpos=timeTunnel[i];
Map[pos]=4;
}
}
2、检查坐标的值,在将地图进行初始化之后,便可开始进行绘制地图的操作了,地图绘制可使用在程序设计时所讲的分布绘制,在绘制地图时应检验该该坐标点的值,在根据该点的值绘制相应的图案,在检查时根据值返回相应的图案,在利用循环绘制出即可,检查坐标的值代码如下:
///<summary>
///获得要绘制的坐标
///</summary>
///<paramname="i">要绘制的坐标</param>
///<returns></returns>
staticstringGetMapString(inti)
{
stringResult="";//用于返回给一个坐标相应的图案
if(playerPos[0]==i&&playerPos[1]==i)//判断是否是对战双方所在此处
{
Console.ForegroundColor=ConsoleColor.Yellow;//设置图案的前景色为黄色
Result="<>";//得到两人均在图案
}
elseif(playerPos[0]==i)
{
Console.ForegroundColor=ConsoleColor.Yellow;
Result="A";//得到A均在图案
}
elseif(playerPos[1]==i)
{
Console.ForegroundColor=ConsoleColor.Yellow;
Result="B";//得到B均在图案
}
else
{
switch(Map[i])
{
case0:
Console.ForegroundColor=ConsoleColor.White;
Result="□";//得到普通均在图案
break;
case1:
Console.ForegroundColor=ConsoleColor.Red;
Result="○";//得转盘图案
break;
case2:
Console.ForegroundColor=ConsoleColor.Blue;
Result="☆";
break;
case3:
Console.ForegroundColor=ConsoleColor.Green;
Result="▲";
break;
case4:
Console.ForegroundColor=ConsoleColor.DarkBlue;
Result="卍";
break;
}
}
returnResult;//返回图案
}
3、绘制地图,在得到返回的图案后,便可进行地图的绘制,这里给出绘制第一行的代码
///<summary>
///绘制游戏地图
///</summary>
staticvoidDrownMap()
{
Console.WriteLine("图例:幸运转盘○地雷☆暂停▲时空隧道卍");
//画第一行下标0-29的地图
for(inti=0;i<30;i++)//循环坐标得到第一行每个点的图案
{
Console.Write(GetMapString(i));//调用函数得到每个坐标的图案
}
Console.Write("\n");
Console.ResetColor();//重置前景色
}
以上所述是小编给大家介绍的C#绘制飞行棋地图小程序,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!