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

📄 vexillumview.cpp

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