飞行棋playTNT,C#实现飞行棋
最后更新 :2022.07.30 08:37
提起飞行棋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后,希望这对大家有所帮助!
2019蛇人全年运势如何 蛇2019年运势完整版
根据提供的搜索 结果, 我们可以对属蛇人2019年的运势进行全面的分析。 以下是根据搜索结果整理的信息: 事业运势 属蛇人在2019年的事业运势呈现出一种复杂的状态。 一方面,他们可能会面临到一些挑战和压力,特别是在客户刁...
靖为什么含义(靖什么意思有什么寓意)
靖字所蕴含的含义 靖,一个看似简洁却内涵丰富的汉字,承载着深厚的文化意蕴。靖字在古汉语中有着独特的地位,其含义广泛而深远,常常与安宁、平定、恭敬等概念紧密相连。 首先,靖字在古汉语中常用来表示安宁、平静的状态。在...
凌菲出自哪里 凌菲lp
凌菲出自哪里?揭开名字背后的故事 名字,作为一个人独特的标识,往往承载着深厚的寓意和期望。今天,我们一起来探讨一下名为“凌菲”的人可能出自哪里,以及这个名字背后可能蕴藏的故事。 “凌菲”这个名字,既有传统韵味又不失...
太岁一般哪里有(太岁哪里有收的)
太岁一般哪里有?探索太岁的神秘存在 在中国传统文化中,“太岁”是一个具有深厚历史和文化内涵的概念。它既是天文学中的一个术语,也与风水学、命理学等紧密相关。那么,太岁一般在哪里呢?本文将带您一同探索太岁的神秘存在...
四个字公司名字有哪些(四个字国家的名字有哪些)
四个字公司名字及其独特性 随着商业环境的不断变化,公司命名也越来越注重简洁、易记和独特性。四个字公司名字以其短小精悍、易于传播的特点,逐渐成为一种流行的命名方式。本文将介绍一些常见的四个字公司名字及其独特...
银店怎么起名(水果店怎么起名)
根据银店怎么起名 银店是一种专门销售银制品的商店,通常包括银首饰、银餐具、银摆件等产品。在起名时,我们需要考虑到银店的特点和定位,以及目标顾客的需求和喜好。以下是一些根据银店起名的建议: 银之韵:这个名字将“银”...
姓毛怎么起名(姓毛怎么起名字女孩)
好的,以下是一篇关于根据毛姓起名的文章,长度不低于500字: 根据毛姓起名:展现独特韵味与美好...
民间故事:风水先生预言刘备出世:牛上房,大树楼桑村的传说揭秘
而在民间人们传说:刘备的祖上老家是中山国满城人,要不在京戏《甘露寺》里国老乔玄唱道:“...
中国最著名几次风水斗法,看后触目惊心,防不胜防
永城地标风水建筑2010年拍摄大家好。那些出现了财政麻烦或者对其经济状况不满的人们,往往...
1966年属马的财运如何(1966年属马57岁以后命数)
在中国的传统文化中,属马的人被认为是性格活泼、聪明灵敏的人。但是当谈到财运时,由于属马...
为什么只有左耳有耳洞(为什么只有左耳耳洞发炎)
为什么只有左耳有耳洞? 人们穿耳洞已经成为一种时尚,而大多数人都会选择在左耳上穿洞。这...
六爻铜钱起卦怎么画 铜钱 六爻
大家好,六爻铜钱起卦怎么画相信很多的网友都不是很明白,包括铜钱六爻解卦也是一样,不过没有...
我果是什么星座 雨果是什么星座
大家好,关于我果是什么星座很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关...
波风水门日语里怎么写 波风水门的日语怎么说
其实波风水门日语里怎么写的问题并不复杂,但是又很多的朋友都不太了解波风水门的日文怎么...
三藏姓名配对姻缘测试打分 三藏名字测姻缘
大家好,今天给各位分享三藏姓名配对姻缘测试打分的一些知识,其中也会对三藏婚姻姓名配对进...
天蝎12月10日运势查询 天蝎座2018年11月12日运势
大家好,感谢邀请,今天来为大家分享一下天蝎12月10日运势查询的问题,以及和天蝎座10一12月运...
87年属兔36岁以后的一生命运 生肖兔2023本命年怎么样
1987年出生的人属兔,是十二生肖当中数一数二的性格温和的属相,如今2022年即将结束2023年生...
风水八卦鼎家里怎么弄 八卦鼎怎么摆放
大家好,今天给各位分享风水八卦鼎家里怎么弄的一些知识,其中也会对八卦鼎应该摆放哪进行解...
2023上半年生肖猴财富运如何 去什么方位能发财
每个人都是爱财的,想要获得财富的话就一定要通过自己的努力,并且加上合适的时机,其次运势是...
对付无赖的最狠的办法,如何对付流氓无赖?
提起对付无赖的最狠的办法,大家都知道,有人问如何对付无赖?,另外,还有人想问对付无赖的24种办...
星座合盘查询分析(星座合盘查询分析多少钱)
星座www.xzw.com 2016-05-20编辑:小编12 星座屋官网月亮与上升点呈0度 这种合相使这类人用他们的感情来辨别他们基本的良心。在正向,它能带领出好记忆,并且使无意识的心灵觉醒。这类人有着活泼的想象力和较感情化的情绪...
癸水命的人千万不能碰前世 癸水命最高格局
大家都知道癸水命格是至阴至弱,也是比较罕见的一种命格,我们在生活中真的是很难遇到。并且...
属羊命中注定的情人,2022 年属羊烂桃花
属羊命中注定的情人 虽然白羊座平常是特别大大咧咧,说话做事经常没有分寸,像个小孩子一样...
属蛇的今年60几岁,属蛇50几岁是几几年的
属蛇的今年60几岁 属蛇人2月财运一路高涨,好运当头,好事不断出对于工职的属蛇朋友,你们只要...
91男羊30岁以后运程,91属羊一生有几次婚姻
91男羊30岁以后运程 1991年属羊人2022 年整体运势及运程 91年生属羊人进入2022 新的一年...
八字运势2022年运势免费,八字免费算命2022年运程流年
八字运势2022年运势免费射手座职场被重视度大幅提高、双鱼座感情有著很好的正缘分、牡羊...
属猪的今年多大年龄2022,属狗的今年多大
属猪的今年多大年龄2022 2022 年生肖年龄详细对照表 十二生肖在2022 年都几岁了 我...
水虎之命和什么相克,2022年属虎几月出生好
水虎之命和什么相克 十二生肖生年论命之寅虎(易园三分地)易园三分地:寅虎生肖运程 一、生...
88年属龙女32岁以后运势,32岁的龙女今年运气怎么样
88年属龙女32岁以后运势 1988年属龙女婚配: 1.属龙女和属鼠,属鸡,属猪的男性结婚最合适。 2...
属兔的妈妈生鼠宝宝如何化解,鼠年犯太岁的四个属相怎么化解
属兔的妈妈生鼠宝宝如何化解 更佳答案生肖属相相冲原理与化解简介我们生活难免会出现生...
1988年2022年运势如何,1988年2023年运势如何
1988年2022年运势如何 双鱼座位于十二宫的最后一个星座,所以在双鱼座身上了十二星座有所...
两个人相克怎么破解,夫妻相克民间化解 ***
两个人相克怎么破解 少讲话,多关心。 关心,就是不讲话,多做事。 一讲话就吵,你去看好了,任何...
家人相克怎么化解,属相相克怎么化解
家人相克怎么化解从古至今,十二生肖中就有生肖相冲之说。很多家庭的家庭成员之间就存在着...
如何化解相害的生肖,生肖相害是什么意思
如何化解相害的生肖 你可以是爵士乐,温情、典雅、饱满、蓬勃、活力。犹如康乃馨,花色细腻,...
菩萨送的孩子带胎记,从小有神灵跟着的人
菩萨送的孩子带胎记 伴随着一声响亮的哭啼,屠人杰的儿子在市立医院的豪华产房里降生...
1977年属蛇男最配,属猴的和什么属相最配
1977年属蛇男最配 男和什么属相最配?属蛇的男性沉着冷静,遇到问题总是会独立思考,同时也很...
生肖兔的爱情婚姻配对,生肖虎的爱情婚姻配对
生肖兔的爱情婚姻配对 图文摘自 络(如有 ,请 )十二生肖是十二地支的形象化代表,随着历史的发...
1986属虎2022运势,82属狗人的灾难年龄
1986属虎2022运势 银河灿烂,不负韶华。时间在指缝间悄然的流淌着,没有声音,也没有答复...
免费算命生辰八字算命, 八字算命详批
免费算命生辰八字算命 日常生活中算命这东西有很多人信也有很多人不信,不管你信不信,到了...
79年属羊的发财年龄,79年属羊2022 年运势女
79年属羊的发财年龄 莫欺少年穷1979年属羊人,在什么年龄段容易“发财”? 属羊人,生来是个有...
- 数据加载中,请稍后...