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

本文实例为大家分享了C#控制台实现简单飞行棋游戏的具体代码,供大家参考,具体内容如下
需求分析

1.制作游戏头部:游戏头部介绍
2.绘制地图

使用一维数组装整个地图的路线
如果这个位置是0,绘制普通格子□
如果这个位置是1,绘制幸运轮盘◎
如果这个位置是2,绘制地雷★
如果这个位置是3,绘制暂停▲
如果这个位置是4,绘制时空隧道卍
规划幸运轮盘位置

int[] luckyturn = { 6, 23, 40, 55, 69, 83 };

规划地雷的位置
int[] landMine = { 5,13,17,33,38,50,64,80,94};

规划暂停位置
int[] pause = {9,27,60,93 };

规划时空隧道的位置
int[] timeTunnel = { 20, 25, 45, 63, 72, 88, 90 };

3.设置特殊关卡

代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _01飞行棋{class Program{/// /// 整个地图数组/// static int[] Maps = new int[100]; /// /// 存储玩家的数组/// static int[] PlayerPos = new int[2]; /// /// 玩家名称的数组/// static string[] PlayerName = new string[2]; static bool[] PlayerFlage = new bool[2]; static void Main(string[] args){//绘制游戏标题ShowTitle(); //输入玩家名称Console.WriteLine("请输入玩家A的姓名:"); PlayerName[0] = Console.ReadLine(); while (PlayerName[0] == ""){Console.WriteLine("玩家A的姓名不能为空,请重新输入!"); PlayerName[0]=Console.ReadLine(); }Console.WriteLine("请输入玩家B的姓名:"); PlayerName[1] = Console.ReadLine(); while (PlayerName[1]==""||PlayerName[1]==PlayerName[0]){if (PlayerName[1]==""){Console.WriteLine("玩家B的姓名不能为空,请重新输入!"); PlayerName[1]= Console.ReadLine(); }if (PlayerName[1]==PlayerName[0]){Console.WriteLine("玩家B的姓名和A重复,请重新输入!"); PlayerName[1] = Console.ReadLine(); }}//输入完姓名,清空屏幕Console.Clear(); ShowTitle(); //初始化地图关卡InitialMap(); //绘制地图DrawMap(); Console.ReadLine(); while (PlayerPos[0]<99&&PlayerPos[1]<99){if (PlayerFlage[0]==false){PlayGame(0); }else{PlayerFlage[0] = false; }if(PlayerFlage[1]==false){PlayGame(1); }else{PlayerFlage[1] = false; }if (PlayerPos[0] == 99){Console.WriteLine("恭喜玩家[{0}]获胜", PlayerName[0]); }if (PlayerPos[1] == 99){Console.WriteLine("恭喜玩家[{0}]获胜", PlayerName[1]); }}}/// /// 设置游戏标题/// static void ShowTitle(){//设置颜色Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine("************************************"); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("************************************"); Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("************************************"); Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("***************飞行棋***************"); Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("************************************"); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("************************************"); Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine("************************************"); }/// /// 初始化地图关卡/// static void InitialMap(){//确定幸运轮盘的位置◎==1int[] luckyturn = { 6, 23, 40, 55, 69, 83 }; for (int i=0; i34; i--){Console.Write(DrawString(i)); }Console.WriteLine(); ///第二竖列for (int i=65; i<70; i++){Console.WriteLine(DrawString(i)); }///第三横行for (int i=70; i<100; i++){Console.Write(DrawString(i)); }Console.WriteLine(); }/// /// 判断绘制地图的方法/// /// private static string DrawString(int pos){string str = ""; if (PlayerPos[0] == PlayerPos[1] && PlayerPos[0] == pos){Console.ForegroundColor = ConsoleColor.DarkRed; str ="<>"; }else if (PlayerPos[0] == pos){Console.ForegroundColor = ConsoleColor.Magenta; str="A"; }else if (PlayerPos[1] == pos){Console.ForegroundColor = ConsoleColor.DarkBlue; str ="B"; }else{switch (Maps[pos]){case 0:Console.ForegroundColor = ConsoleColor.Cyan; str ="□"; break; case 1:Console.ForegroundColor = ConsoleColor.Green; str ="◎"; break; case 2:Console.ForegroundColor = ConsoleColor.Red; str ="★"; break; case 3:Console.ForegroundColor = ConsoleColor.Blue; str ="▲"; break; case 4:Console.ForegroundColor = ConsoleColor.Yellow; str ="卍"; break; default:break; }}return str; }//游戏环节static void PlayGame(int playerNum){Random r = new Random(); Console.WriteLine("玩家[{0}]按下任意键掷骰子.",PlayerName[playerNum]); Console.ReadKey(true); int number = r.Next(1, 7); Console.WriteLine("玩家[{0}]掷出<{1}>点.",PlayerName[playerNum],number); Console.WriteLine("玩家[{0}]按下任意键进行移动.",PlayerName[playerNum]); Console.ReadKey(true); PlayerPos[playerNum] += number; Console.WriteLine("玩家[{0}]移动完成!",PlayerName[playerNum]); //玩家踩到对方ChangedCheck(); if (PlayerPos[playerNum]==PlayerPos[1-playerNum]){Console.WriteLine("玩家[{0}]踩到玩家[{1}],玩家[{1}]退6步", PlayerName[playerNum], PlayerName[1 - playerNum]); PlayerPos[1 - playerNum] -= 6; }else{switch (Maps[PlayerPos[playerNum]]){//踩到普通地板,安全没有奖惩case 0:Console.WriteLine("玩家[{0}]踩到安全地带,没有奖惩!按下任意键继续游戏", PlayerName[playerNum]); Console.ReadKey(true); break; //踩到1幸运轮盘,选择奖励case 1:Console.WriteLine("玩家[{0}]踩到幸运轮盘,请选择:a--交换位置b--轰炸对方.", PlayerName[playerNum]); string input = Console.ReadLine(); while (true){if (input =="a"){Console.WriteLine("玩家[{0}]选择与玩家[{1}]交换位置.",PlayerName[playerNum],PlayerName[1-playerNum]); int temp = PlayerPos[playerNum]; PlayerPos[playerNum] = PlayerPos[1 - playerNum]; PlayerPos[1 - playerNum] = temp; Console.WriteLine("玩家[{0}]与玩家[{1}]交换位置完成!按下任意键继续游戏", PlayerName[playerNum], PlayerName[1 - playerNum]); Console.ReadKey(true); break; }else if (input == "b"){Console.WriteLine("玩家[{0}]选择轰炸玩家[{1}]", PlayerName[playerNum], PlayerName[1 - playerNum]); PlayerPos[1 - playerNum] -= 6; Console.WriteLine("玩家[{0}]被轰炸倒退6步!按下任意键继续游戏",PlayerName[1-playerNum]); Console.ReadKey(true); break; }else{input = Console.ReadLine(); }}break; //踩到2地雷,直接倒退6格case 2:Console.WriteLine("玩家[{0}]踩到地雷,退6格! 按下任意键继续游戏", PlayerName[playerNum]); PlayerPos[playerNum] -= 6; Console.ReadKey(true); break; //踩到3暂停,下个回合暂停case 3:Console.WriteLine("玩家[{0}]踩到暂停,下个回合暂停操作!按下任意键继续游戏", PlayerName[playerNum]); PlayerFlage[playerNum] = true; Console.ReadKey(true); break; //踩到4时空隧道,直接前进10步case 4:Console.WriteLine("玩家[{0}]踩到时空隧道,前进10步!按下任意键继续游戏", PlayerName[playerNum]); PlayerPos[playerNum] += 10; Console.ReadKey(true); break; }}ChangedCheck(); Console.Clear(); ShowTitle(); DrawMap(); }static void ChangedCheck(){if (PlayerPos[0]<0){PlayerPos[0] = 0; }if (PlayerPos[0]>99){PlayerPos[0] = 99; }if (PlayerPos[1] < 0){PlayerPos[1] = 0; }if (PlayerPos[1] > 99){PlayerPos[1] = 99; }}}}

【C#控制台实现简单飞行棋游戏】以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    推荐阅读