利用C#实现一个控制台的飞行棋小游戏

在这个博客中,我们将学习如何创建一个简单的飞行棋游戏。飞行棋是一种棋类游戏,玩家通过掷骰子来移动棋子,并根据不同的方块进行不同的操作。

首先,我们需要创建一个C#控制台应用程序。在程序中,我们定义了一些全局变量和数组,用于存储地图方块位置、玩家姓名和玩家坐标等信息。

 /// <summary>
 /// 模拟地图方块位置数组
 /// </summary>
 static int[] MapArr = new int[100];

 /// <summary>
 /// 存放玩家姓名
 /// </summary>
 static string[] playerArr = new string[2];

 /// <summary>
 /// 存储玩家坐标
 /// </summary>
 static int[] playerCoordinate = new int[2];

 /// <summary>
 /// 用来存储判断哪个玩家完成一轮游戏
 /// </summary>
 static bool[] flagArr = new bool[2];

接下来,我们定义了几个辅助函数来绘制游戏头部、画地图和初始化地图。绘制游戏头部函数主要用于显示游戏的名称和作者等信息,画地图函数用于绘制游戏地图,初始化地图函数用于设置地图方块的规则。

 /// <summary>
 /// 游戏头
 /// </summary>
 static void GameHead()
 {
     Console.ForegroundColor = ConsoleColor.Red;
     Console.WriteLine("********************************");
     Console.ForegroundColor = ConsoleColor.Blue;
     Console.WriteLine("********************************");
     Console.ForegroundColor = ConsoleColor.Green;
     Console.WriteLine("********************************");
     Console.ForegroundColor = ConsoleColor.Yellow;
     Console.WriteLine("*************飞行棋*************");
     Console.ForegroundColor = ConsoleColor.Green;
     Console.WriteLine("********************************");
     Console.ForegroundColor = ConsoleColor.Blue;
     Console.WriteLine("********************************");
     Console.ForegroundColor = ConsoleColor.Red;
     Console.WriteLine("********************************");
 }

 /// <summary>
 /// 画地图
 /// </summary>
 static void DrawMap()
 {
     Console.ForegroundColor = ConsoleColor.Red;
     Console.WriteLine("图例:幸运轮盘:◎  地雷:★  暂停:▲  时空隧道:卐  ");
     Console.ForegroundColor = ConsoleColor.White;

     #region 第一横行
     for (int i = 0; i < 30; i++)
     {
         SetMap(i);
     }
     Console.WriteLine();//第一横行画完后换行
     #endregion

     #region 第一竖行
     for (int i = 30; i < 35; i++)
     {
         for (int j = 1; j < 30; j++)
         {
             Console.Write("  ");
         }
         SetMap(i);
         Console.WriteLine();
     }
     #endregion

     #region 第二横行
     for (int i = 64; i >= 35; i--)
     {
         SetMap(i);
     }
     Console.WriteLine();//第二横行画完后换行
     #endregion

     #region 第二竖行
     for (int i = 65; i < 70; i++)
     {
         SetMap(i);
         Console.WriteLine();
     }
     #endregion

     #region 第三横行
     for (int i = 70; i < 100; i++)
     {
         SetMap(i);
     }
     Console.WriteLine();
     #endregion
 }

 /// <summary>
 /// 初始化地图(设置地图规则)
 /// </summary>
 static void InitializeMap()
 {
     //幸运轮盘
     int[] luckArr = { 8, 15, 25, 38, 46, 52, 68, 80 };
     for (int i = 0; i < luckArr.Length; i++)
     {
         MapArr[luckArr[i]] = 1;
     }

     //地雷
     int[] landmine = { 10, 20, 35, 50, 66, 78, 95 };
     for (int i = 0; i < landmine.Length; i++)
     {
         MapArr[landmine[i]] = 2;
     }

     //暂停
     int[] stop = { 3, 7, 18, 21, 30, 43, 57, 79, 88, 97 };
     for (int i = 0; i < stop.Length; i++)
     {
         MapArr[stop[i]] = 3;
     }

     //时空隧道
     int[] tunnel = { 6, 22, 40, 53, 69, 77, 87, 90 };
     for (int i = 0; i < tunnel.Length; i++)
     {
         MapArr[tunnel[i]] = 4;
     }

 }

 /// <summary>
 /// 设置地图方块
 /// </summary>
 /// <param name="i">循环绘制地图的位置</param>
 static void SetMap(int i)
 {
     if (playerCoordinate[0] == playerCoordinate[1] && playerCoordinate[0] == i)
     {
         Console.Write("<>");
     }
     else if (playerCoordinate[0] == i)
     {
         Console.ForegroundColor = ConsoleColor.DarkMagenta;
         Console.Write("A");
     }
     else if (playerCoordinate[1] == i)
     {
         Console.ForegroundColor = ConsoleColor.Cyan;
         Console.Write("B");
     }
     else
     {
         switch (MapArr[i])
         {
             case 0:
                 Console.ForegroundColor = ConsoleColor.Yellow;
                 Console.Write("□");
                 break;
             case 1:
                 Console.ForegroundColor = ConsoleColor.Green;
                 Console.Write("◎");
                 break;
             case 2:
                 Console.ForegroundColor = ConsoleColor.Red;
                 Console.Write("☆");
                 break;
             case 3:
                 Console.ForegroundColor = ConsoleColor.Blue;
                 Console.Write("▲");
                 break;
             case 4:
                 Console.ForegroundColor = ConsoleColor.White;
                 Console.Write("卐");
                 break;
         }
     }
 }

然后,我们开始进入游戏的主要逻辑部分。我们使用一个循环来控制游戏的进行,直到有玩家胜利为止。在每一轮中,我们先刷新地图,然后让玩家掷骰子,根据掷骰子的结果移动棋子,并判断棋子当前位置的方块类型,执行对应的操作。

static void Main(string[] args)
{
    //调用头部
    GameHead();

    #region 输入玩家姓名
    Console.WriteLine("请输入玩家A的姓名:");
    playerArr[0] = Console.ReadLine();
    while (playerArr[0] == "")
    {
        Console.WriteLine("玩家A姓名不能为空");
        playerArr[0] = Console.ReadLine();
    }
    Console.WriteLine("请输入玩家B的姓名:");
    playerArr[1] = Console.ReadLine();
    while (playerArr[1] == "")
    {
        Console.WriteLine("玩家B姓名不能为空");
        playerArr[1] = Console.ReadLine();
    }
    //输入完成后实现清屏
    Console.Clear();
    #endregion

    flagArr[0] = true;//默认 玩家一 开始玩游戏

    //没有玩家胜利时,就一直玩游戏
    while (playerCoordinate[0] <= 99 && playerCoordinate[1] <= 99)
    {
        //玩家一 玩游戏
        if (flagArr[0])
        {
            PlayGame(0);
            Console.Clear();
            flagArr[0] = false;
        }
        else
        {
            flagArr[0] = true;
        }
        //玩家二 玩游戏
        if (flagArr[1])
        {
            PlayGame(1);
            Console.Clear();
            flagArr[1] = false;
        }
        else
        {
            flagArr[1] = true;
        }

    }
    //PlayGame(1);
    Console.Clear();
    if (playerCoordinate[0] > 99)
    {

        Console.WriteLine("胜利者:" + playerArr[0]);
        Win();
    }

    if (playerCoordinate[1] > 99)
    {
        Console.WriteLine("胜利者:" + playerArr[1]);
        Win();
    }

    Console.ReadKey();
}


