国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#飛行棋小程序設計代碼

2019-10-29 21:19:49
字體:
來源:轉載
供稿:網友

飛行棋游戲大家應該都玩過吧,如何使用C#語言進行編寫,本文實例就為大家分享了飛行棋C#實現代碼,供大家參考,具體內容如下

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Pachee{  class Program  {    #region 靜態字段    // 關卡數量    public static int[] Maps = new int[100];    // 玩家坐標    public static int[] PlayerPos = new int[2];    // 玩家名稱    public static string[] PlayerNames = new string[2];    // 判斷玩家是否暫停    public static bool[] Flags = new bool[2];    #endregion    /// <summary>    /// 輸出游戲頭    /// </summary>    public static void ShowGame()    {      Console.ForegroundColor = ConsoleColor.Green;      Console.WriteLine("****************************");      Console.ForegroundColor = ConsoleColor.Blue;      Console.WriteLine("****************************");      Console.ForegroundColor = ConsoleColor.White;      Console.WriteLine("***C#基礎練習:飛行棋項目***");      Console.ForegroundColor = ConsoleColor.Yellow;      Console.WriteLine("****************************");      Console.ForegroundColor = ConsoleColor.Red;      Console.WriteLine("****************************");    }    /// <summary>    /// 接受用戶輸入的游戲名稱,判斷是否合法    /// </summary>    /// <returns>游戲名稱</returns>    public static string[] InputPlayerNames()    {      PlayerNames[0] = "";      PlayerNames[1] = "";      Console.ForegroundColor = ConsoleColor.White;      while (PlayerNames[0] == "")      {        Console.Write("Please enter the name of game A player: ");        PlayerNames[0] = Console.ReadLine().Trim();        if (PlayerNames[0] == "")        {          Console.WriteLine("A player name cannot be empty, please enter again.");          continue;        }        break;      }      while (PlayerNames[1] == "" || PlayerNames[0] == PlayerNames[1])      {        Console.Write("Please enter the name of game B player: ");        PlayerNames[1] = Console.ReadLine().Trim();        if (PlayerNames[1] == "")        {          Console.WriteLine("B player name cannot be empty, please enter again.");          continue;        }        else if (PlayerNames[1] == PlayerNames[0])        {          Console.WriteLine("The player name cannot be the same as the player A B, please enter again.");          continue;        }        break;      }      return PlayerNames;    }    /// <summary>    /// 初始化地圖,改變默認的地圖坐標類型    /// 0:方塊    /// 1:輪盤    /// 2:地雷    /// 3:暫停    /// 4:隧道    /// </summary>    public static void InitailMap()    {      #region 輪盤      int[] luckTrun = { 6, 23, 40, 55, 69, 83 };      for (int i = 0; i < luckTrun.Length; i++)      {        Maps[luckTrun[i]] = 1;      }      #endregion      #region 地雷      int[] landMine = { 5, 13, 17, 33, 38, 50, 64, 80, 94 };      for (int i = 0; i < landMine.Length; i++)      {        Maps[landMine[i]] = 2;      }      #endregion      #region 暫停      int[] pause = { 9, 27, 60, 93 };      for (int i = 0; i < pause.Length; i++)      {        Maps[pause[i]] = 3;      }      #endregion      #region 隧道      int[] timeTunnel = { 20, 25, 45, 63, 72, 88, 90 };      for (int i = 0; i < timeTunnel.Length; i++)      {        Maps[timeTunnel[i]] = 4;      }      #endregion    }    /// <summary>    /// 設定當前坐標的類型    /// </summary>    /// <param name="i">坐標</param>    /// <returns>坐標類型</returns>    public static string DrawStringMap(int i)    {      string str = null;      if (PlayerPos[0] == PlayerPos[1] && PlayerPos[0] == i)      {        str = "<>";      }      else if (PlayerPos[0] == i)      {        str = "A";      }      else if (PlayerPos[1] == i)      {        str = "B";      }      else      {        switch (Maps[i])        {          case 0:            Console.ForegroundColor = ConsoleColor.Yellow;            str = "□";            break;          case 1:            Console.ForegroundColor = ConsoleColor.Blue;            str = "◎";            break;          case 2:            Console.ForegroundColor = ConsoleColor.Green;            str = "☆";            break;          case 3:            Console.ForegroundColor = ConsoleColor.Red;            str = "▲";            break;          case 4:            Console.ForegroundColor = ConsoleColor.Cyan;            str = "卐";            break;        }      }      return str;    }    /// <summary>    /// 生成所有坐標    /// </summary>    public static void DrawMap()    {      Console.WriteLine("Legend: LuckTrun<◎> landMine<☆> Pause<▲> timeTunnel<卐>");      #region 第一橫行      for (int i = 0; i < 30; i++)      {        Console.Write(DrawStringMap(i));      }      Console.WriteLine();      #endregion      #region 第一豎行      for (int i = 30; i < 35; i++)      {        for (int j = 0; j <= 28; j++)        {          Console.Write(" ");        }        Console.Write(DrawStringMap(i));        Console.WriteLine();      }      #endregion      #region 第二橫行      for (int i = 64; i >= 35; i--)      {        Console.Write(DrawStringMap(i));      }      Console.WriteLine();      #endregion      #region 第二豎行      for (int i = 65; i < 70; i++)      {        Console.WriteLine(DrawStringMap(i));      }      #endregion      #region 第三橫行      for (int i = 70; i <= 99; i++)      {        Console.Write(DrawStringMap(i));      }      Console.WriteLine();      #endregion    }    /// <summary>    /// 判斷坐標是否超出范圍    /// </summary>    public static void ChangePos()    {      #region Player A      if (PlayerPos[0] < 0)      {        PlayerPos[0] = 0;      }      if (PlayerPos[0] > 99)      {        PlayerPos[0] = 99;      }      #endregion      #region Player B      if (PlayerPos[1] < 0)      {        PlayerPos[1] = 0;      }      if (PlayerPos[1] > 99)      {        PlayerPos[1] = 99;      }      #endregion    }    /// <summary>    /// 踩到輪盤時,選擇功能    /// </summary>    /// <param name="input">玩家的選擇</param>    /// <param name="player">玩家標示</param>    public static void PlayerSelect(string input, int player)    {      while (true)      {        if (input == "1")        {          Console.WriteLine("Player {0} select and {1} swap places.", PlayerNames[player], PlayerNames[1 - player]);          int temp = PlayerPos[player];          PlayerPos[player] = PlayerPos[1 - player];          PlayerPos[1 - player] = temp;          Console.WriteLine("Swap complete, press any key continue.");          Console.ReadKey(true);          break;        }        else if (input == "2")        {          Console.WriteLine("Player {0} select bombing {1}, Player {2} back to 6.", PlayerNames[player], PlayerNames[1 - player], PlayerNames[1 - player]);          PlayerPos[1 - player] -= 6;          Console.ReadKey(true);          break;        }        else        {          Console.WriteLine("Can only select: 1--Swap places 2--bombing: ");          input = Console.ReadLine();        }      }    }    /// <summary>    /// 進行游戲    /// </summary>    /// <param name="player">玩家標示位</param>    public static void PlayGame(int player)    {      Random r = new Random();      int next = r.Next(1, 7);      Console.WriteLine("{0} press any key to start rolling the dice.", PlayerNames[player]);      Console.ReadKey(true);      Console.WriteLine("{0} Throw out of {1}", PlayerNames[player], next);      PlayerPos[player] += next;      ChangePos();      Console.ReadKey(true);      Console.WriteLine("{0} press any key to start action.", PlayerNames[player]);      Console.ReadKey(true);      Console.WriteLine("{0} action complete.", PlayerNames[player]);      Console.ReadKey(true);      // Player A 有可能踩到: Player B、方塊、輪盤、地雷、暫停、隧道      if (PlayerPos[player] == PlayerPos[1 - player])      {        Console.WriteLine("Player {0} step on {1}, {2} back to 6.", PlayerNames[player], PlayerNames[1 - player], PlayerNames[1 - player]);        PlayerPos[1 - player] -= 6;        Console.ReadKey(true);      }      else      {        switch (Maps[PlayerPos[player]])        {          case 0:            Console.WriteLine("Player {0} step on Square, safe.", PlayerNames[player]);            Console.ReadKey(true);            break;          case 1:            Console.WriteLine("Player {0} step on a LuckTrun, please select: 1--Swap places 2--bombing: ", PlayerNames[player]);            string input = Console.ReadLine().Trim();            PlayerSelect(input, player);            Console.ReadKey(true);            break;          case 2:            Console.WriteLine("Player {0} step on a LandMine, back to 6", PlayerNames[player]);            PlayerPos[player] -= 6;            Console.ReadKey(true);            break;          case 3:            Console.WriteLine("Player {0} step on a Pause, to suspend a round.", PlayerNames[player]);            Console.ReadKey(true);            Flags[player] = true;            break;          case 4:            Console.WriteLine("Player {0} step on a TimeTunnel, forward 10.", PlayerNames[player]);            PlayerPos[player] += 10;            Console.ReadKey();            break;        }      }      ChangePos();      Console.Clear();      DrawMap();    }    static void Main(string[] args)    {      ShowGame();      InputPlayerNames();      Console.WriteLine("Player {0} is A.", PlayerNames[0]);      Console.WriteLine("Player {0} is B.", PlayerNames[1]);      InitailMap();      DrawMap();      while (PlayerPos[0] < 99 && PlayerPos[1] < 99)      {        #region A        if (Flags[0] == false)        {          PlayGame(0);        }        else        {          Flags[0] = false;        }        #endregion        #region B        if (Flags[1] == false)        {          PlayGame(1);        }        else        {          Flags[1] = false;        }        #endregion      }      #region 判斷玩家勝利      if (PlayerPos[0] == 99)      {        Console.Clear();        Console.WriteLine("Player {0} Win.", PlayerNames[0]);      }      if (PlayerPos[1] == 99)      {        Console.Clear();        Console.WriteLine("Player {0} Win.", PlayerNames[1]);      }      #endregion      Console.ReadKey();    }  }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广东省| 东明县| 临泽县| 昭平县| 文成县| 霍城县| 苍山县| 凤翔县| 乌拉特中旗| 岱山县| 梁山县| 海宁市| 玉树县| 宣汉县| 肥西县| 黔西| 资阳市| 历史| 平阴县| 花莲县| 诸城市| 昭觉县| 吐鲁番市| 高淳县| 绍兴市| 甘南县| 永安市| 永泰县| 南投市| 尉氏县| 育儿| 陇西县| 娄底市| 兴隆县| 安顺市| 霍林郭勒市| 沙雅县| 高阳县| 宁晋县| 大港区| 油尖旺区|