编写飞行棋主要把棋盘用代码写出来,而地图又要能连接起来,不能断掉,地图上要有每个关卡的图例,也是要用代码显示出来。
/// <summary>
/// 绘制标志
/// </summary>
public static void ShowUi()
{
Console.WriteLine("*********************************");
Console.WriteLine("*骑 士 飞 行 棋*");
Console.WriteLine("*********************************");
}
/// <summary>
///绘制地图
/// </summary>
public static void DrawMap()
{
Console.WriteLine("图例:幸运盘:◎ 地雷:★ 暂停:▲ 时空隧道:卐");
for (int i = 0; i <=29; i++)
{
Console.Write(GetMap(i));
}
Console.WriteLine();
for (int i =30; i < 35; i++)//画这列地图要和第一列地图接起来,所要地图不能换行顶行画,要通过一次循环把前面的变成空格
{
for (int j = 0; j < 29; j++)
{
Console.Write(" ");
}
Console.WriteLine(GetMap(i));
}
for (int i = 64; i >= 35; i--)//画这行地图要从尾画到头,所以循环式依次相减的
{
Console.Write(GetMap(i));
}
Console.WriteLine();
for (int i = 65; i <= 69; i++)
{
Console.WriteLine(GetMap(i));
}
for (int i = 70; i <= 99; i++)
{
Console.Write(GetMap(i));
}
Console.WriteLine();
Console.ResetColor();//将控制台的前景色和背景色设置为默认值
}
/// <summary>
/// 获得第pos坐标上应该绘制的图案
/// </summary>
/// <param name="pos">要绘制的坐标</param>
/// <returns></returns>
static string GetMap(int pos)
{
string result = "";
if (player[0] == pos && player[1] == pos)//判断A和B是否在当前要画的第i格上
{
Console.ForegroundColor = ConsoleColor.Yellow;//设置前景颜色
result = "<>";
}
else if (player[0] == pos)//A在当前要画的格上
{
Console.ForegroundColor = ConsoleColor.Yellow;
result = "A";
}
else if (player[1] == pos)//B在当前要画的格上
{
Console.ForegroundColor = ConsoleColor.Yellow;
result="B";
}
else
{
switch (Map[pos])//以Map[pos]的值来选择该坐标上应该画什么图案
{
case 0:
Console.ForegroundColor = ConsoleColor.White;
result="□"; break;
case 1:
Console.ForegroundColor = ConsoleColor.Red;
result="◎"; break;
case 2:
Console.ForegroundColor = ConsoleColor.Green;
result="★"; break;
case 3:
Console.ForegroundColor = ConsoleColor.Blue;
result="▲"; break;
case 4:
Console.ForegroundColor = ConsoleColor.Cyan;
result="卐"; break;
}
}
return result;
}
/// <summary>
/// 初始化地图
/// </summary>
static void InitialMap()
{
int[] lT = {4,20,36,45,65,80,94 };//将是幸运盘的坐标要一个数组表示
int[] lP = { 5, 13, 17, 33, 38, 50, 69 };//将是地雷的坐标要一个数组表示
int[] pause = { 9, 29, 60, 93 };//将是暂停的坐标要一个数组表示
int[] tT = { 18, 25, 45, 63, 72, 88, 90, 99 };//将是时空隧道的坐标要一个数组表示
for (int i = 0; i < lT.Length; i++)
{
Map[lT[i]] = 1;//将是幸运盘的坐标赋值为1
} for (int i = 0; i < lP.Length; i++)
{
Map[lP[i]] = 2;//将是地雷的坐标赋值为2
}
for (int i = 0; i < pause.Length; i++)
{
Map[pause[i]] = 3;//将是暂停的坐标赋值为3
}
for (int i = 0; i < tT.Length; i++)
{
Map[tT[i]] = 4;//将是时空隧道的坐标赋值为4
}
}
分享到:
相关推荐
JAVA项目骑士飞行棋的地图改进方法,实现自定义地图大小和随机产生事件位置。
我的骑士飞行棋,本人自己提高了难度,想实现多个地图 但没时间了,希望对大家刚学java的同学有点帮助
开发一款Java小游戏——骑士飞行棋 游戏规则和传统的飞行棋一样,支持两人对战 采用100格小型游戏棋盘 游戏规则:对战双方轮流掷骰子控制自己的骑兵前进或后退,在游戏棋盘上设置有关卡 普通 地雷 暂停 时空隧道 ...
java 代码 实现模拟地图飞行棋游戏 适合初学者参考
Java面向对象编程实现骑士飞行棋小游戏源代码,抽象出地图类,玩家类,游戏类
地图样式 ∷∷∷∷∷★¤∷∷■∷∷∷★∷∷∷★∷∷〓∷∷¤∷〓∷■∷∷∷∷ ∷ ∷ ★ ∷ ∷★〓∷∷■∷∷∷∷∷∷∷∷∷★∷∷∷∷〓∷∷∷∷¤∷★∷∷∷ ∷ ∷ ∷ ¤∷∷〓∷∷∷∷∷∷∷★∷∷¤∷∷∷...
1.本游戏用C语言实现,模仿大富翁4,与电脑玩家在地图上循环行走购买房屋,以一方金钱耗尽为结束 2.玩家在游戏开始时可以设置对战的难度,不同的难度初始金钱、点卷、电脑AI等都是不同的,详情请参看[难度说明] 3.在...
本文实例为大家分享了python实现飞行棋的具体代码,供大家参考,具体内容如下 import random # 地图初始坐标 Maps = [0] *100 # 玩家A和玩家B的初始坐标 PlayerPos = [0]*2 # 存储玩家姓名 playerNames = [""] *2 ...
本文实例为大家分享了C#实现飞行棋项目的具体代码,供大家参考,具体内容如下 1.制作游戏头部:游戏头部介绍 2.绘制地图 使用一维数组装整个地图的路线 如果这个位置是0,绘制普通格子□ 如果这个位置是1,绘制幸运...
本文实例为大家分享了C#实现飞行棋游戏的具体代码,供大家参考,具体内容如下 游戏截图: 管理类: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System....
5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 String serverAddr=jtfServer.getText(); //得到服务器...
Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 String serverAddr=jtfServer.getText(); //得到服务器...
Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 String serverAddr=jtfServer.getText(); //得到服务器...
5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
百度云盘分享 ... Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 String serverAddr=jtfServer.getText();...
Java实现的FTP连接与数据浏览程序 1个目标文件 摘要:Java源码,网络相关,FTP Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 ...
Java实现的FTP连接与数据浏览程序 1个目标文件 摘要:Java源码,网络相关,FTP Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 ...