/// <summary>
/// 玩游戏
/// </summary>
static void PlayGame(int playerID)
{
    #region 每轮掷骰子时候就刷新地图
    GameHead();
    Console.WriteLine();
    Console.WriteLine();
    InitializeMap();
    DrawMap();
    #endregion

    Console.WriteLine("请按任意键开始游戏");
    Console.ReadKey(true);
    Random random = new Random();
    //掷骰子的随机数
    int num = random.Next(1, 7);
    Console.WriteLine($"{playerArr[playerID]}掷出了{num}");
    Console.ReadKey(true);
    Console.WriteLine($"{playerArr[playerID]}前进了{num}格");
    Console.ReadKey(true);
    playerCoordinate[playerID] += num;

    SwitchCheck(playerID);

}

如果玩家踩到了幸运轮盘方块,玩家可以选择与对方交换位置或轰炸对方使其回退6格。如果玩家踩到了地雷方块,玩家会回退6格。如果玩家踩到了暂停方块,玩家需要暂停一回合。如果玩家踩到了时空隧道方块,玩家会前进10格。

 /// <summary>
 /// 判断旗子前进位置
 /// </summary>
 /// <param name="playerID">玩家</param>
 static void SwitchCheck(int playerID)
 {
     if (playerCoordinate[playerID] < 0)
     {
         playerCoordinate[playerID] = 0;
     }
     //获取当前棋子在地图上的位置
     int value = MapArr[(playerCoordinate[playerID] > 99 ? 99 : playerCoordinate[playerID])];

     int i = (playerID + 1) > 1 ? 0 : playerID + 1;
     //玩游戏过程中玩家一踩到了玩家二的情况
     if (playerCoordinate[playerID] == playerCoordinate[((playerID + 1) > 1 ? 0 : playerID + 1)])
     {
         Console.WriteLine($"玩家{playerArr[playerID]}踩到了玩家{playerArr[((playerID + 1) > 1 ? 0 : playerID + 1)]},玩家{playerArr[((playerID + 1) > 1 ? 0 : playerID + 1)]}退后6格");
         playerCoordinate[((playerID + 1) > 1 ? 0 : playerID + 1)] -= 6;
         playerCoordinate[((playerID + 1) > 1 ? 0 : playerID + 1)] = playerCoordinate[((playerID + 1) > 1 ? 0 : playerID + 1)] <= 0 ? 0 : playerCoordinate[((playerID + 1) > 1 ? 0 : playerID + 1)];
         Console.ReadKey(true);//判断被踩玩家回退时棋盘模块
         SwitchCheck(((playerID + 1) > 1 ? 0 : playerID + 1));

     }
     else
     {
         switch (value)
         {
             //方块
             case 0:
                 Console.WriteLine($"{playerArr[playerID]}踩到了方块,安全");
                 Console.ReadKey(true);
                 break;
             //幸运轮盘
             case 1:
                 Console.WriteLine($"{playerArr[playerID]}踩到了幸运轮盘,1--交换位置  2--轰炸对方");

                 string check = Console.ReadLine();
                 //要求必须输入1/2
                 while (check.Equals("") || (check != "1" && check != "2"))
                 {
                     Console.WriteLine("请输入1或者2,1--交换位置  2--轰炸对方");
                     check = Console.ReadLine();
                 }
                 if (check == "1")
                 {
                     int temp;
                     temp = playerCoordinate[playerID];
                     playerCoordinate[playerID] = playerCoordinate[(playerID + 1) > 1 ? 0 : playerID + 1];
                     playerCoordinate[(playerID + 1) > 1 ? 0 : playerID + 1] = temp;
                     Console.WriteLine($"{playerArr[playerID]}与{playerArr[(playerID + 1) > 1 ? 0 : playerID + 1]}交换位置");
                     SwitchCheck(playerID);//交换位置后判断棋子当前位置的情况
                     Console.ReadKey(true);
                 }

                 if (check == "2")
                 {
                     playerCoordinate[(playerID + 1) > 1 ? 0 : playerID + 1] -= 6;
                     Console.WriteLine($"{playerArr[playerID]}轰炸了{playerArr[(playerID + 1) > 1 ? 0 : playerID + 1]},{playerArr[(playerID + 1) > 1 ? 0 : playerID + 1]}回退6格");
                     Console.ReadKey(true);
                     SwitchCheck((playerID + 1) > 1 ? 0 : playerID + 1);//轰炸对方,看对方棋子位置
                 }
                 break;
             //地雷
             case 2:
                 Console.WriteLine($"{playerArr[playerID]}踩到了地雷,回退6格");
                 playerCoordinate[playerID] -= 6;
                 Console.ReadKey(true);
                 SwitchCheck(playerID);//判断回退位置
                 break;
             //暂停
             case 3:
                 Console.WriteLine($"{playerArr[playerID]}踩到了暂停,暂停一回合");
                 //flagArr[(playerID + 1) > 1 ? 0 : playerID + 1] = false;
                 Console.ReadKey(true);
                 Console.Clear();
                 PlayGame((playerID + 1) > 1 ? 0 : playerID + 1);
                 break;
             //时空隧道
             case 4:
                 playerCoordinate[playerID] += 10;
                 Console.WriteLine($"{playerArr[playerID]}踩到了时空隧道,前进10格");
                 Console.ReadKey(true);
                 SwitchCheck(playerID);
                 break;
         }
     }
 }

最后,当有玩家的坐标超过99时,即玩家到达终点,游戏结束,显示胜利者的姓名并展示胜利界面。

 /// <summary>
 /// 胜利
 /// </summary>
 public static void Win()//定义一个胜利的方法,用来在玩家胜利时提示胜利界面
 {
     Console.ForegroundColor = ConsoleColor.Red;//将输出内容的颜色改为红色
     Console.WriteLine("                                          ◆                         ");
     Console.WriteLine("                    ■                  ◆               ■        ■");
     Console.WriteLine("      ■■■■  ■  ■                ◆■         ■    ■        ■");
     Console.WriteLine("      ■    ■  ■  ■              ◆  ■         ■    ■        ■");
     Console.WriteLine("      ■    ■ ■■■■■■       ■■■■■■■   ■    ■        ■");
     Console.WriteLine("      ■■■■ ■   ■                ●■●       ■    ■        ■");
     Console.WriteLine("      ■    ■      ■               ● ■ ●      ■    ■        ■");
     Console.WriteLine("      ■    ■ ■■■■■■         ●  ■  ●     ■    ■        ■");
     Console.WriteLine("      ■■■■      ■             ●   ■   ■    ■    ■        ■");
     Console.WriteLine("      ■    ■      ■            ■    ■         ■    ■        ■");
     Console.WriteLine("      ■    ■      ■                  ■               ■        ■");
     Console.WriteLine("     ■     ■      ■                  ■           ●  ■          ");
     Console.WriteLine("    ■    ■■ ■■■■■■             ■              ●         ●");
     Console.ResetColor();
 }

这是一个简单的飞行棋游戏的实现过程。通过这个例子,我们可以学习到如何使用C#编写控制台应用程序,如何利用循环和条件语句控制游戏的进行,以及如何使用数组来存储和处理游戏数据。希望对你有所帮助!

