飞行棋playTNT,C#实现飞行棋
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了飞行棋playTNT,C#实现飞行棋相关的知识,希望对你有一定的参考价值。
参考技术A 提起飞行棋playTNT,大家都知道,有人问C#实现飞行棋,另外,还有人想问飞行棋play是什么,你知道这是怎么回事?其实playchess是什么意思,下面就一起来看看C#实现飞行棋,希望能够帮助到大家!飞行棋playTNT
1、C#实现飞行棋
‘五子棋程序人机对战版本
‘需要2个Label控件2个CommandButton控件
PrivateDeclareFunctionSetWindowRgnLib””(ByValhWndAsLong,ByValhRgnAsLong,ByValbRedrawAsBoolean)AsLong飞行棋play贺峻霖。
PrivateDeclareFunctionCreateRoundRectRgnLib””(,,,,,)AsLong
‘DimPlayStep()AsString’记录棋谱的数组飞行棋play时代少年团七人。
‘DimAsString
PrivateConstBoxLAsSingle=50,BoxTAsSingle=50,BoxWAsSingle=25,BoxNAsInteger=18
DimTable()AsLong’棋盘(0-BoxN,0-BoxN)0-空1-黑子2-白子
DimPsCore()AsLong’定义当前玩家桌面空格的分数all霖车mono飞行棋。
DimCsCore()AsLong’定义当前电脑桌面空格的分数TNT全员×你猛车河马的秘密。
DimpWin()AsBoolean’定义玩家的获胜组合
DimcWin()AsBoolean’定义电脑的获胜组合
DimpFlag()AsBoolean’定义玩家的获胜组合标志
DimcFlag()AsBoolean’定义电脑的获胜组合标志飞行棋play时代少年团writeas。
DimThePlayFlagAsBoolean’定义游戏有效标志男男情侣飞行棋棋盘的图片。
PrivateSubCommand1_Click()
IfNotThePlayFlagThenCallInitPlayEnvironment:ExitSub
IfMsgBox(“本局还没有下完,是否重新开始?(Y/N)”,vbYesNo)=vbNoThenExitSub严浩翔自己做扩张。
CallInitPlayEnvironmentM任务表飞行棋。
EndSub
PrivateSubCommand2_Click()EndSub飞行棋all祺。
PrivateSubForm_Load()
DimiAsLong,lwAsLong,lhAsLong
‘=”黑方行00列00″
Me.Width=:Me.Height=祺鑫浴室镜子。
‘Me.Caption=”五子棋-人机对战”:Me.Show严浩翔给贺峻霖塞玩具。
lw=Me.Width\Screen.TwipsPerPixelX:lh=Me.Height\Screen.TwipsPerPixelY严浩翔刘耀文严**扩张。
SetWindowRgnMe.hWnd,CreateRoundRectRgn(0,0,lw,lh,60,60),True
WithLabel1
.Alignment=vbCenter:.FontSize=12:.FontBold=True
.ForeColor=vbRed:.BackStyle=0:.AutoSize=True:.Move,
EndWith
Label2.AutoSize=True:Label2.WordWrap=True
Label2.BackStyle=0:Label2.Move,,河马的秘密河飞行棋。
Command1.Move,,,:Command1.Caption=”再来一局”
Command2.Move,,,:Command2.Caption=””TNT国王游戏车。
CallDrawChessBoard:Me.FillStyle=0:CallInitPlayEnvironment
EndSub
PrivateSubForm_QueryUnload(CancelAsInteger,UnloadModeAsInteger)EndSub
PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
DimiRowAsLong,iColAsLong,iAsLong,kAsLong,tAsString
IfNotThePlayFlagThenExitSub
IfButton=vbLeftButtonThen’左键下棋
iRow=-1:iCol=-1祺鑫文轩翔霖三受玩游戏。
Fori=0ToBoxN’鼠标必须落在交叉点半径10以内若是则给出行列号
If(Y+10)>(BoxT+i*BoxW)And(Y-10)<=(BoxT+i*BoxW)TheniRow=i
If(X+10)>(BoxL+i*BoxW)And(X-10)<=(BoxL+i*BoxW)TheniCol=i
Next
If(iRow=-1)Or(iCol=-1)ThenBeep:ExitSub
IfTable(iCol,iRow)>0ThenExitSub贺峻霖给刘耀**扩张。
Table(iCol,iRow)=2:Label1.Caption=”下一步黑方”
Me.FillColor=vbWhite:Me.Circle(iCol*BoxW+BoxT,iRow*BoxW+BoxL),8
Fori=0ToUBound(cWin,3)
IfcWin(iCol,iRow,i)=TrueThencFlag(i)=False
Next
CallCheckWin:CallDianNao’检查当前玩家是否获胜调用电脑算法
EndIf
EndSub
PublicSubInitPlayEnvironment()刘耀文贺峻霖囊袋。
‘*****************************************************************************
‘模块名称:InitPlayEnvironment[初始化过程]’描述:1.设置背景音乐。2.设置游戏状态有效。
‘3.初始化游戏状态标签。4.直接指定电脑的**步走法。
‘5.初始化基本得分桌面。6.电脑和玩家获胜标志初始化。
‘7.初始化所有获胜组合。8.重新设定玩家的获胜标志。
‘*****************************************************************************all祺多人运动。
DimiAsLong,jAsLong,mAsLong,nAsLong
ThePlayFlag=True:Label1.Caption=”下一步白方”:Label2.Caption=””情侣飞行棋游戏。
Me.FillColor=vbBlack:Me.FillStyle=0:Me.AutoRedraw=True
Me.Cls:Me.Circle(9*BoxW+BoxL,9*BoxW+BoxT),8
ReDimTable(0ToBoxN,0ToBoxN)AsLong
ReDimpFlag(NumsWin(BoxN+1)-1)AsBoole****l祺六个一起上马嘉祺。
ReDimcFlag(UBound(pFlag))AsBoolean
ReDimPsCore(BoxN,BoxN)AsLong,CsCore(BoxN,BoxN)AsLong
ReDimpWin(BoxN,BoxN,UBound(pFlag))AsBoolean刘耀文往马嘉祺里塞td。
ReDimcWin(BoxN,BoxN,UBound(pFlag))AsBoolean
Fori=0ToUBound(pFlag):pFlag(i)=True:cFlag(i)=True:Next时代少年团乱炖飞行棋。
Table(9,9)=1’假定电脑先手并下了(9,9)位将其值设为1飞行棋all鑫。
‘********初始化获胜组合****************************************河马的秘密河翔霖飞行棋。
Fori=0ToBoxN:Forj=0ToBoxN-4
Form=0To4
pWin(j+m,i,n)=True:cWin(j+m,i,n)=True
Next
n=n+1
Next:Next
Fori=0ToBoxN:Forj=0ToBoxN-4
Form=0To4
pWin(i,j+m,n)=True:cWin(i,j+m,n)=True
Next
n=n+1
Next:Next
Fori=0ToBoxN-4:Forj=0ToBoxN-4
Form=0To4
pWin(j+m,i+m,n)=True:cWin(j+m,i+m,n)=True
Next
n=n+1
Next:Next
Fori=0ToBoxN-4:Forj=-1
Form=0To4
pWin(j-m,i+m,n)=True:cWin(j-m,i+m,n)=True
Next
n=n+1
Next:Next
‘********初始化获胜组合结束*************************************
Fori=0ToUBound(pWin,3)’由于电脑已下了(9,9)位所以需要重新设定玩家的获胜标志
IfpWin(9,9,i)=TrueThenpFlag(i)=False
Next
EndSub
PublicFunctionDrawChessBoard()AsLong
‘容器的(BoxL,BoxT)为左上角坐标画一个BoxN*BoxN,每格边长为BoxW象素的棋盘
DimiAsLong,jAsLong,cxAsLong,cyAsLong
Me.ScaleMode=3:Me.FillStyle=1:Me.AutoRedraw=True:Me.Cls
Fori=0ToBoxN’画棋盘
Me.Line(BoxL+i*BoxW,BoxT)-(BoxL+i*BoxW,BoxT+BoxN*BoxW)
Me.Line(BoxL,BoxT+i*BoxW)-(BoxL+BoxN*BoxW,BoxT+i*BoxW)
Me.CurrentX=BoxL+i*BoxW-IIf(i>9,6,2)
Me.CurrentY=BoxT-20:Me.PrintFormat(i)
Me.CurrentX=BoxL-IIf(i>9,23,20)
Me.CurrentY=BoxT+i*BoxW-6:Me.PrintFormat(i)
Next
Fori=:Forj=’画小标志
cx=BoxL+j*BoxW-3:cy=BoxT+i*BoxW-3
Me.Line(cx,cy)-(cx+6,cy+6),,B
Next:Next
Me.AutoRedraw=False:SetMe.Picture=Me.Image
EndFunction
PublicSubCheckWin()
‘*****************************************************************************
‘模块名称:CheckWin[获胜检查算法]’描述:1.检查是否和棋。2.检查电脑是否获胜。3.检查玩家是否获胜。
‘*****************************************************************************
DimiAsLong,jAsLong,kAsLong,mAsLong,nAsLong
DimcAAsLong,pAAsLong,cNAsLong
Fori=0ToUBound(cFlag):cN=IIf(cFlag(i)=False,cN+1,cN):Next
IfcN=UBound(cFlag)-1Then’设定和棋规则
Label1.Caption=”双方和棋!”:ThePlayFlag=False:ExitSub
EndIf
Fori=0ToUBound(cFlag)’检查电脑是否获胜
IfcFlag(i)=TrueThen
cA=0:Forj=0ToBoxN:Fork=0ToBoxN
IfTable(j,k)=1AndcWin(j,k,i)=TrueThencA=cA+1
Next:Next
IfcA=5ThenLabel1.Caption=”电脑获胜!”:ThePlayFlag=False:ExitSub
EndIf
Next
Fori=0ToUBound(pFlag)’检查玩家是否获胜
IfpFlag(i)=TrueThen
pA=0:Forj=0ToBoxN:Fork=0ToBoxN
IfTable(j,k)=2AndpWin(j,k,i)=TrueThenpA=pA+1
Next:Next
IfpA=5ThenLabel1.Caption=”玩家获胜!”:ThePlayFlag=False:ExitSub
EndIf
Next
EndSub
PublicSubDianNao()
‘*****************************************************************************
‘模块名称:DianNao[电脑算法]
‘描述:1.初始化赋值系统。2.赋值加强算法。3.计算电脑和玩家的**攻击位。
‘4.比较电脑和玩家的**攻击位并决定电脑的**策略。5.执行检查获胜函数。
‘*****************************************************************************
DimiAsLong,jAsLong,kAsLong,mAsLong,nAsLong
DimDcAsLong,cAbAsLong,pAbAsLong
ReDimPsCore(BoxN,BoxN)AsLong,CsCore(BoxN,BoxN)AsLong’初始化赋值数组
‘********电脑加强算法********
Fori=0ToUBound(cFlag)
IfcFlag(i)=TrueThen
cAb=0
Forj=0ToBoxN:Fork=0ToBoxN
IfTable(j,k)=1AndcWin(j,k,i)=TrueThencAb=cAb+1
Next:Next
SelectCasecAb
Case3
Form=0ToBoxN:Forn=0ToBoxN
IfTable(m,n)=0AndcWin(m,n,i)=TrueThenCsCore(m,n)=CsCore(m,n)+5
Next:Next
Case4
Form=0ToBoxN:Forn=0ToBoxN
playchess是什么意思
IfTable(m,n)=0AndcWin(m,n,i)=TrueThen
Table(m,n)=1:Label1.Caption=”下一步白方”
Me.FillColor=vbBlack:Me.Circle(m*BoxW+BoxL,n*BoxW+BoxT),8
ForDc=0ToUBound(pWin,3)
IfpWin(m,n,Dc)=TrueThenpFlag(Dc)=False:CallCheckWin:ExitSub
Next
EndIf
Next:Next
EndSelect
EndIf
Next
Fori=0ToUBound(pFlag)
IfpFlag(i)=TrueThen
pAb=0
Forj=0ToBoxN:Fork=0ToBoxN
IfTable(j,k)=2AndpWin(j,k,i)=TrueThenpAb=pAb+1
Next:Next
SelectCasepAb
Case3
Form=0ToBoxN:Forn=0ToBoxN
IfTable(m,n)=0AndpWin(m,n,i)=TrueThenPsCore(m,n)=PsCore(m,n)+30
Next:Next
Case4
Form=0ToBoxN:Forn=0ToBoxN
IfTable(m,n)=0AndpWin(m,n,i)=TrueThen
Table(m,n)=1:Label1.Caption=”下一步白方”
Me.FillColor=vbBlack:Me.Circle(m*BoxW+BoxL,n*BoxW+BoxT),8
ForDc=0ToUBound(pWin,3)
IfpWin(m,n,Dc)=TrueThenpFlag(Dc)=False:CallCheckWin:ExitSub
Next
EndIf
Next:Next
EndSelect
EndIf
Next
‘********电脑加强算法结束********
‘********赋值系统****************
Fori=0ToUBound(cFlag)
IfcFlag(i)=TrueThen
Forj=0ToBoxN:Fork=0ToBoxN
If(Table(j,k)=0)AndcWin(j,k,i)Then
Form=0ToBoxN:Forn=0ToBoxN
If(Table(m,n)=1)AndcWin(m,n,i)ThenCsCore(j,k)=CsCore(j,k)+1
Next:Next
EndIf
Next:Next
EndIf
Next
Fori=0ToUBound(pFlag)
IfpFlag(i)=TrueThen
Forj=0ToBoxN:Fork=0ToBoxN
If(Table(j,k)=0)AndpWin(j,k,i)Then
Form=0ToBoxN:Forn=0ToBoxN
If(Table(m,n)=2)AndpWin(m,n,i)ThenPsCore(j,k)=PsCore(j,k)+1
Next:Next
EndIf
Next:Next
EndIf
Next
‘********赋值系统结束************
‘********分值比较算法************
DimaAsLong,bAsLong,cAsLong,dAsLong
DimcSAsLong,pSAsLong
Fori=0ToBoxN:Forj=0ToBoxN
IfCsCore(i,j)>cSThencS=CsCore(i,j):a=i:b=j
Next:Next
Fori=0ToBoxN:Forj=0ToBoxN
IfPsCore(i,j)>pSThenpS=PsCore(i,j):c=i:d=j
Next:Next
IfcS>pSThen
Table(a,b)=1:Label1.Caption=”下一步白方”
Me.FillColor=vbBlack:Me.Circle(a*BoxW+BoxL,b*BoxW+BoxT),8
Fori=0ToUBound(pWin,3)
IfpWin(a,b,i)=TrueThenpFlag(i)=False
Next
Else
Table(c,d)=1:Label1.Caption=”下一步白方”
Me.FillColor=vbBlack:Me.Circle(c*BoxW+BoxL,d*BoxW+BoxL),8
Fori=0ToUBound(pWin,3)
IfpWin(c,d,i)=TrueThenpFlag(i)=False
Next
EndIf
‘********分值比较算法结束********
CallCheckWin
EndSub
PublicFunctionNumsWin(ByValnAsLong)AsLong
‘根据输入的棋盘布局n*n计算总共有多少种获胜组合
‘假定棋盘为10*10相应的棋盘数组就是Table(9,9)
‘水向每一列获胜组合是6共10列6*10=60
‘垂直方向每一行获胜组合是6共10行8*10=60
‘正对角线方向6+(5+4+3+2+1)*2=36
‘反对角线方向6+(5+4+3+2+1)*2=36
‘总的获胜组合数为60+60+36+36=
DimiAsLong,tAsLong
Fori=n–1:t=t+i:Next
NumsWin=2*(2*t+n-4)+2*n*(n-4)
EndFunction
纠正飞行棋的错误
错误1:在运行暂停功能时,这个暂停功能可以实现,但无法显示提示信息。
改正如下:
case 3: Console.Clear(); Program.drawmap(); isstop[0] = true; Console .WriteLine ("{0}走到了暂停,暂停一次!", name[0]); Console.WriteLine("按任意键继续...");
Console.ReadKey(true);
原因:缺少Console.WriteLine("按任意键 继续...");
Console.ReadKey(true);
错误二:有一段代码没有效果
改正如下:
Console.Clear(); Program.chushiMap(); Program.drawmap(); Console.WriteLine("{0}掷出了{1}", name[0], playpost[0]); Console.WriteLine("*******************************************"); Console.WriteLine("{0}的位置{1}", name[0], playpost[0] + 1); Console.WriteLine("{0}的位置{1}", name[1], playpost[1] + 1);
原因:清屏的位置错误,应放在输出的前面。
错误三:玩家走不出去
改正如下:
int[] Landmine = new int[] { 45, 58, 62, 79, 88, 98 };//地雷
原因:将最后一个99设置为了一个地雷,踩了就后退六步,所以无法走出去。
下面是完整代码:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace 骑士飞行棋 7 { 8 class Program 9 { 10 static int[] map = new int[100]; 11 static int[] playpost = new int[]{0,0}; 12 /// <summary> 13 /// 界面函数 14 /// </summary> 15 static void Menus() 16 { 17 Console.WriteLine("\\t************************************************\\t"); 18 Console.WriteLine("\\t* *\\t"); 19 Console.WriteLine("\\t* 骑 士 飞 行 棋 *\\t"); 20 Console.WriteLine("\\t************************************************\\t"); 21 } 22 /// <summary> 23 /// 地图 24 /// </summary> 25 static void chushiMap() 26 { 27 28 int[] luckkey = new int[] { 6, 12, 19, 28, 46, 66 };//幸运轮盘 29 int[] Landmine = new int[] { 45, 58, 62, 79, 88, 98 };//地雷 30 int[] Pause = new int[] { 33, 51, 68, 70, 80, 95 };//暂停 31 int[] Timeturn = new int[] { 25, 39, 47, 59, 71 };//时空隧道 32 for (int i = 0; i < luckkey.Length; i++) 33 { 34 int pos = luckkey[i]; 35 map[pos] = 1; 36 } 37 for (int i = 0; i < Landmine.Length; i++) 38 { 39 int pos = Landmine [i]; 40 map[pos] = 2; 41 } 42 for (int i = 0; i < Pause.Length; i++) 43 { 44 int pos = Pause [i]; 45 map[pos] = 3; 46 } 47 for (int i = 0; i < Timeturn.Length; i++) 48 { 49 int pos = Timeturn [i]; 50 map[pos] = 4; 51 } 52 53 } 54 /// <summary> 55 /// 判断AB的位置 56 /// </summary> 57 /// <param name="pos"></param> 58 /// <returns></returns> 59 static string panduan(int pos) 60 { 61 string result = ""; 62 if (playpost[0] == pos && playpost[1] == pos) 63 { 64 Console.ForegroundColor = ConsoleColor.Red; 65 result = "<>"; 66 } 67 else if (playpost[0] == pos) 68 { 69 Console.ForegroundColor = ConsoleColor.Red; 70 result = "Α"; 71 } 72 else if (playpost[1] == pos) 73 { 74 Console.ForegroundColor = ConsoleColor.Red; 75 result = "Β"; 76 } 77 else 78 { 79 switch (map[pos]) 80 { 81 case 0: 82 result = "□"; break; 83 case 1: 84 Console.ForegroundColor = ConsoleColor.Yellow; 85 result = "◎"; break; 86 case 2: 87 Console.ForegroundColor = ConsoleColor.Green; 88 result = "※"; break; 89 case 3: 90 Console.ForegroundColor = ConsoleColor.DarkRed; 91 result = "▲"; break; 92 case 4: 93 Console.ForegroundColor = ConsoleColor.Blue; 94 result = "卍"; break; 95 96 } 97 } 98 return result; 99 } 100 /// <summary> 101 /// 绘制AB的位置,在地图上 102 /// </summary> 103 static void drawmap() 104 { 105 for (int i = 0; i <= 29; i++) 106 { 107 Console.Write(Program.panduan(i)); 108 109 } 110 Console.WriteLine(); 111 for (int i = 30; i <= 34; i++) 112 { 113 for (int j = 0; j < 29; j++) 114 { 115 Console.Write (" "); 116 } 117 Console.WriteLine(panduan(i)); 118 119 } 120 for (int i = 64; i >= 35; i--) 121 { 122 Console.Write(panduan(i)); 123 } 124 Console.WriteLine(); 125 for (int i = 65; i <= 69; i++) 126 { 127 Console.WriteLine(panduan(i)); 128 } 129 for (int i = 70; i <= 99; i++) 130 { 131 Console.Write(panduan(i)); 132 } 133 Console.WriteLine(); 134 } 135 136 /// <summary> 137 /// 作为玩家A和玩家B坐标越界的一个判断 138 /// </summary> 139 /// <param name="args"></param> 140 static void check() 141 { 142 for (int i = 0; i <= 1; i++) 143 { 144 if (playpost[i] > 99) 145 { 146 playpost[i] = 99; 147 } 148 else if (playpost[i] < 0) 149 { 150 playpost[i] = 0; 151 } 152 } 153 } 154 static int ReadInt() 155 { 156 int i = ReadInt(int.MinValue, int.MaxValue); 157 return i; 158 } 159 static int ReadInt(int min , int max) 160 { 161 while (true) 162 { 163 try 164 { 165 int number = Convert.ToInt32(Console.ReadLine()); 166 if (number < min || number > max) 167 { 168 Console.WriteLine("只能输入0-1之间的数字,从新输入!"); 169 continue; 170 } 171 return number; 172 } 173 catch 174 { 175 Console.WriteLine("只能输入数字,从新输入!"); 176 } 177 } 178 179 } 180 /// <summary> 181 /// 主函数 182 /// </summary> 183 /// <param name="args"></param> 184 static void Main(string[] args) 185 { 186 187 Random random = new Random(); 188 bool[] isstop = { false, false };//定义一个布尔类型,false表示运行、true表示暂停 189 int step = 0; 190 string[] name = new string[2];//定义AB两玩家的名称(name[0]为A玩家name[1]为B玩家) 191 Program.Menus();//显示游戏名称 192 Console.WriteLine("请输入玩家A的名称:"); 193 name[0] = Console.ReadLine(); 194 //判断用户输入的内容是否为空 195 while (name[0] == "") 196 { 197 Console.WriteLine("玩家名称不能为空,请重新输入!"); 198 name[0] = Console.ReadLine(); 199 } 200 Console.WriteLine("请输入玩家B的名称:"); 201 name[1] = Console.ReadLine(); 202 //判断用户输入的内容是否为空或是否与玩家A的名称相同 203 while (name[1] == "" || name [1] == name [0]) 204 { 205 if (name[1] == "") 206 { 207 Console.WriteLine("玩家名称不能为空,请重新输入!"); 208 name[1] = Console.ReadLine(); 209 } 210 else if (name[1] == name[0]) 211 { 212 Console.WriteLine("玩家B的名称不能与玩家A的名称相同,请重新输入!"); 213 name[1] = Console.ReadLine(); 214 } 215 } 216 Console.Clear(); 217 Program.Menus(); 218 Console.WriteLine("对战开始!"); 219 Console.WriteLine("{0}玩家使用A进行游戏", name[0]); 220 Console.WriteLine("{0}玩家使用B进行游戏", name[1]); 221 Console.WriteLine("当AB处在相同位置上时,显示<>"); 222 Console.WriteLine("幸运轮盘◎ 炸弹※ 暂停▲ 时光隧道卍 "); 223 Console.WriteLine(); 224 Program.chushiMap(); 225 Program.drawmap(); 226 Console.Clear(); 227 Program.drawmap(); 228 while(playpost [0] < 99 && playpost [1] < 99) 229 { 230 if (isstop[0] == false) 231 { 232 #region 玩家A之色子 233 234 Console.WriteLine("{0}按任意键开始游戏", name[0]); 235 Console.ReadKey(true); 236 step = random.Next(1, 7); 237 Console.WriteLine("{0}执出了:{1}", name[0], step); 238 Console.WriteLine("按任意键执行。。。。。"); 239 Console.ReadKey(true); 240 playpost[0] += step; 241 Program.check(); 242 if (playpost[0] == playpost[1]) 243 { 244 Console.Clear(); 245 Program.drawmap(); 246 Console.WriteLine("{0}撞到了{1},把{1}撞到了起点!", name [0],name [1]); 247 playpost[1] = 0; 248 Console.WriteLine("按任意键继续..."); 249 Console.ReadKey(true); 250 } 251 else 252 { 253 switch (map[playpost[0]]) 254 { 255 case 0: 256 break; 257 case 1: 258 Console.Clear(); 259 Program.drawmap(); 260 Console.WriteLine("恭喜您!走到了幸运轮盘,请您选择您的幸运数(1-2):"); 261 Console.WriteLine("---------------------------------------------------"); 262 Console.WriteLine(" 1. 交换位置 2.轰炸对方 "); 263 int userselect = ReadInt(1, 2); 264 if (userselect == 1) 265 { 266 int temp = playpost[0]; 267 playpost[0] = playpost[1]; 268 playpost[1] = temp; 269 } 270 else 271 { 272 playpost[1] = playpost[1] - 6; 273 Program.check(); 274 } 275 break; 276 case 2: 277 Console.Clear(); 278 Program.drawmap(); 279 Console.WriteLine("糟糕了!您踩到地雷了,后退六步。"); 280 playpost[0] = playpost[0] - 6; 281 Program.check(); 282 Console.WriteLine("按任意键继续..."); 283 Console.ReadKey(true); 284 break; 285 case 3: 286 Console.Clear(); 287 Program.drawmap(); 288 isstop[0] = true; 289 Console .WriteLine ("{0}走到了暂停,暂停一次!", name[0]); 290 Console.WriteLine("按任意键继续..."); 291 Console.ReadKey(true); 292 break; 293 case 4: 294 Console.Clear(); 295 Program.drawmap(); 296 Console.WriteLine("恭喜您,走到了时空隧道!前进十步"); 297 playpost[0] = playpost[0] + 10; 298 Program.check(); 299 Console.WriteLine("按任意键继续..."); 300 Console.ReadKey(true); 301 break; 302 } 303 304 } 305 Console.Clear(); 306 Program.chushiMap(); 307 308 Program.drawmap(); 309 Console.WriteLine("{0}掷出了{1}", name[0], playpost[0]); 310 Console.WriteLine("*******************************************"); 311 Console.WriteLine("{0}的位置{1}", name[0], playpost[0] + 1); 312 Console.WriteLine("{0}的位置{1}", name[1], playpost[1] + 1); 313 #endregion 314 } 315 else 316 { 317 isstop[0] = false; 318 } 319 if (playpost[0] >= 99) 320 { 321 break; 322 } 323 if (isstop[1] == false) 324 { 325 #region 玩家B之色子 326 Console.WriteLine("{0}按任意键开始游戏", name[1]); 327 Console.ReadKey(true); 328 step = random.Next(1, 7); 329 Console.WriteLine("{0}执出了:{1}", name[1], step); 330 Console.WriteLine("按任意键执行。。。。。"); 331 Console.ReadKey(true); 332 playpost[1] += step; 333 Program.check(); 334 if (playpost[0] == playpost[1]) 335 { 336 Console.Clear(); 337 Program.drawmap(); 338 Console.WriteLine("{0}撞到了{1},把{1}撞到了起点!", name[1], name[2]); 339 playpost[0] = 0; 340 Console.WriteLine("按任意键继续..."); 341 Console.ReadKey(true); 342 } 343 else 344 { 345 switch (map[playpost[1]]) 346 { 347 case 0: 348 break; 349 case 1: 350 Console.Clear(); 351 Program.drawmap(); 352 Console.WriteLine("恭喜您!走到了幸运轮盘,请您选择您的幸运数(1-2):"); 353 Console.WriteLine("---------------------------------------------------"); 354 Console.WriteLine(" 1. 交换位置 2.轰炸对方 "); 355 int userselect = ReadInt(1, 2); 356 if (userselect == 1) 357 { 358 int temp = playpost[1]; 359 playpost[1] = playpost[0]; 360 playpost[0] = temp; 361 } 362 else 363 { 364 playpost[0] -= 6; 365 Program.check(); 366 } 367 break; 368 case 2: 369 Console.Clear(); 370 Program.drawmap(); 371 Console.WriteLine("糟糕了!您踩到地雷了,后退六步。"); 372 playpost[1] -= 6; 373 Program.check(); 374 Console.WriteLine("按任意键继续..."); 375 Console.ReadKey(true); 376 break; 377 case 3: 378 Console.Clear(); 379 Program.drawmap(); 380 isstop[1] = true; 381 Console.WriteLine("{0}走到了暂停,暂停一次!", name[0]); 382 Console.WriteLine("按任意键继续..."); 383 Console.ReadKey(true); 384 break; 385 case 4: 386 Console.Clear(); 387 Program.drawmap(); 388 Console.WriteLine("恭喜您,走到了时空隧道!前进十步"); 389 playpost[1] += 10; 390 Program.check(); 391 Console.WriteLine("按任意键继续..."); 392 Console.ReadKey(true); 393 break; 394 } 395 } 396 Console.Clear(); 397 Program.chushiMap(); 398 Program.drawmap(); 399 Console.WriteLine("{0}掷出了{1}", name[1], playpost[1]); 400 Console.WriteLine("*******************************************"); 401 Console.WriteLine("{0}的位置{1}", name[1], playpost[1] + 1); 402 Console.WriteLine("{0}的位置{1}", name[0], playpost[0] + 1); 403 /*Console.Clear(); 404 Program.chushiMap(); 405 Program.drawmap();*/ 406 #endregion 407 } 408 else 409 { 410 isstop[1] = false; 411 } 412 413 } 414 if (playpost[0] >= 99) 415 { 416 Console.WriteLine("{0}玩家胜利", name[0]); 417 } 418 else 419 { 420 Console.WriteLine("{0}玩家胜利", name[1]); 421 } 422 Console.ReadKey(); 423 } 424 } 425 }
以上是关于飞行棋playTNT,C#实现飞行棋的主要内容,如果未能解决你的问题,请参考以下文章
sim7600ce 4G模块设置飞行模式后重启模块自动关闭飞行模式,这个怎么实现重启后还是飞行模式