⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vexillumview.cpp

📁 用VC++实现得网络军棋对战
💻 CPP
📖 第 1 页 / 共 5 页
字号:
						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 + -