`
kxw953492793kxw
  • 浏览: 9150 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

飞行棋地图的实现

 
阅读更多
编写飞行棋主要把棋盘用代码写出来,而地图又要能连接起来,不能断掉,地图上要有每个关卡的图例,也是要用代码显示出来。
/// <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的同学有点帮助

    Java小游戏骑士飞行棋

    开发一款Java小游戏——骑士飞行棋 游戏规则和传统的飞行棋一样,支持两人对战 采用100格小型游戏棋盘 游戏规则:对战双方轮流掷骰子控制自己的骑兵前进或后退,在游戏棋盘上设置有关卡 普通 地雷 暂停 时空隧道 ...

    地图飞行棋

    java 代码 实现模拟地图飞行棋游戏 适合初学者参考

    Java面向对象编程实现骑士飞行棋小游戏源代码

    Java面向对象编程实现骑士飞行棋小游戏源代码,抽象出地图类,玩家类,游戏类

    JAVA/骑士飞行棋

    地图样式 ∷∷∷∷∷★¤∷∷■∷∷∷★∷∷∷★∷∷〓∷∷¤∷〓∷■∷∷∷∷ ∷ ∷ ★ ∷ ∷★〓∷∷■∷∷∷∷∷∷∷∷∷★∷∷∷∷〓∷∷∷∷¤∷★∷∷∷ ∷ ∷ ∷ ¤∷∷〓∷∷∷∷∷∷∷★∷∷¤∷∷∷...

    骑士飞行棋(C语言版)

    1.本游戏用C语言实现,模仿大富翁4,与电脑玩家在地图上循环行走购买房屋,以一方金钱耗尽为结束 2.玩家在游戏开始时可以设置对战的难度,不同的难度初始金钱、点卷、电脑AI等都是不同的,详情请参看[难度说明] 3.在...

    python实现飞行棋游戏

    本文实例为大家分享了python实现飞行棋的具体代码,供大家参考,具体内容如下 import random # 地图初始坐标 Maps = [0] *100 # 玩家A和玩家B的初始坐标 PlayerPos = [0]*2 # 存储玩家姓名 playerNames = [""] *2 ...

    C#实现飞行棋项目

    本文实例为大家分享了C#实现飞行棋项目的具体代码,供大家参考,具体内容如下 1.制作游戏头部:游戏头部介绍 2.绘制地图 使用一维数组装整个地图的路线 如果这个位置是0,绘制普通格子□ 如果这个位置是1,绘制幸运...

    C#控制台实现飞行棋游戏

    本文实例为大家分享了C#实现飞行棋游戏的具体代码,供大家参考,具体内容如下 游戏截图: 管理类: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System....

    java源码包---java 源码 大量 实例

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    java源码包2

     Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。  部分源代码摘录:  ftpClient = new FtpClient(); //实例化FtpClient对象  String serverAddr=jtfServer.getText(); //得到服务器...

    java源码包3

     Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。  部分源代码摘录:  ftpClient = new FtpClient(); //实例化FtpClient对象  String serverAddr=jtfServer.getText(); //得到服务器...

    java源码包4

     Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。  部分源代码摘录:  ftpClient = new FtpClient(); //实例化FtpClient对象  String serverAddr=jtfServer.getText(); //得到服务器...

    JAVA上百实例源码以及开源项目源代码

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    JAVA上百实例源码以及开源项目

    百度云盘分享 ... Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。  部分源代码摘录:  ftpClient = new FtpClient(); //实例化FtpClient对象  String serverAddr=jtfServer.getText();...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java实现的FTP连接与数据浏览程序 1个目标文件 摘要:Java源码,网络相关,FTP Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 ...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java实现的FTP连接与数据浏览程序 1个目标文件 摘要:Java源码,网络相关,FTP Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 ...

Global site tag (gtag.js) - Google Analytics