📄 vexillumview.cpp
字号:
ty=ty+WeiXieChi(chess,zjlj[q][w].x,zjlj[q][w].y);
}
qzwz[xd][yd].diyou=n;
return ty;
}
int CVexillumView::WeiXieChi(int chess,int x,int y)
{
if((chess==siling)||(chess==junzhang)||(chess==shizhang))
{
if((1000-ChiDiaoGaiLv1(chess,x,y))>700)
return 20;
else
return 0;
}
if((chess==lvzhang)||(chess==tuanzhang))
{
if((1000-ChiDiaoGaiLv1(chess,x,y))>600)
return 20;
else
return 0;
}
if(chess==yingzhang)
{
if((1000-ChiDiaoGaiLv(chess,x,y))>500)
return 10;
else
return 0;
}
if((chess==lianzhang)||(chess==paizhang))
{
if((1000-ChiDiaoGaiLv(chess,x,y))>600)
return 10;
else
return -100;
}
if(chess==gongbing)
{
if((1000-ChiDiaoGaiLv(chess,x,y))>500)
return 10;
else
return -100;
}
if(chess==zhadan)
{
if((1000-ChiDiaoGaiLv1(lvzhang,x,y))>800)
return 300;
else
return 0;
}
else
return 0;
}
int CVexillumView::WeiXie(int chess,int x,int y)
{
if((chess==siling)||(chess==junzhang)||(chess==shizhang))
{
if(guess[x][y].qizi[junqi])
return -400;
if(ChiDiaoGaiLv1(chess,x,y)>400)
return 400;
else
return 0;
}
if((chess==lvzhang)||(chess==tuanzhang))
{
if(guess[x][y].qizi[junqi])
return -150;
if(ChiDiaoGaiLv(chess,x,y)>400)
return 50;
else
return 0;
}
if(chess==yingzhang)
{
if(guess[x][y].qizi[junqi])
return -100;
if(ChiDiaoGaiLv(chess,x,y)>500)
return 50;
else
return 0;
}
if((chess==lianzhang)||(chess==paizhang))
{
if(ChiDiaoGaiLv(chess,x,y)>600)
return 50;
if(guess[x][y].qizi[junqi])
return -50;
else
return 0;
}
if(chess==gongbing)
{
if(ChiDiaoGaiLv(chess,x,y)>500)
return 50;
if(guess[x][y].qizi[junqi])
return -50;
else
return 0;
}
if(chess==zhadan)
{
if(ChiDiaoGaiLv1(chess,x,y)>300)
return 600;
if(ChiDiaoGaiLv1(lvzhang,x,y)>600)
return -100;
else
return 0;
}
else
return 0;
}
int CVexillumView::ChiDiaoGaiLv1(int chess,int x,int y)
{
int k=0;int j=0;
for(int q=0;q<12;q++)
{
if((chess<=q)||(q==1)||(q==2))
k=k+guess[x][y].qizi[q];
else
j=j+guess[x][y].qizi[q];
}
if((j==0)&&(k==0))
return 0;
else
return k*1000/(j+k);
}
int CVexillumView::ChiDiaoGaiLv(int chess,int x,int y)
{
int k=0;int j=0;
for(int q=0 ;q<12;q++)
{
if(chess<q)
k=k+guess[x][y].qizi[q];
else
j=j+guess[x][y].qizi[q];
}
if((j==0)&&(k==0))
return 0;
else
return k*1000/(j+k);
}
void CVexillumView::HuoShengGaiLv(void)
{
for(int h=0;h<14;h++)
for(int hh=0;hh<5;hh++)
{
if(h<6)
WZZ[h][hh].n=h*10;
else
WZZ[h][hh].n=0;
}
if(guess[13][1].qizi[junqi]&&guess[13][3].qizi[junqi])
{
for(int q=0;q<5;q++)
{
WZZ[8][q].n=0;
WZZ[9][q].n=100;
WZZ[10][q].n=250;
WZZ[11][q].n=400;
WZZ[12][q].n=600;
WZZ[13][q].n=2000;
}
WZZ[8][0].n=60;
WZZ[8][4].n=60;
WZZ[10][1].n=-100;
WZZ[10][3].n=-100;
WZZ[9][2].n=-100;
WZZ[12][1].n=1300;
WZZ[12][3].n=1300;
WZZ[13][2].n=2000;
WZZ[13][1].n=3000;
WZZ[13][3].n=3000;
}
else
{
if(guess[13][1].qizi[junqi])
{
for(int q=0;q<5;q++)
{
WZZ[8][q].n=0;
WZZ[9][q].n=100;
WZZ[10][q].n=250;
WZZ[11][q].n=400;
WZZ[12][q].n=600;
WZZ[13][q].n=800;
}
WZZ[8][0].n=60;
WZZ[8][4].n=60;
WZZ[10][1].n=-100;
WZZ[10][3].n=-100;
WZZ[9][2].n=-100;
WZZ[12][1].n=1300;
WZZ[12][0].n=700;
WZZ[12][2].n=700;
WZZ[13][1].n=2000;
WZZ[13][2].n=1500;
WZZ[13][0].n=1500;
}
else
{
if(guess[13][3].qizi[junqi])
{
for(int q=0;q<5;q++)
{
WZZ[8][q].n=0;
WZZ[9][q].n=100;
WZZ[10][q].n=250;
WZZ[11][q].n=400;
WZZ[12][q].n=600;
WZZ[13][q].n=800;
}
WZZ[8][0].n=60;
WZZ[8][4].n=60;
WZZ[10][1].n=-100;
WZZ[10][3].n=-100;
WZZ[9][2].n=-100;
WZZ[12][3].n=1300;
WZZ[12][4].n=700;
WZZ[12][2].n=700;
WZZ[13][3].n=2000;
WZZ[13][2].n=1500;
WZZ[13][4].n=1500;
}
}
}
}
int CVexillumView::CZGaiLv(int chess,int xd,int yd)
{
int xsum=0;int zsum=0;int difang=0;int wofang1=0;int wofang2=0;
if(qzwz[xd][yd].qizibiaozhi==nochess)
return 0;
else
{ xsum=0;
if(guess[xd][yd].qizi[junqi])
return 2000;
if((chess==gongbing)&&(guess[xd][yd].qizi[dilei]>400))
return 1000;
if(chess==zhadan)
{
for(int qd=3;qd<12;qd++)
{
if((guess[xd][yd].z))
{
if(qd>lvzhang)
xsum=xsum+guess[xd][yd].qizi[qd];
}
}
if(xsum>500)
return 2000;
else
return 0;
}
else
{ xsum=0;zsum=0;
for(int qd=3;qd<12;qd++)
{
if((chess==junzhang)&&(chess==siling))
if((guess[xd][yd].qizi[zhadan]+guess[xd][yd].qizi[dilei])>300)
return 0;
if((guess[xd][yd].z))
{
if(qd<chess)
xsum=xsum+guess[xd][yd].qizi[qd];
else
zsum=zsum+guess[xd][yd].qizi[qd];
}
}
if((xsum==0)&&(zsum==0))
return 0;
else
return (((xsum*1000-zsum*1000)/(zsum+xsum)));
}
}
}
void CVexillumView::WoFangShouWeiXie(void)
{
int n;
for(int q1=0;q1<14;q1++)
for(int w1=0;w1<5;w1++)
{
if((qzwz[q1][w1].qizibiaozhi!=nochess)&&(qzwz[q1][w1].diyou==0))
{
if(q1<6)
wofangshou[q1][w1]=100+(5-q1)*150;
else
wofangshou[q1][w1]=0;
}
else
wofangshou[q1][w1]=0;
}
n=qzwz[2][1].diyou;
qzwz[2][1].diyou=1;
CorrelationWeiXie(2,1);
for(int q2=0;q2<8;q2++)
for(int w2=0;w2<3;w2++)
{
if(zjlj[q2][w2].z)
{
if((qzwz[zjlj[q2][w2].x][zjlj[q2][w2].y].diyou==0)&&(qzwz[zjlj[q2][w2].x][zjlj[q2][w2].y].qizibiaozhi!=nochess))
{
if((qzwz[2][1].qizibiaozhi!=nochess)&&(qzwz[2][1].diyou==1))
LingHuo[qzwz[2][1].qizibiaozhi]-=200;//待写-----------------------------------------------
else
{
wofangshou[2][1]= 1500;
}
}
}
}
qzwz[2][1].diyou=n;
n=qzwz[4][1].diyou;
qzwz[4][1].diyou=1;
CorrelationWeiXie(4,1);
for(int q4=0;q4<8;q4++)
for(int w4=0;w4<3;w4++)
{
if(zjlj[q4][w4].z)
{
if((qzwz[zjlj[q4][w4].x][zjlj[q4][w4].y].diyou==0)&&(qzwz[zjlj[q4][w4].x][zjlj[q4][w4].y].qizibiaozhi!=nochess))
{
if((qzwz[4][1].qizibiaozhi!=nochess)&&(qzwz[4][1].diyou==1))
LingHuo[qzwz[4][1].qizibiaozhi]-=200;//待写-----------------------------------------------
else
{
wofangshou[4][1]= 800;
}
}
}
}
qzwz[4][1].diyou=n;
n=qzwz[4][3].diyou;
qzwz[4][3].diyou=1;
CorrelationWeiXie(4,3);
for(int q5=0;q5<8;q5++)
for(int w5=0;w5<3;w5++)
{
if(zjlj[q5][w5].z)
{
if((qzwz[zjlj[q5][w5].x][zjlj[q5][w5].y].diyou==0)&&(qzwz[zjlj[q5][w5].x][zjlj[q5][w5].y].qizibiaozhi!=nochess))
{
if((qzwz[4][3].qizibiaozhi!=nochess)&&(qzwz[4][3].diyou==1))
LingHuo[qzwz[4][3].qizibiaozhi]-=200;//待写-----------------------------------------------
else
{
wofangshou[4][3]= 800;
}
}
}
}
qzwz[4][3].diyou=n;
n=qzwz[2][3].diyou;
qzwz[2][3].diyou=1;
CorrelationWeiXie(2,3);
for(int q=0;q<8;q++)
for(int w=0;w<3;w++)
{
if(zjlj[q][w].z)
{
if((qzwz[zjlj[q][w].x][zjlj[q][w].y].diyou==0)&&(qzwz[zjlj[q][w].x][zjlj[q][w].y].qizibiaozhi!=nochess))
{
if((qzwz[2][3].qizibiaozhi!=nochess)&&(qzwz[2][3].diyou==1))
LingHuo[qzwz[2][3].qizibiaozhi]-=200;//待写-----------------------------------------------
else
{
wofangshou[2][3]= 1500;
}
}
}
}
qzwz[3][2].diyou=n;
n=qzwz[3][2].diyou;
qzwz[3][2].diyou=1;
CorrelationWeiXie(3,2);
for(int q3=0;q3<8;q3++)
for(int w3=0;w3<3;w3++)
{
if(zjlj[q3][w3].z)
{
if((qzwz[zjlj[q3][w3].x][zjlj[q3][w3].y].diyou==0)&&(qzwz[zjlj[q3][w3].x][zjlj[q3][w3].y].qizibiaozhi!=nochess))
{
if((qzwz[3][2].qizibiaozhi!=nochess)&&(qzwz[3][2].diyou==1))
LingHuo[qzwz[3][2].qizibiaozhi]-=200;//待写-----------------------------------------------
else
{
wofangshou[3][2]= 1000;
}
}
}
}
qzwz[3][2].diyou=n;
if(qzwz[0][1].qizibiaozhi==junqi)
{
CorrelationWeiXie(0,1);
for(int q11=0;q11<8;q11++)
for(int w11=0;w11<30;w11++)
{
if(zjlj[q11][w11].z)
{
if((qzwz[zjlj[q11][w11].x][zjlj[q11][w11].y].diyou==0)&&(qzwz[zjlj[q11][w11].x][zjlj[q11][w11].y].qizibiaozhi!=nochess))
{
wofangshou[zjlj[q11][w11].x][zjlj[q11][w11].y]+=1500;
}
}
}
}
if(qzwz[0][3].qizibiaozhi==junqi)
{
CorrelationWeiXie(0,3);
for(int q12=0;q12<8;q12++)
for(int w12=0;w12<30;w12++)
{
if(zjlj[q12][w12].z)
{
if((qzwz[zjlj[q12][w12].x][zjlj[q12][w12].y].diyou==0)&&(qzwz[zjlj[q12][w12].x][zjlj[q12][w12].y].qizibiaozhi!=nochess))
{
wofangshou[zjlj[q12][w12].x][zjlj[q12][w12].y]+=1000;
}
}
}
}
}
void CVexillumView::WoFang()
{
qzwz[zhlj.fromx][zhlj.fromy].k=1;
qzwz[zhlj.tox][zhlj.toy].k=1;
if(qzwz[zhlj.tox][zhlj.toy].qizibiaozhi==nochess)
{
qzwz[zhlj.tox][zhlj.toy].qizibiaozhi=qzwz[zhlj.fromx][zhlj.fromy].qizibiaozhi;
qzwz[zhlj.tox][zhlj.toy].diyou=qzwz[zhlj.fromx][zhlj.fromy].diyou;
qzwz[zhlj.fromx][zhlj.fromy].qizibiaozhi=nochess;
}
else
{
if(qzwz[zhlj.tox][zhlj.toy].qizibiaozhi==junqi)
{kkkkk=5;text=1;}
if((qzwz[zhlj.fromx][zhlj.fromy].qizibiaozhi==gongbing)&&(qzwz[zhlj.tox][zhlj.toy].qizibiaozhi==dilei))
{
int u;
for(int r=0;r<12;r++)
{
u=guess[zhlj.tox][zhlj.toy].qizi[r];
guess[zhlj.tox][zhlj.toy].qizi[r]=0;
if(r==dilei)
JunJian(dilei,u);
else
JunFei(r,u);
}
qzwz[zhlj.tox][zhlj.toy].diyou=1;
qzwz[zhlj.tox][zhlj.toy].qizibiaozhi=gongbing;
qzwz[zhlj.fromx][zhlj.fromy].qizibiaozhi=nochess;
guess[zhlj.tox][zhlj.toy].z=0;
}
else
{
if((qzwz[zhlj.fromx][zhlj.fromy].qizibiaozhi==qzwz[zhlj.tox][zhlj.toy].qizibiaozhi)||(qzwz[zhlj.fromx][zhlj.fromy].qizibiaozhi==zhadan)||(qzwz[zhlj.tox][zhlj.toy].qizibiaozhi==zhadan)||(qzwz[zhlj.tox][zhlj.toy].qizibiaozhi==dilei))
{
GuZhi(qzwz[zhlj.fromx][zhlj.fromy].qizibiaozhi,zhlj.fromx,zhlj.fromy,zhlj.tox,zhlj.toy,0);
qzwz[zhlj.tox][zhlj.toy].qizibiaozhi=nochess;
qzwz[zhlj.fromx][zhlj.fromy].qizibiaozhi=nochess;
}
else
{
if(qzwz[zhlj.fromx][zhlj.fromy].qizibiaozhi>qzwz[zhlj.tox][zhlj.toy].qizibiaozhi)
{
GuZhi(qzwz[zhlj.fromx][zhlj.fromy].qizibiaozhi,zhlj.fromx,zhlj.fromy,zhlj.tox,zhlj.toy,1);
qzwz[zhlj.tox][zhlj.toy].qizibiaozhi=qzwz[zhlj.fromx][zhlj.fromy].qizibiaozhi;
qzwz[zhlj.tox][zhlj.toy].diyou=1;
qzwz[zhlj.fromx][zhlj.fromy].qizibiaozhi=nochess;
}
else
{
GuZhi(qzwz[zhlj.fromx][zhlj.fromy].qizibiaozhi,zhlj.fromx,zhlj.fromy,zhlj.tox,zhlj.toy,-1);
qzwz[zhlj.fromx][zhlj.fromy].qizibiaozhi=nochess;
}
}
}
}
if(kkkkk!=5)
text=8;
InvalidateRect(NULL,FALSE);
UpdateWindow(); // 重画窗口
qqqqqqqq=1;
}
void CVexillumView::CorrelationWeiXie(int x,int y)
{//位置相关函数
for(int a=0;a<8;a++)
for(int aa=0;aa<30;aa++)
zjlj[a][aa].z=0;
for(int i=0;i<8;i++)
{
switch(i)
{
case 0://向上搜索
if(x>0)
{
int k;
k=0;
if((qzwz[x-1][y].qizibiaozhi!=nochess)&&((qzwz[x][y].diyou==qzwz[x-1][y].diyou)))
;
else
{
if((y==0)||(y==4))
{
if((x>1)&&(qzwz[x][y].wzbz==3))
{
for(int q=0;q<20;q++)
{
if((x-q)>1)
{
if(qzwz[x-q-1][y].qizibiaozhi==nochess)
{
zjlj[i][k].x=x-q-1;
zjlj[i][k].y=y;
zjlj[i][k].z=1;
k++;
}
else
{
if(qzwz[x-q-1][y].diyou==qzwz[x][y].diyou)
q=30;
else{
zjlj[i][k].x=x-q-1;
zjlj[i][k].y=y;
zjlj[i][k].z=1;
q=30;
}
}
}
else
q=30;
}
}
else
{
zjlj[i][k].x=x-1;
zjlj[i][k].y=y;
zjlj[i][k].z=1;
}
}
else
{
if(x==8)
{
if(y==2)
{
zjlj[i][k].x=5;
zjlj[i][k].y=y;
zjlj[i][k].z=1;
}
}
else
{
zjlj[i][k].x=x-1;
zjlj[i][k].y=y;
zjlj[i][k].z=1;
}
}
}
}
break;
case 1://向右前方搜索
int k;
k=0;
if((x>0)&&(y<4))
{
if((qzwz[x-1][y+1].qizibiaozhi!=nochess)&&((qzwz[x-1][y+1].diyou==qzwz[x][y].diyou)))
;
else
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -