基本信息
源码名称:骑士飞行棋
源码大小:0.01M
文件格式:.cs
开发语言:C#
更新时间:2014-07-10
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 1 元 
   源码介绍


static  int[] Map = new int[100];
        static  int [] lukyTurn={6,26,47,69,94};
        static  int [] boom={12,36,52,78,99};
        static  int [] pause={17,44,61,84};
        static  int [] fly={2,32,62,82};
        static Person[] player = new Person[2];
        static void Main(string[] args)
        {            
            ShowUI();
            initial();
            #region 玩家A B名字输入
            Console.WriteLine("请输入玩家A的名字:");
            player[0].name = InPutName();
            Console.WriteLine("请输入玩家B的名字:");
            player[1].name = InPutName();
            while (player[0].name == player[1].name)
            {
                Console.WriteLine("不能与玩家A名字相同");
                player[1].name = InPutName();
            }
            #endregion                       
            Rult();
            Console.WriteLine();
            Console.WriteLine("请按任意键继续!");
            Console.ReadKey();
            Console.Clear();
            player[0].roll = 2;
            player[1].roll = 1;
            PrintUI();
            do
            {
                PrintUI();
                Console.WriteLine();                
                RollB();               
                RollA();
               

              
                Console.ReadKey();
                              
            } while (player[0].pos<100&&player[1].pos<100);
            if (player[0].pos>player[1].pos)
            {
                Console.Clear();
                Console.WriteLine("玩家A胜利,他就是:{0}",player[0].name);
            }
            else
            {
                Console.Clear();
                Console.WriteLine("玩家B胜利,他就是:{0}",player[1].name);
            }
            Console.ReadKey();
                    
        }
        static void ShowUI()
        {
            Console.WriteLine("*****************************************");
            Console.WriteLine("*                                       *");
            Console.WriteLine("*     骑    士          行      棋    *");
            Console.WriteLine("*                                       *");
            Console.WriteLine("*****************************************");
        }//显示界面
        static string InPutName()//输入名字
        {
            string name;
            name = Console.ReadLine();
            while (name == "")
            {
                Console.WriteLine("名字不能为空,请重新输入");
                name = Console.ReadLine();
            };
            return name;
        }
        static void initial()//初始化
        {
            for (int i = 0; i < lukyTurn.Length; i )//幸运轮盘 为1
{
   Map[lukyTurn[i]]=1;
}
            for (int i = 0; i < boom.Length; i )//炸弹 为2
{
   Map[boom[i]]=2;
}
             for (int i = 0; i < pause.Length; i )//暂停 为2
{
   Map[pause[i]]=3;
}
             for (int i = 0; i < fly.Length; i )//传送 为4
{
   Map[fly[i]]=4;
}
        }
        static string GameUI(int pos)//把Map所存放的数字转化为字符串
        {
            string result="□";
            //返回字符串
            #region 返回对应字符串          
                if (player[0].pos==pos && player[1].pos==pos)
           {
                    result = "<>";                    
           }
                else if (player[0].pos==pos)
                {
                    result = "A";                                   
                }
                else if (player[1].pos == pos)
                {
                    result = "B";                    
                }
                else
                {
                    switch (Map[pos])
                    {
                        case 0:
                            result= "□";
                            break;
                        case 1:
                            result = "◎";
                            break;
                        case 2:
                            result = "★";
                            break;
                        case 3:
                            result = "▲";
                            break;
                        case 4:
                            result = "卐";
                            break;
                    }
                }
                
            
            return result;
            #endregion
        }
        static void PrintUI()//绘制游戏地图
        {
            Console.Clear();
            Console.WriteLine("A代表玩家{0},B代表玩家{1}", player[0].name, player[1].name);
            int x = 64;
            for (int i = 0; i < Map.Length; i )
            {
                #region 第一行
                if (i < 30)
                {
                    Console.Write(GameUI(i));
                }
                else if (i == 30)
                {
                    Console.WriteLine(GameUI(i));
                }
                #endregion
                #region 第二列
                else if (i < 34)
                {
                    for (int j = 0; j < 30; j )
                    {
                        Console.Write("  ");
                    }
                    Console.WriteLine(GameUI(i));
                }
                #endregion
                #region 第三行
                else if (i <= 64)
                {
                    Console.Write(GameUI(x));
                    x--;
                }
                else if (x == 34)
                {
                    Console.Write(GameUI(x));
                }
                #endregion
                #region 第四列
                else if (i <= 69)
                {
                    Console.WriteLine();
                    Console.Write(GameUI(i));
                }
                #endregion
                #region 第五行
                else
                {
                    Console.Write(GameUI(i));
                }
                #endregion

            }   
        }
        static void Rult() //游戏规则
        {
            Console.Clear();
            Console.WriteLine("                             游戏说明");
            Console.WriteLine("<>表示AB玩家均在一起。");
            Console.WriteLine("{0}使用A代表,{1}使用B代表", player[0].name, player[1].name);
            Console.WriteLine("地图中□代表普通位置");
            Console.WriteLine("◎幸运轮盘,可以选择与对手交换位置,或者让对方倒退10步");
            Console.WriteLine("★代表炸弹,踩中后倒退6步");
            Console.WriteLine("▲表示暂停,踩中后停止扔骰子一回合");
            Console.WriteLine("卐时空隧道,向前20步");
            PrintUI();
        }
        static void RollA()//投掷骰子
        {
            int num=0;
            Random shaizi = new Random();
            for (int i = 0; i < player[0].roll; i )
            {
                if (player[0].pause == 0)
                {
                    Console.WriteLine("请玩家A按任意键扔骰子");
                    Console.ReadKey();
                    num = shaizi.Next(1, 7);
                    Console.WriteLine("玩家A投出的数字是“{0}”", num);

                    Console.ReadKey();
                    player[0].pos = player[0].pos num;
                    LukyTurn();
                    Boom();
                    Pause();
                    PrintUI();
                }
            }
            
            
        }
        static void RollB()//B玩家投掷骰子
        {
            int num = 0;
            Random shaizi = new Random();
            for (int i = 0; i < player[0].roll; i )
            {
                if (player[1].pause == 0)
                {
                    Console.WriteLine();
                    Console.WriteLine("请玩家B按任意键扔骰子");
                    Console.ReadKey();
                    num = shaizi.Next(1, 7);
                    Console.WriteLine("玩家B投出的数字是“{0}”", num);

                    Console.ReadKey();
                    player[1].pos = player[1].pos num;
                    LukyTurn();
                    Boom();
                    Pause();
                } PrintUI();
            }
            player[0].roll = 1;
            
                     
        }
        static void LukyTurn()//幸运轮盘事件
        {
            for (int i = 0; i < lukyTurn.Length; i )
{
                 if (player[0].pos==lukyTurn[i])
            {                
                Console.WriteLine("请选择其中一项:按“1”或“2”");
                Console.WriteLine("1.与B玩家交换位置;2.前进10步");                
                     if(Console.ReadKey().Key == ConsoleKey.D1)
                     {
                         int temp = player[0].pos;
                         player[0].pos = player[1].pos;
                         player[1].pos = temp;
                         
                     }
                     else if (Console.ReadKey().Key == ConsoleKey.D2)
                     {
                         player[0].pos = player[0].pos 10;
                        
                     }
            }
                 if (player[1].pos == lukyTurn[i])
                 {
                     Console.WriteLine("请选择其中一项:按“1”或“2”");
                     Console.WriteLine("1.与A玩家交换位置;2.前进10步");
                     if (Console.ReadKey().Key == ConsoleKey.D1)
                     {
                         int temp = player[0].pos;
                         player[0].pos = player[1].pos;
                         player[1].pos = temp;
                         
                     }
                     else if (Console.ReadKey().Key == ConsoleKey.D2)
                     {
                         player[1].pos = player[1].pos 10;
                         
                     }
                 }
}
           
        }
        static void Boom()//炸弹事件
        {
            for (int i = 0; i < boom.Length; i )
            {
                if (player[0].pos == boom[i])
                {
                    Console.WriteLine("玩家A踩到炸弹倒退6步");
                    Console.ReadKey();
                    player[0].pos -= 6;
                   
 
                }
                if (player[1].pos == boom[i])
                {
                    Console.WriteLine("玩家B踩到炸弹倒退6步");
                    Console.ReadKey();
                    player[1].pos -= 6;
                    

                } 
            }
         }
        static void Pause()//暂停事件
        {
            for (int i = 0; i < pause.Length; i )
            {
                if (player[0].pos == pause[i])
                {
                    Console.WriteLine("玩家A暂停一回合");
                    Console.ReadKey();
                    player[1].roll = 2;
                }
                if (player[1].pos == pause[i])
                {
                    Console.WriteLine("玩家B暂停一回合");
                    Console.ReadKey();
                    player[0].roll = 2;
                }
            }
 
        }
        static void Fly()//幸运轮盘事件
        {
            for (int i = 0; i < fly.Length; i )
            {
                if (player[0].pos == fly[i])
                {
                    Console.WriteLine("太幸运了,玩家A好像飞了起来");
                    player[0].pos = 20;
                }
                if (player[1].pos == fly[i])
                {
                    Console.WriteLine("太幸运了,玩家B好像飞了起来");
                    player[1].pos = 20;
                }
            }
 
        }