C#飞行棋小程序设计代码
飞行棋游戏大家应该都玩过吧,如何使用C#语言进行编写,本文实例就为大家分享了飞行棋C#实现代码,供大家参考,具体内容如下
usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; usingSystem.Threading.Tasks; namespacePachee { classProgram { #region静态字段 //关卡数量 publicstaticint[]Maps=newint[100]; //玩家坐标 publicstaticint[]PlayerPos=newint[2]; //玩家名称 publicstaticstring[]PlayerNames=newstring[2]; //判断玩家是否暂停 publicstaticbool[]Flags=newbool[2]; #endregion ///<summary> ///输出游戏头 ///</summary> publicstaticvoidShowGame() { 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> publicstaticstring[]InputPlayerNames() { PlayerNames[0]=""; PlayerNames[1]=""; Console.ForegroundColor=ConsoleColor.White; while(PlayerNames[0]=="") { Console.Write("PleaseenterthenameofgameAplayer:"); PlayerNames[0]=Console.ReadLine().Trim(); if(PlayerNames[0]=="") { Console.WriteLine("Aplayernamecannotbeempty,pleaseenteragain."); continue; } break; } while(PlayerNames[1]==""||PlayerNames[0]==PlayerNames[1]) { Console.Write("PleaseenterthenameofgameBplayer:"); PlayerNames[1]=Console.ReadLine().Trim(); if(PlayerNames[1]=="") { Console.WriteLine("Bplayernamecannotbeempty,pleaseenteragain."); continue; } elseif(PlayerNames[1]==PlayerNames[0]) { Console.WriteLine("TheplayernamecannotbethesameastheplayerAB,pleaseenteragain."); continue; } break; } returnPlayerNames; } ///<summary> ///初始化地图,改变默认的地图坐标类型 ///0:方块 ///1:轮盘 ///2:地雷 ///3:暂停 ///4:隧道 ///</summary> publicstaticvoidInitailMap() { #region轮盘 int[]luckTrun={6,23,40,55,69,83}; for(inti=0;i<luckTrun.Length;i++) { Maps[luckTrun[i]]=1; } #endregion #region地雷 int[]landMine={5,13,17,33,38,50,64,80,94}; for(inti=0;i<landMine.Length;i++) { Maps[landMine[i]]=2; } #endregion #region暂停 int[]pause={9,27,60,93}; for(inti=0;i<pause.Length;i++) { Maps[pause[i]]=3; } #endregion #region隧道 int[]timeTunnel={20,25,45,63,72,88,90}; for(inti=0;i<timeTunnel.Length;i++) { Maps[timeTunnel[i]]=4; } #endregion } ///<summary> ///设定当前坐标的类型 ///</summary> ///<paramname="i">坐标</param> ///<returns>坐标类型</returns> publicstaticstringDrawStringMap(inti) { stringstr=null; if(PlayerPos[0]==PlayerPos[1]&&PlayerPos[0]==i) { str="<>"; } elseif(PlayerPos[0]==i) { str="A"; } elseif(PlayerPos[1]==i) { str="B"; } else { switch(Maps[i]) { case0: Console.ForegroundColor=ConsoleColor.Yellow; str="□"; break; case1: Console.ForegroundColor=ConsoleColor.Blue; str="◎"; break; case2: Console.ForegroundColor=ConsoleColor.Green; str="☆"; break; case3: Console.ForegroundColor=ConsoleColor.Red; str="▲"; break; case4: Console.ForegroundColor=ConsoleColor.Cyan; str="卐"; break; } } returnstr; } ///<summary> ///生成所有坐标 ///</summary> publicstaticvoidDrawMap() { Console.WriteLine("Legend:LuckTrun<◎>landMine<☆>Pause<▲>timeTunnel<卐>"); #region第一橫行 for(inti=0;i<30;i++) { Console.Write(DrawStringMap(i)); } Console.WriteLine(); #endregion #region第一竖行 for(inti=30;i<35;i++) { for(intj=0;j<=28;j++) { Console.Write(""); } Console.Write(DrawStringMap(i)); Console.WriteLine(); } #endregion #region第二橫行 for(inti=64;i>=35;i--) { Console.Write(DrawStringMap(i)); } Console.WriteLine(); #endregion #region第二竖行 for(inti=65;i<70;i++) { Console.WriteLine(DrawStringMap(i)); } #endregion #region第三橫行 for(inti=70;i<=99;i++) { Console.Write(DrawStringMap(i)); } Console.WriteLine(); #endregion } ///<summary> ///判断坐标是否超出范围 ///</summary> publicstaticvoidChangePos() { #regionPlayerA if(PlayerPos[0]<0) { PlayerPos[0]=0; } if(PlayerPos[0]>99) { PlayerPos[0]=99; } #endregion #regionPlayerB if(PlayerPos[1]<0) { PlayerPos[1]=0; } if(PlayerPos[1]>99) { PlayerPos[1]=99; } #endregion } ///<summary> ///踩到轮盘时,选择功能 ///</summary> ///<paramname="input">玩家的选择</param> ///<paramname="player">玩家标示</param> publicstaticvoidPlayerSelect(stringinput,intplayer) { while(true) { if(input=="1") { Console.WriteLine("Player{0}selectand{1}swapplaces.",PlayerNames[player],PlayerNames[1-player]); inttemp=PlayerPos[player]; PlayerPos[player]=PlayerPos[1-player]; PlayerPos[1-player]=temp; Console.WriteLine("Swapcomplete,pressanykeycontinue."); Console.ReadKey(true); break; } elseif(input=="2") { Console.WriteLine("Player{0}selectbombing{1},Player{2}backto6.",PlayerNames[player],PlayerNames[1-player],PlayerNames[1-player]); PlayerPos[1-player]-=6; Console.ReadKey(true); break; } else { Console.WriteLine("Canonlyselect:1--Swapplaces2--bombing:"); input=Console.ReadLine(); } } } ///<summary> ///进行游戏 ///</summary> ///<paramname="player">玩家标示位</param> publicstaticvoidPlayGame(intplayer) { Randomr=newRandom(); intnext=r.Next(1,7); Console.WriteLine("{0}pressanykeytostartrollingthedice.",PlayerNames[player]); Console.ReadKey(true); Console.WriteLine("{0}Throwoutof{1}",PlayerNames[player],next); PlayerPos[player]+=next; ChangePos(); Console.ReadKey(true); Console.WriteLine("{0}pressanykeytostartaction.",PlayerNames[player]); Console.ReadKey(true); Console.WriteLine("{0}actioncomplete.",PlayerNames[player]); Console.ReadKey(true); //PlayerA有可能踩到:PlayerB、方块、轮盘、地雷、暂停、隧道 if(PlayerPos[player]==PlayerPos[1-player]) { Console.WriteLine("Player{0}stepon{1},{2}backto6.",PlayerNames[player],PlayerNames[1-player],PlayerNames[1-player]); PlayerPos[1-player]-=6; Console.ReadKey(true); } else { switch(Maps[PlayerPos[player]]) { case0: Console.WriteLine("Player{0}steponSquare,safe.",PlayerNames[player]); Console.ReadKey(true); break; case1: Console.WriteLine("Player{0}steponaLuckTrun,pleaseselect:1--Swapplaces2--bombing:",PlayerNames[player]); stringinput=Console.ReadLine().Trim(); PlayerSelect(input,player); Console.ReadKey(true); break; case2: Console.WriteLine("Player{0}steponaLandMine,backto6",PlayerNames[player]); PlayerPos[player]-=6; Console.ReadKey(true); break; case3: Console.WriteLine("Player{0}steponaPause,tosuspendaround.",PlayerNames[player]); Console.ReadKey(true); Flags[player]=true; break; case4: Console.WriteLine("Player{0}steponaTimeTunnel,forward10.",PlayerNames[player]); PlayerPos[player]+=10; Console.ReadKey(); break; } } ChangePos(); Console.Clear(); DrawMap(); } staticvoidMain(string[]args) { ShowGame(); InputPlayerNames(); Console.WriteLine("Player{0}isA.",PlayerNames[0]); Console.WriteLine("Player{0}isB.",PlayerNames[1]); InitailMap(); DrawMap(); while(PlayerPos[0]<99&&PlayerPos[1]<99) { #regionA if(Flags[0]==false) { PlayGame(0); } else { Flags[0]=false; } #endregion #regionB 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(); } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。