飞行棋playTNT,C#实现飞行棋
最后更新 :2022.07.30
提起飞行棋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
以上就是与C#实现飞行棋相关内容,是关于C#实现飞行棋的分享。看完飞行棋playTNT后,希望这对大家有所帮助!
- END -
瘦身会馆怎么起名 瘦身店名取什么招财
根据“瘦身会馆”起名 瘦身会馆是现代社会中一个非常受欢迎的健康生活方式场所,它为人们提供了一个集健身、瘦身、养生、放松于一体的综合环境。一个好的瘦身会馆名字能够吸引顾客的注意力,提升品牌形象,促进业务发展。...
醍醐灌顶!风水原来是这么来的...
风水学又称堪舆、地理、卜宅、图宅、青乌、青囊、阴阳等好多名字,早在《诗经》,《周礼》,《...
兔年哪个时辰出生最好(属兔哪个时辰出生最好命)
作为中国传统文化中十二生肖之一的兔子,每年都有许多人在这个时间选择出生。那么,哪个时辰...
哪个一夜之间头发全白了(人真的会一夜之间白了头发吗)
一夜之间头发全白了,这是一个传说中的故事,不同版本的故事有不同的解释,但大多数都是描写一...
哪个不是卦的(哪个不是卦的重要组成)
哪个不是卦的?这个问题看似简单,实则非常复杂。在中国传统文化中,卦是一种重要的神秘符号,被...
黄金戒指戴哪个手指招财(黄金戒指戴在哪个手指招财)
黄金戒指是人们生活中常见的珠宝首饰,既可以作为装饰品,也可以作为一种投资工具。因此,戴黄...
鸡人生日的运程如何(93年属鸡2月生日女的运程)
鸡人是指出生在鸡年的人,根据中国传统文化,每个人的八字会影响他们的一生命运。在这篇文章...
八字算命哪个准 哪个八字算命软件算的最准
其实八字算命哪个准的问题并不复杂,但是又很多的朋友都不太了解算八字哪个网最准,因此呢,今...
三国演义孙权曹操的性格特点 孙权和曹操的性格对比
本篇文章给大家谈谈三国演义孙权曹操的性格特点,以及孙权对曹操的评价对应的知识点,文章可...
什么是易经讲解全集 学易经讲解易经
大家好,如果您还对什么是易经讲解全集不太了解,没有关系,今天就由本站为大家分享什么是易经...
周易八卦九二图 九卦易经图
大家好,周易八卦九二图相信很多的网友都不是很明白,包括周易八卦九二图怎么看也是一样,不过...
六爻算命中的秘密是什么 六爻推断秘法
大家好,感谢邀请,今天来为大家分享一下六爻算命中的秘密是什么的问题,以及和六爻占卜是算什...
黄历中破屋可以装修吗 装修需要选吉日吗
能否在破屋日开始装修,完全取决于你个人的看法。事实上,中国旧历中有这样的说法:破屋之日不...
乙未年八字命理详解 乙未年男命
大家好,如果您还对乙未年八字命理详解不太了解,没有关系,今天就由本站为大家分享乙未年八字...
69年属鸡男今年运势怎样 69年男属鸡运势一生运势如何
各位老铁们好,相信很多人对69年属鸡男今年运势怎样都不是特别的了解,因此呢,今天就来为大家...
癸巳日喜神在何方位 癸巳日财神方位
大家好,今天给各位分享癸巳日喜神在何方位的一些知识,其中也会对丁酉日喜神方位进行解释,文...
前世夫妻今生相遇会发生什么,遇到前世的爱人在今生有什么感觉
提起前世夫妻今生相遇会发生什么,大家都知道,有人问遇到前世的爱人在今生有什么感觉,另外,还...
人睡客厅代表人要走了,年轻人睡客厅老人会折寿吗
提起人睡客厅代表人要走了,大家都知道,有人问年轻人睡客厅老人会折寿吗,另外,还有人想问人快...
朱砂什么人不能佩戴,朱砂佩戴有什么讲究吗?
提起朱砂什么人不能佩戴,大家都知道,有人问朱砂佩戴有什么讲究吗?,另外,还有人想问朱砂佩戴有...
越打击越强大的星座女 死都不能娶的星座女
有的星座女天生就是玻璃心,经不起任何的批评和挫折。但是也有一些星座女,她们是越打击越强...
巨蟹唯一会读心术,唯一能看透巨蟹的星座
提起巨蟹唯一会读心术,大家都知道,有人问唯一能看透巨蟹的星座,另外,还有人想问巨蟹唯一会读...
虎宝宝几月出生最好命 虎宝宝农历几月出生最好命
如果能在今年生一个虎宝宝的话,那这个虎宝宝一定是非常有运势的。因为今年是属虎人的本命...
2022运势查询免费算命,免费算2022年个人运程
2022运势查询免费算命陈时中(左)、黄珊珊(中)、蒋万安 据台湾中时电子报报道,根据最新民调指...
十二生肖运势解析,2022 年12生肖运程
十二生肖运势解析 2022 年为己亥猪年,下面一灯师傅为大家播报十二生肖2022 年的运程预测...
夫妻相克的属相牛马,属相牛和什么属相相克
夫妻相克的属相牛马 生肖配对,流传甚远。如今将生肖属相相合的生肖配对讲出来,目的就是为...
2022年农历八月虎宝宝,属虎人一生最旺3个人
2022年农历八月虎宝宝 1、农历四月 农历四月生的生肖虎出生于立夏之时,一生享尽富贵荣华,...
属猪的今年多大,猪是哪年出生的几岁
属猪的今年多大 1935年1947年1959年1971年1983年1995年2007年2022 年不同年份的属猪人20...
97年属牛与什么属相合适,两个1997属牛结婚好吗
97年属牛与什么属相合适 不管你有多少财富,我不羡慕,不嫉妒。我有我的人生,每日粗茶淡饭,不...
51年兔未来十年运势,51年男兔婚配好吗
51年兔未来十年运势 每个人的运势都是起起伏伏的,没有人会一马平川,永远好运气,当然坏运气...
马和马配对怎么不好,夫妻两人都属马相克吗
马和马配对怎么不好 在自然界中,动物间的杂交屡见不鲜,有的是动物群体间自发形成的,有的是...
1997牛年是什么命,1985牛年是什么命
1997牛年是什么命 属牛人婚姻相关的 组合成的专题,想要知道更多属牛人婚姻的 内容,就赶紧 ...
1972年鼠男2022年运程,72年属鼠2022年的运程男
1972年鼠男2022年运程 鼠人去年一个喜子,今年一个威字。去年鼠人获五大吉星驾临笑足全年,...
1988年属龙的婚配表,属龙婚配哪个属相更好
1988年属龙的婚配表 1988年属龙人婚姻晚是真的吗?龙年出生的人总是非常有活力,他们总是会...
96年姻缘什么时候到,姻缘什么时候到
96年姻缘什么时候到从出生日期看夫妻缘分怎么样?佛语说三世因果,说一个人积德造孽都需要由...
68年属猴女晚年好不好,68年属猴女一生的贵人
68年属猴女晚年好不好 金牛座 金牛人思想保守,说话不紧不慢,是个端庄文静的美女,金牛的女人...
已婚属猪男爱上别人,属猪男爱上一个人的表现
已婚属猪男爱上别人 2022 年3月,吉星相助属猪人,这个月爱情运势非常好,属猪人勤劳刻苦,专一,...
天蝎座的正缘与孽缘,什么是正缘什么是孽缘
天蝎座的正缘与孽缘 在茫茫人海之中,谁是你的命中注定,谁又是你的索命冤家?谁总是不辞劳顿...
羊鼠怎么样才不克,羊与鼠相害怎么化解
羊鼠怎么样才不克 导语:俗语:“自古白马怕青牛,羊鼠相交一旦休”,啥意思?有道理吗? 中华有上...
八字看婚姻宫何时动,2022 年哪些人婚姻宫动
八字看婚姻宫何时动 教你如何用自己的生日看自己什么时候婚动 婚姻是人生中的一件大事,仅...
- 数据加载中,请稍后...