完整代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Game
{
    internal class Program
    {
        /// <summary>
        /// 模拟地图方块位置数组
        /// </summary>
        static int[] MapArr = new int[100];

        /// <summary>
        /// 存放玩家姓名
        /// </summary>
        static string[] playerArr = new string[2];

        /// <summary>
        /// 存储玩家坐标
        /// </summary>
        static int[] playerCoordinate = new int[2];

        /// <summary>
        /// 用来存储判断哪个玩家完成一轮游戏
        /// </summary>
        static bool[] flagArr = new bool[2];

        static void Main(string[] args)
        {
            //调用头部
            GameHead();

            #region 输入玩家姓名
            Console.WriteLine("请输入玩家A的姓名:");
            playerArr[0] = Console.ReadLine();
            while (playerArr[0] == "")
            {
                Console.WriteLine("玩家A姓名不能为空");
                playerArr[0] = Console.ReadLine();
            }
            Console.WriteLine("请输入玩家B的姓名:");
            playerArr[1] = Console.ReadLine();
            while (playerArr[1] == "")
            {
                Console.WriteLine("玩家B姓名不能为空");
                playerArr[1] = Console.ReadLine();
            }
            //输入完成后实现清屏
            Console.Clear();
            #endregion

            flagArr[0] = true;//默认 玩家一 开始玩游戏

            //没有玩家胜利时,就一直玩游戏
            while (playerCoordinate[0] <= 99 && playerCoordinate[1] <= 99)
            {
                //玩家一 玩游戏
                if (flagArr[0])
                {
                    PlayGame(0);
                    Console.Clear();
                    flagArr[0] = false;
                }
                else
                {
                    flagArr[0] = true;
                }
                //玩家二 玩游戏
                if (flagArr[1])
                {
                    PlayGame(1);
                    Console.Clear();
                    flagArr[1] = false;
                }
                else
                {
                    flagArr[1] = true;
                }

            }
            //PlayGame(1);
            Console.Clear();
            if (playerCoordinate[0] > 99)
            {

                Console.WriteLine("胜利者:" + playerArr[0]);
                Win();
            }

            if (playerCoordinate[1] > 99)
            {
                Console.WriteLine("胜利者:" + playerArr[1]);
                Win();
            }

            Console.ReadKey();
        }

        /// <summary>
        /// 游戏头
        /// </summary>
        static void GameHead()
        {
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine("********************************");
            Console.ForegroundColor = ConsoleColor.Blue;
            Console.WriteLine("********************************");
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("********************************");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("*************飞行棋*************");
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("********************************");
            Console.ForegroundColor = ConsoleColor.Blue;
            Console.WriteLine("********************************");
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine("********************************");
        }

        /// <summary>
        /// 画地图
        /// </summary>
        static void DrawMap()
        {
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine("图例:幸运轮盘:◎  地雷:★  暂停:▲  时空隧道:卐  ");
            Console.ForegroundColor = ConsoleColor.White;

            #region 第一横行
            for (int i = 0; i < 30; i++)
            {
                SetMap(i);
            }
            Console.WriteLine();//第一横行画完后换行
            #endregion

            #region 第一竖行
            for (int i = 30; i < 35; i++)
            {
                for (int j = 1; j < 30; j++)
                {
                    Console.Write("  ");
                }
                SetMap(i);
                Console.WriteLine();
            }
            #endregion

            #region 第二横行
            for (int i = 64; i >= 35; i--)
            {
                SetMap(i);
            }
            Console.WriteLine();//第二横行画完后换行
            #endregion

            #region 第二竖行
            for (int i = 65; i < 70; i++)
            {
                SetMap(i);
                Console.WriteLine();
            }
            #endregion

            #region 第三横行
            for (int i = 70; i < 100; i++)
            {
                SetMap(i);
            }
            Console.WriteLine();
            #endregion
        }

        /// <summary>
        /// 初始化地图(设置地图规则)
        /// </summary>
        static void InitializeMap()
        {
            //幸运轮盘
            int[] luckArr = { 8, 15, 25, 38, 46, 52, 68, 80 };
            for (int i = 0; i < luckArr.Length; i++)
            {
                MapArr[luckArr[i]] = 1;
            }

            //地雷
            int[] landmine = { 10, 20, 35, 50, 66, 78, 95 };
            for (int i = 0; i < landmine.Length; i++)
            {
                MapArr[landmine[i]] = 2;
            }

            //暂停
            int[] stop = { 3, 7, 18, 21, 30, 43, 57, 79, 88, 97 };
            for (int i = 0; i < stop.Length; i++)
            {
                MapArr[stop[i]] = 3;
            }

            //时空隧道
            int[] tunnel = { 6, 22, 40, 53, 69, 77, 87, 90 };
            for (int i = 0; i < tunnel.Length; i++)
            {
                MapArr[tunnel[i]] = 4;
            }

        }

        /// <summary>
        /// 设置地图方块
        /// </summary>
        /// <param name="i">循环绘制地图的位置</param>
        static void SetMap(int i)
        {
            if (playerCoordinate[0] == playerCoordinate[1] && playerCoordinate[0] == i)
            {
                Console.Write("<>");
            }
            else if (playerCoordinate[0] == i)
            {
                Console.ForegroundColor = ConsoleColor.DarkMagenta;
                Console.Write("A");
            }
            else if (playerCoordinate[1] == i)
            {
                Console.ForegroundColor = ConsoleColor.Cyan;
                Console.Write("B");
            }
            else
            {
                switch (MapArr[i])
                {
                    case 0:
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.Write("□");
                        break;
                    case 1:
                        Console.ForegroundColor = ConsoleColor.Green;
                        Console.Write("◎");
                        break;
                    case 2:
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.Write("☆");
                        break;
                    case 3:
                        Console.ForegroundColor = ConsoleColor.Blue;
                        Console.Write("▲");
                        break;
                    case 4:
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.Write("卐");
                        break;
                }
            }
        }

        /// <summary>
        /// 玩游戏
        /// </summary>
        static void PlayGame(int playerID)
        {
            #region 每轮掷骰子时候就刷新地图
            GameHead();
            Console.WriteLine();
            Console.WriteLine();
            InitializeMap();
            DrawMap();
            #endregion

            Console.WriteLine("请按任意键开始游戏");
            Console.ReadKey(true);
            Random random = new Random();
            //掷骰子的随机数
            int num = random.Next(1, 7);
            Console.WriteLine($"{playerArr[playerID]}掷出了{num}");
            Console.ReadKey(true);
            Console.WriteLine($"{playerArr[playerID]}前进了{num}格");
            Console.ReadKey(true);
            playerCoordinate[playerID] += num;

            SwitchCheck(playerID);

        }

        /// <summary>
        /// 判断旗子前进位置
        /// </summary>
        /// <param name="playerID">玩家</param>
        static void SwitchCheck(int playerID)
        {
            if (playerCoordinate[playerID] < 0)
            {
                playerCoordinate[playerID] = 0;
            }
            //获取当前棋子在地图上的位置
            int value = MapArr[(playerCoordinate[playerID] > 99 ? 99 : playerCoordinate[playerID])];

            int i = (playerID + 1) > 1 ? 0 : playerID + 1;
            //玩游戏过程中玩家一踩到了玩家二的情况
            if (playerCoordinate[playerID] == playerCoordinate[((playerID + 1) > 1 ? 0 : playerID + 1)])
            {
                Console.WriteLine($"玩家{playerArr[playerID]}踩到了玩家{playerArr[((playerID + 1) > 1 ? 0 : playerID + 1)]},玩家{playerArr[((playerID + 1) > 1 ? 0 : playerID + 1)]}退后6格");
                playerCoordinate[((playerID + 1) > 1 ? 0 : playerID + 1)] -= 6;
                playerCoordinate[((playerID + 1) > 1 ? 0 : playerID + 1)] = playerCoordinate[((playerID + 1) > 1 ? 0 : playerID + 1)] <= 0 ? 0 : playerCoordinate[((playerID + 1) > 1 ? 0 : playerID + 1)];
                Console.ReadKey(true);//判断被踩玩家回退时棋盘模块
                SwitchCheck(((playerID + 1) > 1 ? 0 : playerID + 1));

            }
            else
            {
                switch (value)
                {
                    //方块
                    case 0:
                        Console.WriteLine($"{playerArr[playerID]}踩到了方块,安全");
                        Console.ReadKey(true);
                        break;
                    //幸运轮盘
                    case 1:
                        Console.WriteLine($"{playerArr[playerID]}踩到了幸运轮盘,1--交换位置  2--轰炸对方");

                        string check = Console.ReadLine();
                        //要求必须输入1/2
                        while (check.Equals("") || (check != "1" && check != "2"))
                        {
                            Console.WriteLine("请输入1或者2,1--交换位置  2--轰炸对方");
                            check = Console.ReadLine();
                        }
                        if (check == "1")
                        {
                            int temp;
                            temp = playerCoordinate[playerID];
                            playerCoordinate[playerID] = playerCoordinate[(playerID + 1) > 1 ? 0 : playerID + 1];
                            playerCoordinate[(playerID + 1) > 1 ? 0 : playerID + 1] = temp;
                            Console.WriteLine($"{playerArr[playerID]}与{playerArr[(playerID + 1) > 1 ? 0 : playerID + 1]}交换位置");
                            SwitchCheck(playerID);//交换位置后判断棋子当前位置的情况
                            Console.ReadKey(true);
                        }

                        if (check == "2")
                        {
                            playerCoordinate[(playerID + 1) > 1 ? 0 : playerID + 1] -= 6;
                            Console.WriteLine($"{playerArr[playerID]}轰炸了{playerArr[(playerID + 1) > 1 ? 0 : playerID + 1]},{playerArr[(playerID + 1) > 1 ? 0 : playerID + 1]}回退6格");
                            Console.ReadKey(true);
                            SwitchCheck((playerID + 1) > 1 ? 0 : playerID + 1);//轰炸对方,看对方棋子位置
                        }
                        break;
                    //地雷
                    case 2:
                        Console.WriteLine($"{playerArr[playerID]}踩到了地雷,回退6格");
                        playerCoordinate[playerID] -= 6;
                        Console.ReadKey(true);
                        SwitchCheck(playerID);//判断回退位置
                        break;
                    //暂停
                    case 3:
                        Console.WriteLine($"{playerArr[playerID]}踩到了暂停,暂停一回合");
                        //flagArr[(playerID + 1) > 1 ? 0 : playerID + 1] = false;
                        Console.ReadKey(true);
                        Console.Clear();
                        PlayGame((playerID + 1) > 1 ? 0 : playerID + 1);
                        break;
                    //时空隧道
                    case 4:
                        playerCoordinate[playerID] += 10;
                        Console.WriteLine($"{playerArr[playerID]}踩到了时空隧道,前进10格");
                        Console.ReadKey(true);
                        SwitchCheck(playerID);
                        break;
                }
            }
        }

        /// <summary>
        /// 胜利
        /// </summary>
        public static void Win()//定义一个胜利的方法,用来在玩家胜利时提示胜利界面
        {
            Console.ForegroundColor = ConsoleColor.Red;//将输出内容的颜色改为红色
            Console.WriteLine("                                          ◆                         ");
            Console.WriteLine("                    ■                  ◆               ■        ■");
            Console.WriteLine("      ■■■■  ■  ■                ◆■         ■    ■        ■");
            Console.WriteLine("      ■    ■  ■  ■              ◆  ■         ■    ■        ■");
            Console.WriteLine("      ■    ■ ■■■■■■       ■■■■■■■   ■    ■        ■");
            Console.WriteLine("      ■■■■ ■   ■                ●■●       ■    ■        ■");
            Console.WriteLine("      ■    ■      ■               ● ■ ●      ■    ■        ■");
            Console.WriteLine("      ■    ■ ■■■■■■         ●  ■  ●     ■    ■        ■");
            Console.WriteLine("      ■■■■      ■             ●   ■   ■    ■    ■        ■");
            Console.WriteLine("      ■    ■      ■            ■    ■         ■    ■        ■");
            Console.WriteLine("      ■    ■      ■                  ■               ■        ■");
            Console.WriteLine("     ■     ■      ■                  ■           ●  ■          ");
            Console.WriteLine("    ■    ■■ ■■■■■■             ■              ●         ●");
            Console.ResetColor();
        }



    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值