📄 vexillumview.cpp
字号:
if(((y==0)||(y==2))&&((x==3)||(x==5)||(x==10)||(x==12)))
{
zjlj[i][k].x=x-1;
zjlj[i][k].y=y+1;
zjlj[i][k].z=1;
}
if(((y==1)||(y==3))&&((x==2)||(x==4)||(x==9)||(x==11)))
{
zjlj[i][k].x=x-1;
zjlj[i][k].y=y+1;
zjlj[i][k].z=1;
}
}
}
break;
case 2://向右搜索
if(y<4)
{
int k;
k=0;
if((qzwz[x][y+1].qizibiaozhi!=nochess)&&((qzwz[x][y+1].diyou==qzwz[x][y].diyou)))
;
else
{
if((x==1)||(x==5)||(x==8)||(x==12))
{
for(int q1=0;q1<6;q1++)
{
if((y+q1)<4)
{
if(qzwz[x][y+q1+1].qizibiaozhi==nochess)
{
zjlj[i][k].x=x;
zjlj[i][k].y=y+q1+1;
zjlj[i][k].z=1;
k++;
}
else
{
if(qzwz[x][y+q1+1].diyou==qzwz[x][y].diyou)
q1=6;
else
{
zjlj[i][k].x=x;
zjlj[i][k].y=y+q1+1;
zjlj[i][k].z=1;
q1=6;
}
}
}
else
q1=6;
}
}
else
{
zjlj[i][k].x=x;
zjlj[i][k].y=y+1;
zjlj[i][k].z=1;
}
}
}
break;
case 3:
if((x<12)&&(y<4))
{
int k;
k=0;
if((qzwz[x+1][y+1].qizibiaozhi!=nochess)&&((qzwz[x+1][y+1].diyou==qzwz[x][y].diyou)))
;
else
{
if(((y==0)||(y==2))&&((x==1)||(x==3)||(x==8)||(x==10)))
{
zjlj[i][k].x=x+1;
zjlj[i][k].y=y+1;
zjlj[i][k].z=1;
}
if(((y==1)||(y==3))&&((x==2)||(x==4)||(x==9)||(x==11)))
{
zjlj[i][k].x=x+1;
zjlj[i][k].y=y+1;
zjlj[i][k].z=1;
}
}
}
break;
case 4://向下搜索
if(x<13)
{
int k;
k=0;
if((qzwz[x+1][y].qizibiaozhi!=nochess)&&((qzwz[x+1][y].diyou==qzwz[x][y].diyou)))
;
else
{
if((y==0)||(y==4))
{
if((x>0)&&(x<12))
{
for(int q=0;q<20;q++)
{
if((x+q)<12)
{
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
{
zjlj[i][k].x=x+1;
zjlj[i][k].y=y;
zjlj[i][k].z=1;
}
}
else
{
if(x==5)
{
if(y==2)
{
zjlj[i][k].x=8;
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 5://左下
if((x<13)&&(y>0))
{
int k;
k=0;
if((qzwz[x+1][y-1].qizibiaozhi!=nochess)&&((qzwz[x+1][y-1].diyou==qzwz[x][y].diyou)))
;
else
{
if(((y==1)||(y==3))&&((x==2)||(x==4)||(x==9)||(x==11)))
{
zjlj[i][k].x=x+1;
zjlj[i][k].y=y-1;
zjlj[i][k].z=1;
}
if(((y==2)||(y==4))&&((x==1)||(x==3)||(x==8)||(x==10)))
{
zjlj[i][k].x=x+1;
zjlj[i][k].y=y-1;
zjlj[i][k].z=1;
}
}
}
break;
case 6:
if(y>0)
{
int k;
k=0;
if((qzwz[x][y-1].qizibiaozhi!=nochess)&&((qzwz[x][y-1].diyou==qzwz[x][y].diyou)))
;
else
{
if((x==1)||(x==5)||(x==8)||(x==12))
{
for(int q=0;q<5;q++)
{
if((y-q)>0)
{
if(qzwz[x][y-q-1].qizibiaozhi==nochess)
{
zjlj[i][k].x=x;
zjlj[i][k].y=y-q-1;
zjlj[i][k].z=1;
k++;
}
else
{
if(qzwz[x][y-q-1].diyou==qzwz[x][y].diyou)
q=6;
else
{
zjlj[i][k].x=x;
zjlj[i][k].y=y-q-1;
zjlj[i][k].z=1;
q=6;
}
}
}
else
q=6;
}
}
else
{
zjlj[i][k].x=x;
zjlj[i][k].y=y-1;
zjlj[i][k].z=1;
}
}
}
break;
case 7:
if((x>0)&&(y>0))
{
int k;
k=0;
if((qzwz[x-1][y-1].qizibiaozhi!=nochess)&&((qzwz[x-1][y-1].diyou==qzwz[x][y].diyou)))
;
else
{
if(((y==1)||(y==3))&&((x==2)||(x==4)||(x==9)||(x==11)))
{
zjlj[i][k].x=x-1;
zjlj[i][k].y=y-1;
zjlj[i][k].z=1;
}
if(((y==2)||(y==4))&&((x==3)||(x==5)||(x==10)||(x==12)))
{
zjlj[i][k].x=x-1;
zjlj[i][k].y=y-1;
zjlj[i][k].z=1;
}
}
}
break;
}
}
for(int qq=0;qq<8;qq++)
for(int qq1=0;qq1<30;qq1++)
{
if((zjlj[qq][qq1].x==6)||(zjlj[qq][qq1].x==7))
zjlj[qq][qq1].z=0;
}
}
void CVexillumView::GongBingCorrelation(int x,int y)
{
for(int yi=0;yi<80;yi++)
{
gzjlj[yi].x=0;
gzjlj[yi].y=0;
gzjlj[yi].z=0;
}
if(qzwz[x][y].wzbz!=3)
Correlation(x,y);
else
{
gbk=0;
Correlation(x,y);
for(int q=0;q<8;q++)
for(int w=0;w<30;w++)
{
if(zjlj[q][w].z&&(qzwz[zjlj[q][w].x][zjlj[q][w].y].wzbz!=3))
{
gzjlj[gbk].x=zjlj[q][w].x;
gzjlj[gbk].y=zjlj[q][w].y;
gzjlj[gbk].z=1;
gbk++;
}
}
for(int a=0;a<8;a++)
for(int aa=0;aa<30;aa++)
zjlj[a][aa].z=0;
GongBingTieDao(x,y,qzwz[x][y].diyou);
for(int v=0;v<80;v++)
if((gzjlj[v].x==6)||(gzjlj[v].x==7))
gzjlj[v].z=0;
for(int u=0;u<30;u++)
{
zjlj[0][u].x=gzjlj[u].x;
zjlj[0][u].y=gzjlj[u].y;
zjlj[0][u].z=gzjlj[u].z;
}
for(int o=30;o<60;o++)
{
zjlj[1][o-30].x=gzjlj[o].x;
zjlj[1][o-30].y=gzjlj[o].y;
zjlj[1][o-30].z=gzjlj[o].z;
}
for(int op=60;op<80;op++)
{
zjlj[2][op-60].x=gzjlj[op].x;
zjlj[2][op-60].y=gzjlj[op].y;
zjlj[2][op-60].z=gzjlj[op].z;
}
for(int ert=20;ert<30;ert++)
{
zjlj[2][ert].z=0;
}
for(int yui=3;yui<8;yui++)
for(int yuio=0;yuio<30;yuio++)
{
zjlj[yui][yuio].z=0;
}
}
}
void CVexillumView::GongBingTieDao(int x,int y,int diyou)
{
int io;
for(int w=0;w<4;w++)
{
switch(w)
{
case 0://向上搜索
if((x>1)&&(qzwz[x-1][y].wzbz==3))
{
io=0;
for(int e=0;e<gbk;e++)
{
if((gzjlj[e].x==(x-1))&&(gzjlj[e].y==y))
{io=1;e=80;}
}
if(qzwz[x-1][y].qizibiaozhi==nochess)
{
if(io==0)
{
gzjlj[gbk].x=x-1;
gzjlj[gbk].y=y;
gzjlj[gbk].z=1;
gbk++;
GongBingTieDao(x-1,y,diyou);
}
}
else
{
if((qzwz[x-1][y].diyou!=diyou)&&(io==0))
{
gzjlj[gbk].x=x-1;
gzjlj[gbk].y=y;
gzjlj[gbk].z=1;
gbk++;
}
}
}
break;
case 1://向右搜索
if((y<4)&&(qzwz[x][y+1].wzbz==3))
{
io=0;
for(int e=0;e<gbk;e++)
{
if((gzjlj[e].x==x)&&(gzjlj[e].y==(y+1)))
{io=1;e=80;}
}
if(qzwz[x][y+1].qizibiaozhi==nochess)
{
if(io==0)
{
gzjlj[gbk].x=x;
gzjlj[gbk].y=y+1;
gzjlj[gbk].z=1;
gbk++;
GongBingTieDao(x,y+1,diyou);
}
}
else
{
if((qzwz[x][y+1].diyou!=diyou)&&(io==0))
{
gzjlj[gbk].x=x;
gzjlj[gbk].y=y+1;
gzjlj[gbk].z=1;
gbk++;
}
}
}
break;
case 2://向下搜索
if((x<12)&&(qzwz[x+1][y].wzbz==3))
{
io=0;
for(int e=0;e<gbk;e++)
{
if((gzjlj[e].x==(x+1))&&(gzjlj[e].y==y))
{io=1;e=80;}
}
if(qzwz[x+1][y].qizibiaozhi==nochess)
{
if(io==0)
{
gzjlj[gbk].x=x+1;
gzjlj[gbk].y=y;
gzjlj[gbk].z=1;
gbk++;
GongBingTieDao(x+1,y,diyou);
}
}
else
{
if((qzwz[x+1][y].diyou!=diyou)&&(io==0))
{
gzjlj[gbk].x=x+1;
gzjlj[gbk].y=y;
gzjlj[gbk].z=1;
gbk++;
}
}
}
break;
case 3://向zuo搜索
if((y>0)&&(qzwz[x][y-1].wzbz==3))
{
io=0;
for(int e=0;e<gbk;e++)
{
if((gzjlj[e].x==x)&&(gzjlj[e].y==(y-1)))
{io=1;e=80;}
}
if(qzwz[x][y-1].qizibiaozhi==nochess)
{
if(io==0)
{
gzjlj[gbk].x=x;
gzjlj[gbk].y=y-1;
gzjlj[gbk].z=1;
gbk++;
GongBingTieDao(x,y-1,diyou);
}
}
else
{
if((qzwz[x][y-1].diyou!=diyou)&&(io==0))
{
gzjlj[gbk].x=x;
gzjlj[gbk].y=y-1;
gzjlj[gbk].z=1;
gbk++;
}
}
}
break;
}
}
}
void CVexillumView::YiDong(int chess,int fromx,int fromy,int tox,int toy)
{
//if(((fromx==tox)&&((fromy-tox)==1))||()||())
}
void CVexillumView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if((!((point.x<=940)&&(point.x>=860)&&(point.y<=482)&&(point.y>=394)))&&(!((point.x<=765)&&(point.x>=675)&&(point.y<=477)&&(point.y>=397))))
{
backtuxing=0;
backtuxing1=0;
backtuxing2=0;
if(backtuxing3==0)
{
backtuxing3=1;
InvalidateRect(NULL,FALSE);
UpdateWindow(); // 重画窗口
}
}
else
{
if((point.x<=940)&&(point.x>=860)&&(point.y<=482)&&(point.y>=394))
{
backtuxing=1;
backtuxing2=0;
backtuxing3=0;
if(backtuxing1==0)
{
backtuxing1=1;
InvalidateRect(NULL,FALSE);
UpdateWindow(); // 重画窗口
}
}
else
{
if((point.x<=765)&&(point.x>=675)&&(point.y<=477)&&(point.y>=397))
{
if(kaishi==1)
{
int t2=0;
for(int h7=0;h7<5;h7++)
for(int hh7=0;hh7<5;hh7++)
{
if(qzwzz[h7][hh7].qizibiaozhi!=nochess)
t2=1;
}
if(t2==0)
{
backtuxing=2;
backtuxing1=0;
backtuxing3=0;
if(backtuxing2==0)
{
backtuxing2=1;
InvalidateRect(NULL,FALSE);
UpdateWindow(); // 重画窗口
}
}
}
}
}
}
CView::OnMouseMove(nFlags, point);
}
void CVexillumView::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
if(m_kongzhi==1)
WoFang();
m_kongzhi=0;
CView::OnTimer(nIDEvent);
}
void CVexillumView::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
CDC Memdc;
BITMAP bp;
Memdc.CreateCompatibleDC(&dc);
if(a==1)
{
a=0;
Memdc.SelectObject(&back);
dc.BitBlt(0,0,1018,685,&Memdc,0,0,SRCCOPY);
}
if(backtuxing==0)
{
Memdc.SelectObject(&back);
dc.BitBlt(665,387,110,110,&Memdc,665,385,SRCCOPY);
dc.BitBlt(850,384,110,110,&Memdc,850,384,SRCCOPY);
}
if(backtuxing==1)
{
Memdc.SelectObject(&back2);
dc.BitBlt(850,384,110,110,&Memdc,850,384,SRCCOPY);
}
if(backtuxing==2)
{
Memdc.SelectObject(&back1);
dc.BitBlt(665,387,110,110,&Memdc,665,385,SRCCOPY);
}
CFont *oldfont;
CFont font;
font.CreateFont(50,15,0,0,FW_EXTRALIGHT,FALSE,FALSE,
0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY ,DEFAULT_PITCH ,"华文行楷");
oldfont=dc.SelectObject(&font);
if(b==text)
;
else
{
b=text;
switch(text)//待写----------------------提示说明-----------------------
{
case 0:
dc.TextOut(290,50,"友情提示:请点击布局按纽 ");
break;
case 1:
dc.TextOut(290,50,"游戏结束:电脑获胜 ");
break;
case 2:
dc.TextOut(290,50,"游戏结束:你真厉害 ");
break;
case 3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -