
飞行棋play
1、Java编写飞行棋的程序段
地图类:
package..qsfxq
publicclassMap{飞行棋play贺峻霖。
int[]map=newint[]//对战地图啊~马嘉祺又多了一根手指。
int[]luckyTurn=//幸运飞行棋play时代少年团。
int[]landMine=//位置
int[]pause=//暂停write as 飞行棋。
int[]timeTunnel=//时空*生成地图:文轩涨精装满肚子上学。
*关卡代号为:1:幸运2:3:暂停4:时空0:普通publicvoidcreateMap(){
inti=0
//在对战地图上设置幸运
for(i=0i<luckyTurn.lengthi++){飞行棋playTNT。
map[luckyTurn[i]]=1//添加代码实现在对战地图上设置
for(i=0i<landMine.lengthi++){
map[landMine[i]]=2//添加代码实现在对战地图上设置暂停
for(i=0i<pause.lengthi++){
map[pause[i]]=3//添加代码实现在对战地图上设置时空
for(i=0i<timeTunnel.lengthi++){
map[timeTunnel[i]]=4/**
*显示地图关卡对应的图形教学play。
[email protected]
[email protected]
[email protected] as 情侣飞行棋。
[email protected]
[email protected] (inti,intindex,intplayerPos1,intplayerPos2){
Stringgraph=””
//添加代码
if(playerPos1==index&&playerPos2==index){
graph=”@@”elseif(playerPos1==index){领带play。
graph=”A”elseif(playerPos2==index){
graph=”B”else{开着直播做翔霖car文。
switch(i){
case0:
graph=”∷”
break5个人一起干宋亚轩和贺峻霖。
case1:
graph=”¤”
break贺峻霖跪射宋亚轩writeas。
case2:all霖被六个队友做。
graph=”★”
break
case3:
graph=”■”TNT国王游戏车。
case4:祺鑫浴扒激室镜子。
graph=”〓”returngraph/**
*输出地图的奇数行(第1、3行)河马的秘密河all霖直播。
[email protected]
[email protected]
[email protected] as 校霸含试管。
[email protected] (intstart,intend,intplayerPos1,intplayerPos2){刘耀文往马嘉祺里塞td。
//添加代码writeas贺峻霖插宋亚轩。
for(inti=starti<=endi++){
[i],i,playerPos1,playerPos2))/**
*输出地图的偶数行(第2行)严浩翔在水里把宋亚轩做了。
[email protected]
[email protected]
[email protected]
[email protected] (intstart,intend,intplayerPos1,intplayerPos2){
for(inti=end-1i>=starti–){
[i],i,playerPos1,playerPos2))/**
*输出地图的右竖列飞行棋all祺。
[email protected] 干丁程鑫writeas。
[email protected]
[email protected]
[email protected] (intstart,intend,intplayerPos1,intplayerPos2){祺鑫河马的秘密河振动棒。
for(inti=starti<endi++){
for(intj=28j>0j–){//输出29个空格
“”)[i],i,playerPos1,playerPos2))
/**
*输出地图的左竖列
[email protected]
[email protected]
[email protected]
[email protected] (intstart,intend,intplayerPos1,intplayerPos2){
//添加代码
for(inti=starti<endi++){
[i],i,playerPos1,playerPos2))
/**
*显示对战地图
[email protected]
[email protected] (intplayerPos1,intplayerPos2){
//显示地图**行
showLine1(0,30,playerPos1,playerPos2)
//换行
//显示地图右竖行
showRLine(31,35,playerPos1,playerPos2)
//显示地图第二行
showLine2(35,66,playerPos1,playerPos2)
//换行
//显示地图左竖行
showLLine(66,69,playerPos1,playerPos2)
//显示地图第3行
showLine1(69,99,playerPos1,playerPos2)GAME类:
package..qsfxq
importjava.util.*
publicclassGame{
//声明地图
Mapmap=newMap()
//Mapmap
//声明对战中玩家1的当前位置
intplayerPos1
//声明对战中玩家2的当前位置
intplayerPos2
//声明走或停标识设置
String[]goAndStop=newString[2]
//声明对战角色
String[]playerName=newString[2]*初始化游戏的一局publicvoidinit(){
//创建Map对象
//生成地图
儿童飞行棋怎么玩用英语怎么说
map.createMap()
//设置玩家1起始位置
playerPos1=0
//设置玩家2起始位置
playerPos2=0
//记录玩家1下一次走或停
goAndStop[0]=”on”
//设置玩家2下一次走或停
goAndStop[1]=”on”/**
*开始游戏publicvoidstart(){
//调用初始化方法
init()
//显示游戏界面
map.showMap(playerPos1,playerPos2)
“\n”)
“1、戴高乐2、3、4、巴顿\n”)
//角色设置
Scannerinput=newScanner(System.in)
“1P选择人物:”)
introle=input.nextInt()
setRole(1,role)
booleanjudge=true
“2P选择人物:”)
introle2=input.nextInt()
if(role2==role){
“角色重复,请重新选择人物!”)else{
setRole(2,role2)}while(judge==false)
//开始游戏
play()/**
*设置对战角色
[email protected] :玩家12:玩家2
[email protected] (intno,introle){
switch(role){
case1:
playerName[no-1]=”戴高乐”
break
case2:
//设置玩家名称为””
playerName[no-1]=””
break
case3:
//设置玩家名称为””
playerName[no-1]=””
break
case4:
//设置玩家名称为”巴顿”
playerName[no-1]=”巴顿”
break
default:
break/**
*两人对战玩法publicvoidplay(){
“\n\n\n\n”)
“\n\n****************************************************\n”)
“GameStart\n”)
“****************************************************\n\n”)
//显示对战双方士兵样式
“^_^”+playerName[0]+”的士兵:A”)
“^_^”+playerName[1]+”的士兵:B\n”)
//显示对战地图
“\n图例:”+”■暂停¤幸运★〓时空∷普通\n”)
map.showMap(playerPos1,playerPos2)
//游戏开始
intstep//存储数目
while(playerPos1<99&&playerPos2<99){//有任何一方走到终点,跳出循环
//轮流掷
if(goAndStop[0].equals(“on”)){
//玩家1掷
step=throwShifter(1)//掷
“\n—————–“)//显示结果信息
“数:”+step)
playerPos1=getCurPos(1,playerPos1,step)//计算这一次移动后的当前位置
“\n您当前位置:”+playerPos1)
“对方当前位置:”+playerPos2)
“—————–\n”)
map.showMap(playerPos1,playerPos2)//显示当前地图
if(playerPos1==99){//如果走到终点
break//退出}else{
“\n”+playerName[0]+”停掷一次!\n”)//显示此次暂停信息
goAndStop[0]=”on”//设置下次可掷状态”\n\n\n\n”)
if(goAndStop[1].equals(“on”)){
//玩家2掷
step=throwShifter(2)//掷
“\n—————–“)//显示结果信息
“数:”+step)
playerPos2=getCurPos(2,playerPos2,step)//计算这一次移动后的当前位置
“\n您当前位置:”+playerPos2)
“对方当前位置:”+playerPos1)
“—————–\n”)
map.showMap(playerPos1,playerPos2)
if(playerPos2==99){//如果走到终点
break//退出}else{
“\n”+playerName[1]+”停掷一次!\n”)//显示此次暂停信息
goAndStop[1]=”on”//设置下次可掷状态”\n\n\n\n”)//游戏结束
“\n\n\n\n”)
“****************************************************\n”)
“GameOver\n”)
“****************************************************\n\n”)
judge()/**
*掷
[email protected]
[email protected] (intno){
//定义变量存储数目
intstep=0
//提示玩家启动掷
“\n”)
“请输入任意键开掷!”)
Scannerinput=newScanner(System.in)
input.nextInt()
//模拟掷:产生一个1~6的数字作为玩家掷的数目
Randomrandom=newRandom()
step=random.nextInt(5)+1
returnstep/**
*计算玩家此次移动后的当前位置
[email protected]
[email protected]
[email protected]
[email protected] (intno,intposition,intstep){
position=position+step//**次移动后的位置
if(position>=99){
Scannerinput=newScanner(System.in)
switch(map.map[position]){//根据地图中的关卡代号进行判断
case0://走到普通格
if(position==playerPos2){//添加条件:玩家1与对方骑兵相遇
//添加代码实现:踩到对方,对方回到起点
playerPos2=0
“:-D哈哈哈哈…踩到了!”)if(position==playerPos1){//添加条件:玩家2与对方骑兵相遇
//添加代码实现:踩到对方,对方回到起点
playerPos1=0
“:-D哈哈哈哈…踩到了!”)break
case1://幸运
“\n◆◇◆◇◆欢迎进入幸运◆◇◆◇◆”)
“请选择一种运气:”)
“1.位置2.轰炸”)
“=============================\n”)
intchoice=input.nextInt()
inttemp//时的临时变量
switch(choice){
case1://位置
if(no==1){
//添加代码实现:position与playerPos2数值互换
temp=playerPos2
playerPos2=position
position=temp
}elseif(no==2){
//添加代码实现:position与playPos1数值互换
temp=playerPos1
playerPos1=position
position=tempbreak
case2://轰炸
if(no==1){//no为1并且玩家2位置小于6
//添加代码实现:计算玩家2当前位置
if(playerPos2<6){
playerPos2=0else{
//添加代码实现:计算玩家2当前位置
playerPos2-=6if(no==2){//no为2并且玩家1位置小于6
//添加代码实现:计算玩家1当前位置
if(playerPos1<6){
playerPos1=0else{
//添加代码实现:计算玩家1当前位置
playerPos1-=6breakbreak
case2://踩到
//添加代码实现:踩到退6步
position-=6
“~:-(“+”踩到,气死了…”)
break
case3://下一次暂停一次
//添加代码实现:设置下次暂停掷
goAndStop[no-1]=”off”
“~~>_<~~要停战一局了。")
break
case4://时空
//添加代码实现:进入时空,加走10步
position+=10
“|-P”+”进入时空,真爽!”)
break//返回此次掷后玩家的位置坐标
if(position<0){
return0
}elseif(position>99){
}else{
returnposition/**
*显示对战结果publicvoidjudge(){
//添加代码
if(playerPos1>playerPos2){
[0]+”了胜利!”)else{
[1]+”了胜利!”)}
程序入口:
package..qsfxq
publicclassStartGane{
publicstaticvoidmain(String[]args){
Gamegame=newGame()
game.start()
汉字槐蔽飞行棋做法如下:
1、将纸均匀铺开,尽茄模量成正方形,于纸张相接处用透明胶贴紧。注意要小心贴,减少褶子和裂缝的出现。
2、接下来就是设计版面,确定最中间的一个点,向四面各画一个箭头,然后在4个角落各画一个大小均等的长方形飞机场,将箭头尾与长方形相连,开始画赛道。
3、在赛道上依据原飞行棋把圈的个数补进赛道,如果位置不够,有的圈可以有一点相交,甚至有一小部分不画。然后根据自己喜欢的风格,可以画一些图案,写一些字在空白处。
4、补充完细节之后就是最复杂的一个程序了涂色。这个时候一定要静下心,根据相应的颜色涂进框内。
5、最后一颤明缓步就是制作骰子了,按照学过的方法,在纸上画出图案,剪下来贴成正方体,标上数字,就完成了。
飞行棋的历史
1、关于飞行棋发明的年代和发明人,在网络上比较一致的意见是他至少发明于大约二战以后,因为它是关于飞行的。但也有人认为这一点没有说服力,因为它有可能是先有了规则再被冠上了飞行棋的名字,在飞机发明前就出现这一游戏是完全可能的。
2、这个应该是国人的原创,是中国玩具公司生产的,据说是为了纪念二战时飞虎队的卓越功勋,是pachisi游戏的变种
提起飞行棋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
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)