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

📄 vexillumview.cpp

📁 用VC++实现得网络军棋对战
💻 CPP
📖 第 1 页 / 共 5 页
字号:
			qzwz[3][1].qizibiaozhi=shizhang;
			qzwz[3][3].qizibiaozhi=tuanzhang;
			qzwz[3][4].qizibiaozhi=gongbing;
		}
		qzwz[4][0].qizibiaozhi=zhadan;
		qzwz[4][2].qizibiaozhi=gongbing;
		qzwz[4][4].qizibiaozhi=zhadan;
		qzwz[5][0].qizibiaozhi=lvzhang;
		qzwz[5][1].qizibiaozhi=paizhang;
		qzwz[5][2].qizibiaozhi=tuanzhang;
		qzwz[5][3].qizibiaozhi=paizhang;
		qzwz[5][4].qizibiaozhi=lvzhang;
	}
	if(k1==1)
	{
		qzwz[0][1].qizibiaozhi=junqi;
		qzwz[3][0].qizibiaozhi=lvzhang;
		qzwz[4][0].qizibiaozhi=zhadan;
		qzwz[5][4].qizibiaozhi=yingzhang;
		qzwz[5][0].qizibiaozhi=tuanzhang;
		qzwz[4][4].qizibiaozhi=siling;
		qzwz[0][3].qizibiaozhi=dilei;
		qzwz[2][0].qizibiaozhi=dilei;
		qzwz[5][1].qizibiaozhi=paizhang;
		qzwz[1][2].qizibiaozhi=dilei;
		qzwz[5][3].qizibiaozhi=paizhang;
		qzwz[5][2].qizibiaozhi=lvzhang;
		qzwz[4][2].qizibiaozhi=zhadan;
		qzwz[3][1].qizibiaozhi=lianzhang;
		qzwz[3][3].qizibiaozhi=shizhang;
		qzwz[3][4].qizibiaozhi=junzhang;
		qzwz[2][2].qizibiaozhi=gongbing;
		qzwz[2][4].qizibiaozhi=gongbing;
		qzwz[1][0].qizibiaozhi=shizhang;
		qzwz[1][1].qizibiaozhi=lianzhang;
		qzwz[1][3].qizibiaozhi=gongbing;
		qzwz[1][4].qizibiaozhi=tuanzhang;
		qzwz[0][0].qizibiaozhi=yingzhang;
		qzwz[0][2].qizibiaozhi=paizhang;
		qzwz[0][4].qizibiaozhi=lianzhang;

	}
	if(k1==3)
	{
		qzwz[0][0].qizibiaozhi=lianzhang;
		qzwz[0][1].qizibiaozhi=dilei;
		qzwz[0][2].qizibiaozhi=paizhang;
		qzwz[0][3].qizibiaozhi=junqi;
		qzwz[0][4].qizibiaozhi=yingzhang;
		qzwz[1][0].qizibiaozhi=tuanzhang;
		qzwz[1][1].qizibiaozhi=gongbing;
		qzwz[1][2].qizibiaozhi=dilei;
		qzwz[1][3].qizibiaozhi=shizhang;
		qzwz[1][4].qizibiaozhi=lianzhang;
		qzwz[2][0].qizibiaozhi=gongbing;
		qzwz[2][2].qizibiaozhi=gongbing;
		qzwz[2][4].qizibiaozhi=dilei;
		qzwz[3][0].qizibiaozhi=junzhang;
		qzwz[3][1].qizibiaozhi=shizhang;
		qzwz[3][3].qizibiaozhi=lianzhang;
		qzwz[3][4].qizibiaozhi=lvzhang;
		qzwz[4][0].qizibiaozhi=siling;
		qzwz[4][2].qizibiaozhi=zhadan;
		qzwz[4][4].qizibiaozhi=zhadan;
		qzwz[5][0].qizibiaozhi=yingzhang;
		qzwz[5][1].qizibiaozhi=paizhang;
		qzwz[5][2].qizibiaozhi=lvzhang;
		qzwz[5][3].qizibiaozhi=paizhang;
		qzwz[5][4].qizibiaozhi=tuanzhang;
	}

}
void CVexillumView::Initialization()
{
	for(int qww=0;qww<14;qww++)
		for(int qww1=0;qww1<5;qww1++)
		{
			if(qww<6)
				guess[qww][qww1].z=0;
			else
				guess[qww][qww1].z=1;
			for(int we=0;we<12;we++)
				guess[qww][qww1].qizi[we]=0;
		}
	for(int qw=0;qw<14;qw++)
		for(int qw1=0;qw1<5;qw1++)
		{
			
			if((qw==8)||(qw==9))
			{
				guess[qw][qw1].qizi[siling]=60;//军长,司令
				guess[qw][qw1].qizi[junzhang]=60;
			}
			if((qw==9)||(qw==10)||(qw==11)||(qw==12))
			{
				if((qw==10)||(qw==11))
				{
					if(qw==11)
						guess[qw][qw1].qizi[dilei]=250;
					guess[qw][qw1].qizi[siling]=40;//军长,司令
					guess[qw][qw1].qizi[junzhang]=40;
				}
				if(qw==12)
				{
					guess[qw][qw1].qizi[dilei]=250;
					guess[qw][qw1].qizi[siling]=26;//军长,司令
					guess[qw][qw1].qizi[junzhang]=26;
				}
				guess[qw][qw1].qizi[zhadan]=120;//炸弹
			}
			if(qw==13)
			{
				if((qw1==1)||(qw1==3))
				{
					guess[qw][qw1].qizi[dilei]=125;
					guess[qw][qw1].qizi[zhadan]=40;
					guess[qw][qw1].qizi[siling]=13;
					guess[qw][qw1].qizi[junzhang]=13;
					guess[qw][qw1].qizi[junqi]=500;
				}
				else
				{
					guess[qw][qw1].qizi[dilei]=250;
					guess[qw][qw1].qizi[zhadan]=80;
					guess[qw][qw1].qizi[siling]=26;
					guess[qw][qw1].qizi[junzhang]=26;
				}
			}
		
		}
	for(int tr2=8;tr2<14;tr2++)
		for(int tr12=0;tr12<5;tr12++)
		{
			if(tr2==8)
			{
				for(int yq=3;yq<10;yq++)
				{
					if(yq<6)
						guess[tr2][tr12].qizi[yq]=155;
					else
						guess[tr2][tr12].qizi[yq]=104;
				}
			}
			if(tr2==9)
			{
				for(int yq=3;yq<10;yq++)
				{
					if(yq<6)
						guess[tr2][tr12].qizi[yq]=134;
					else
						guess[tr2][tr12].qizi[yq]=90;
				}
			}
			if(tr2==10)
			{
				for(int yq=3;yq<10;yq++)
				{
					if(yq<6)
						guess[tr2][tr12].qizi[yq]=141;
					else
						guess[tr2][tr12].qizi[yq]=94;
				}
			}
			if(tr2==11)
			{
				for(int yq=3;yq<10;yq++)
				{
					if(yq<6)
						guess[tr2][tr12].qizi[yq]=97;
					else
						guess[tr2][tr12].qizi[yq]=65;
				}
			}
			if(tr2==12)
			{
				for(int yq=3;yq<10;yq++)
				{
					if(yq<6)
						guess[tr2][tr12].qizi[yq]=102;
					else
						guess[tr2][tr12].qizi[yq]=68;
				}
			}
			if(tr2==13)
			{
				for(int yq=3;yq<10;yq++)
				{
					if(yq<6)
					{
						if((tr12!=1)&&(tr12!=3))
							guess[tr2][tr12].qizi[yq]=109;
						else
							guess[tr2][tr12].qizi[yq]=54;
					}
					else
					{
						if((tr12!=1)&&(tr12!=3))
							guess[tr2][tr12].qizi[yq]=73;
						else
							guess[tr2][tr12].qizi[yq]=37;
					}
				}
			}
		}
	for(int tr=6;tr<14;tr++)
		for(int tr1=0;tr1<5;tr1++)
		{
			if((qzwz[tr][tr1].wzbz==2)||(tr==6)||(tr==7))
			{
				for(int wt=0;wt<12;wt++)
					guess[tr][tr1].qizi[wt]=0;
				guess[tr][tr1].z=0;
			}
		}

}
void CVexillumView::GuZhi(int wchess,int wx,int wy,int dx,int dy,int shengfu)
{//
	
	if(wchess==nochess)
	{
		int t,p,tsum,psum;
		tsum=0;psum=0;
		t=guess[dx][dy].qizi[dilei];
		p=guess[dx][dy].qizi[junqi];
		if(t)
		{
			guess[dx][dy].qizi[dilei]=0;
			JunFei(dilei,t);
		
		}
		if(p)
		{
			guess[dx][dy].qizi[junqi]=0;
			if(dy==1)
			{
				for(int qr=1;qr<12;qr++)
				{
					guess[13][3].qizi[junqi]=1000;
					tsum=guess[13][3].qizi[qr];
					guess[13][3].qizi[qr]=0;
					JunFei(qr,tsum);
				}
			}
			else
				for(int qr=1;qr<12;qr++)
				{
					guess[13][1].qizi[junqi]=1000;
					tsum=guess[13][1].qizi[qr];
					guess[13][1].qizi[qr]=0;
					JunFei(qr,tsum);
				}
		}

	}

	if((qzwz[dx][dy].qizibiaozhi!=nochess)&&(wchess!=nochess))
	{
		int bsum;bsum=0;
		if((wchess==zhadan)||(wchess==dilei))
		{
			for(int qt=0;qt<12;qt++)
			{
				bsum=guess[dx][dy].qizi[qt];
				guess[dx][dy].qizi[qt]=0;
				JunJian(qt,bsum);
			}
			guess[wx][wy].z=0;
			guess[dx][dy].z=0;
		}
		else
		{
			int osum;
			if(shengfu==0)
			{
				if(guess[dx][dy].qizi[zhadan])
				{
					guess[dx][dy].qizi[zhadan]=0;
					CFJunJian(zhadan);
				}
				if(guess[dx][dy].qizi[dilei])
				{
					guess[dx][dy].qizi[dilei]=0;
					CFJunJian(dilei);
				}
				CFJunJian(wchess);
				for(int qy=0;qy<12;qy++)
				{
					if((qy!=wchess)&&(qy!=zhadan)&&(qy!=dilei)&&(guess[dx][dy].qizi[qy]))
					{
						osum=guess[dx][dy].qizi[qy];
						guess[dx][dy].qizi[qy]=0;
						JunFei(qy,osum);
					}
				}
				guess[dx][dy].z=0;
				guess[wx][wy].z=0;
			}
			if(shengfu==1)//胜
			{
				if(guess[dx][dy].qizi[zhadan])
				{
					osum=guess[dx][dy].qizi[zhadan];
					guess[dx][dy].qizi[zhadan]=0;
					JunFei(zhadan,osum);
				}
				if(guess[dx][dy].qizi[dilei])
				{
					osum=guess[dx][dy].qizi[dilei];
					guess[dx][dy].qizi[dilei]=0;
					JunFei(dilei,osum);
				}
				for(int qu=3;qu<14;qu++)
				{
					if(guess[dx][dy].qizi[qu]!=0)
					{
						if(qu<wchess)
						{
							osum=guess[dx][dy].qizi[qu];
							guess[dx][dy].qizi[qu]=0;
							JunJian(qu,osum);
						}
						else
						{
							osum=guess[dx][dy].qizi[qu];
							guess[dx][dy].qizi[qu]=0;
							JunFei(qu,osum);
						}
					}
				}
				guess[dx][dy].z=0;
				guess[wx][wy].z=0;
			}
			if(shengfu==-1)
			{
				int zsum;zsum=0;
				if(guess[dx][dy].qizi[zhadan])
				{
					osum=guess[dx][dy].qizi[zhadan];
					guess[dx][dy].qizi[zhadan]=0;
					JunFei(zhadan,osum);
				}
				if(guess[dx][dy].qizi[dilei])
				{
					osum=guess[dx][dy].qizi[dilei];
					guess[dx][dy].qizi[dilei]=0;
					JunFei(dilei,osum);
				}
				for(int qi=3;qi<12;qi++)
				{
					if(qi>wchess)
					{
						zsum=guess[dx][dy].qizi[qi];
						guess[dx][dy].qizi[qi]=0;
						FuJunFei(qi,11-wchess,zsum,dx,dy);
					}
					else
					{
						zsum=guess[dx][dy].qizi[qi];
						guess[dx][dy].qizi[qi]=0;
						JunFei(qi,zsum);
					}
				}
				guess[dx][dy].z=1;
				guess[wx][wy].z=0;
			}
		}
	}
	
}
void CVexillumView::FuJunFei(int chess,int n,int yuanzhi,int dx,int dy)
{
	int osum;
	if(chess<6)
		osum=1000/n*3/2;
	else
		if(chess<10)
			osum=1000/n;
		else
			osum=1000/n*2/3;
	if(osum>yuanzhi)
	{
		guess[dx][dy].qizi[chess]=osum;
		osum=osum-yuanzhi;
		JunJian(chess,osum);
	}
	else
		guess[dx][dy].qizi[chess]=yuanzhi;
}
void CVexillumView::CFJunJian(int chess)
{
	for(int qe1=0;qe1<14;qe1++)
		for(int qee1=0;qee1<5;qee1++)
		if(guess[qe1][qee1].z&&guess[qe1][qee1].qizi[chess])
				guess[qe1][qee1].qizi[chess]=guess[qe1][qee1].qizi[chess]/2;
}
void CVexillumView::JunFei(int chess,int Zhi)
{
	int tsum;tsum=0;
	int m,n;
	for(int qe=0;qe<14;qe++)
		for(int qee=0;qee<5;qee++)
			{
				if(guess[qe][qee].z&&guess[qe][qee].qizi[chess])
				{
					m=qe;n=qee;
					tsum++;
				}
			}
	for(int qe1=0;qe1<14;qe1++)
		for(int qee1=0;qee1<5;qee1++)
		{
			if(guess[qe1][qee1].z&&guess[qe1][qee1].qizi[chess])
			{
				if(tsum==0)
					;//
				else
				{
					if(tsum==1)
					{
						for(int yt=0;yt<12;yt++)
						{
							int i;i=guess[m][n].qizi[yt];
							guess[m][n].qizi[yt]=0;
							if(yt==chess)
								guess[m][n].qizi[yt]=1000;
							else
								JunFei(yt,i);
						}
					}
					else
					{
						if(qzwz[qe1][qee1].wzbz!=1)
							guess[qe1][qee1].qizi[chess]=guess[qe1][qee1].qizi[chess]+Zhi/(tsum-1);
						else
							if((guess[13][1].qizi[junqi]>600)||(guess[13][3].qizi[junqi]>600))
								guess[qe1][qee1].qizi[chess]=guess[qe1][qee1].qizi[chess]+Zhi/(tsum-1);
							else
								guess[qe1][qee1].qizi[chess]=guess[qe1][qee1].qizi[chess]+(Zhi/(tsum-1))/2;
					}
				}
			}
		}
}
void CVexillumView::ChuanZhi(int fromx,int fromy,int tox,int toy)
{
	guess[tox][toy].z=1;
	for(int k=0;k<12;k++)
	{
		guess[tox][toy].qizi[k]=guess[fromx][fromy].qizi[k];
		guess[fromx][fromy].qizi[k]=0;
	}
	guess[fromx][fromy].z=0;
}
void CVexillumView::JunJian(int chess,int Zhi)
{
	int tsum;tsum=0;
	int m,n;
	for(int qe=0;qe<14;qe++)
		for(int qee=0;qee<5;qee++)
			{
				if(guess[qe][qee].z&&guess[qe][qee].qizi[chess])
				{
					m=qe;n=qee;
					tsum++;
				}
			}
	for(int qe1=0;qe1<14;qe1++)
		for(int qee1=0;qee1<5;qee1++)
		{
			if(guess[qe1][qee1].z&&guess[qe1][qee1].qizi[chess])
			{
				if(tsum==0);//
				else
				{
					if(tsum==1)
					{
						guess[m][n].qizi[chess]=guess[m][n].qizi[chess]-Zhi;
					}
					else
					{
						if(qzwz[qe1][qee1].wzbz!=1)
							guess[qe1][qee1].qizi[chess]=guess[qe1][qee1].qizi[chess]-Zhi/(tsum-1);
						else
							guess[qe1][qee1].qizi[chess]=guess[qe1][qee1].qizi[chess]-((Zhi/(tsum-1))/2);
					}
				}
			}
		}
}
void CVexillumView::SouSuo()
{
	zhlj.zhi=-1000;
	for(int qz=0;qz<14;qz++)
		for(int wz=0;wz<5;wz++)
		{
			
			if((qzwz[qz][wz].diyou==0)&&(qzwz[qz][wz].qizibiaozhi!=nochess))
				guess[qz][wz].z=1;
			else
				guess[qz][wz].z=0;
			if(qzwz[qz][wz].diyou&&(qzwz[qz][wz].qizibiaozhi!=junqi)&&(qzwz[qz][wz].qizibiaozhi!=dilei)&&(qzwz[qz][wz].qizibiaozhi!=nochess))
			{
				LingHuoXing();
				if(qzwz[qz][wz].wzbz==2)
					;
				else
					LingHuo[qzwz[qz][wz].qizibiaozhi]+=ShouWeiXieGaiLv(qzwz[qz][wz].qizibiaozhi,qz,wz);
				ChiZiSouSuo(qzwz[qz][wz].qizibiaozhi,qz,wz);
			}
		}
}
void CVexillumView::ChiZiSouSuo(int chess,int xz,int yz)
{

	int az=0;int sz=0;int hz=0;int ex=0;int cz=0;int bz=0;
	if(chess==gongbing)
		GongBingCorrelation(xz,yz);
	else
		Correlation(xz,yz);
	for(int rts=0;rts<80;rts++)
		czzjlj[rts].z=0;
	for(int qc=0;qc<8;qc++)
		for(int wc=0;wc<30;wc++)
		{
			if(zjlj[qc][wc].z==1)
			{
				czzjlj[ex].x=zjlj[qc][wc].x;
				czzjlj[ex].y=zjlj[qc][wc].y;
				czzjlj[ex].z=1;
				ex++;
			}
		}
	for(int rty=0;rty<ex;rty++)
	{
		if(czzjlj[rty].z==1)
			{
				az=CZGaiLv(chess,czzjlj[rty].x,czzjlj[rty].y);
				if(qzwz[czzjlj[rty].x][czzjlj[rty].y].wzbz==2)
					sz=0;
				else
					sz=ShouWeiXieGaiLv(chess,czzjlj[rty].x,czzjlj[rty].y);
				cz=ShouWeiXieGaiLvChi(chess,czzjlj[rty].x,czzjlj[rty].y);
				HuoShengGaiLv();
				
				WoFangShouWeiXie();
				bz=wofangshou[czzjlj[rty].x][czzjlj[rty].y];
				hz=WZZ[czzjlj[rty].x][czzjlj[rty].y].n;
				az=az-sz+hz+cz+LingHuo[chess]+bz;
				if(zhlj.zhi<az)//待写--------------------------
				{
					zhlj.fromx=xz;
					zhlj.fromy=yz;
					zhlj.tox=czzjlj[rty].x;
					zhlj.toy=czzjlj[rty].y;
					zhlj.zhi=az;
				}
			}
	}
}
int  CVexillumView::ShouWeiXieGaiLv(int chess,int xd,int yd)
{
	int n=0;int ty=0;
	n=qzwz[xd][yd].diyou;
	qzwz[xd][yd].diyou=1;
	CorrelationWeiXie(xd,yd);
	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].qizibiaozhi!=nochess))
				ty=ty+WeiXie(chess,zjlj[q][w].x,zjlj[q][w].y);
		}
	qzwz[xd][yd].diyou=n;
	return ty;
}
void  CVexillumView::LingHuoXing()
{
	LingHuo[0]=0;	LingHuo[1]=0;
	LingHuo[2]=20;	LingHuo[3]=20;
	LingHuo[4]=10;	LingHuo[5]=30;
	LingHuo[6]=40;	LingHuo[7]=50;
	LingHuo[8]=60;	LingHuo[9]=70;
	LingHuo[10]=100;LingHuo[11]=110;
}
int  CVexillumView::ShouWeiXieGaiLvChi(int chess,int xd,int yd)
{
	int n=0;int ty=0;
	n=qzwz[xd][yd].diyou;
	qzwz[xd][yd].diyou=1;
	Correlation(xd,yd);
	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].qizibiaozhi!=nochess))

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -