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

📄 qishu.cpp

📁 一款用C++编写的网络版中国象棋对弈程序源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
			return TRUE;
		}
	if (qi[y][i]!=0) break;
	}
	for(i=i+1;i<9;i++)
	{
		if(qi[y][i]==3) 
		{
			return TRUE;
		}
		if (qi[y][i]!=0) break;
	}
	for(i=x-1;i>=0;i--)
	{
		if(qi[y][i]==1) 
		{
			return TRUE;
		}
		if (qi[y][i]!=0) break;
	}
	for(i=i-1;i>=0;i--)
	{
		if(qi[y][i]==3) 
		{
			return TRUE;
		}
		if (qi[y][i]!=0) break;
	}
	for(i=y+1;i<10;i++)
	{

		if(qi[i][x]==1) 
		{
			return TRUE;
		}
		if (qi[i][x]!=0) break;
	}
	for(i=i+1;i<10;i++)
	{
		if(qi[i][x]==3) 
		{
			return TRUE;
		}
		if (qi[i][x]!=0) break;
	}
	for(i=y-1;i>=0;i--)
	{
		if(qi[i][x]==1) 
		{
			return TRUE;
		}
		if (qi[i][x]!=0) break;
	}
	for(i=i-1;i>=0;i--)
	{
		if(qi[i][x]==3) 
		{
			return TRUE;
		}
		if (qi[i][x]!=0) break;
	}
	if(qi[y-2][x+1]==2 && qi[y-1][x+1]==0)
	{
		return TRUE;
	}
	if(qi[y-2][x-1]==2 && qi[y-1][x-1]==0)
	{
		return TRUE;
	}
	if(qi[y-1][x+2]==2 && qi[y-1][x+1]==0)
	{
		return TRUE;
	}
	if(qi[y-1][x-2]==2 && qi[y-1][x-1]==0)
	{
		return TRUE;
	}
	if(y+1<10)
	{
		if(qi[y+1][x-2]==2 && qi[y+1][x-1]==0)
		{
			return TRUE;
		}
		if(qi[y+1][x+2]==2 && qi[y+1][x+1]==0)
		{
			return TRUE;
		}
	}
	if(y+2<10)
	{
		if(qi[y+2][x-1]==2 && qi[y+1][x-1]==0)
		{
			return TRUE;
		}
		if(qi[y+2][x+1]==2 && qi[y+1][x+1]==0)
		{
			
			return TRUE;
		}
	}
	if(y<5)
	{
		if (x<8)
			if(qi[y][x+1]==7)
			{
				return TRUE;
			}
			if(x>0)
			if(qi[y][x-1]==7)
			{
				return TRUE;
			}
	}
	if (y+1<10)
		if(qi[y+1][x]==7)
		{
			return TRUE;
		}
	if(y>6&&x<6 && x>2)
	{
		if(y>0)
		{
			if(qi[y-1][x]==6) return TRUE;
			if(qi[y-1][x+1]==5) return TRUE;
			if(qi[y-1][x-1]==5) return TRUE;
		}
		if(y+1<10)
		{
			if(qi[y+1][x]==6) return TRUE;
			if(qi[y+1][x-1]==5) return TRUE;
			if(qi[y+1][x+1]==5) return TRUE;
		}
		if(x>0)
			if(qi[y][x-1]==6) return TRUE;
		if(qi[y][x+1]==6) return TRUE;
	}
	if(y>4)
	{
		if(y+2<9)
		{
			if (x+2<9)
				if(qi[y+2][x+2]==4) return TRUE;
			if(x-2>=0)
				if(qi[y+2][x-2]==4) return TRUE;
		}
		if(y-2>=0)
		{
			if (x+2<9)
				if(qi[y-2][x+2]==4) return TRUE;
			if(x-2>=0)
				if(qi[y-2][x-2]==4) return TRUE;
		}
	}
	return FALSE;
}
BOOL qishu::willdead(int x,int y)
{
	int i;
	for(i=x+1;i<9;i++)
	{
		if(qi[y][i]==-1) 
		{
			return TRUE;
		}
	if (qi[y][i]!=0) break;
	}
	for(i=i+1;i<9;i++)
	{
		if(qi[y][i]==-3) 
		{
			return TRUE;
		}
		if (qi[y][i]!=0) break;
	}
	for(i=x-1;i>=0;i--)
	{
		if(qi[y][i]==-1) 
		{
			return TRUE;
		}
		if (qi[y][i]!=0) break;
	}
	for(i=i-1;i>=0;i--)
	{
		if(qi[y][i]==-3) 
		{
			return TRUE;
		}
		if (qi[y][i]!=0) break;
	}
	for(i=y+1;i<10;i++)
	{

		if(qi[i][x]==-1) 
		{
			return TRUE;
		}
		if (qi[i][x]!=0) break;
	}
	for(i=i+1;i<10;i++)
	{
		if(qi[i][x]==-3) 
		{
			return TRUE;
		}
		if (qi[i][x]!=0) break;
	}
	for(i=y-1;i>=0;i--)
	{
		if(qi[i][x]==-1) 
		{
			return TRUE;
		}
		if (qi[i][x]!=0) break;
	}
	for(i=i-1;i>=0;i--)
	{
		if(qi[i][x]==-3) 
		{
			return TRUE;
		}
		if (qi[i][x]!=0) break;
	}
	if(qi[y-2][x+1]==-2 && qi[y-1][x+1]==0)
	{
		return TRUE;
	}
	if(qi[y-2][x-1]==-2 && qi[y-1][x-1]==0)
	{
		return TRUE;
	}
	if(qi[y-1][x+2]==-2 && qi[y-1][x+1]==0)
	{
		return TRUE;
	}
	if(qi[y-1][x-2]==-2 && qi[y-1][x-1]==0)
	{
		return TRUE;
	}
	if(y+1<10)
	{
		if(qi[y+1][x-2]==-2 && qi[y+1][x-1]==0)
		{
			return TRUE;
		}
		if(qi[y+1][x+2]==-2 && qi[y+1][x+1]==0)
		{
			return TRUE;
		}
	}
	if(y+2<10)
	{
		if(qi[y+2][x-1]==-2 && qi[y+1][x-1]==0)
		{
			return TRUE;
		}
		if(qi[y+2][x+1]==-2 && qi[y+1][x+1]==0)
		{
			
			return TRUE;
		}
	}
	if(y>4)
	{
		if (x<8)
			if(qi[y][x+1]==-7)
			{
				return TRUE;
			}
		if(x>0)
			if(qi[y][x-1]==-7)
			{
				return TRUE;
			}	
	}
	if (y>0)
		if(qi[y-1][x]==-7)
		{
			return TRUE;
		}
	if(y<3&&x<6 && x>2)
	{
		if(y>0)
		{
			if(qi[y-1][x]==-6) return TRUE;
			if(qi[y-1][x+1]==-5) return TRUE;
			if(qi[y-1][x-1]==-5) return TRUE;
		}
		if(qi[y+1][x]==-6) return TRUE;
		if(qi[y+1][x-1]==-5) return TRUE;
		if(qi[y+1][x+1]==-5) return TRUE;
		if(x>0)
			if(qi[y][x-1]==-6) return TRUE;
		if(qi[y][x+1]==-6) return TRUE;

	}
	if(y<5)
	{
		if(y+2<9)
		{
			if (x+2<9)
				if(qi[y+2][x+2]==-4) return TRUE;
			if(x-2>=0)
				if(qi[y+2][x-2]==-4) return TRUE;
		}
		if(y-2>=0)
		{
			if (x+2<9)
				if(qi[y-2][x+2]==-4) return TRUE;
			if(x-2>=0)
				if(qi[y-2][x-2]==-4) return TRUE;
		}
	}
	return FALSE;
}
BOOL qishu::willdead()
{
	int i;
	int x,y;
	x=suaiwei.x;
	y=suaiwei.y;
	for(i=x+1;i<10;i++)
	{
		if(qi[y][i]==-1) 
		{
			setmakedead(i,y);
			return TRUE;
		}
	if (qi[y][i]!=0) break;
	}
	for(i=i+1;i<10;i++)
	{
		if(qi[y][i]==-3) 
		{
			setmakedead(i,y);
			return TRUE;
		}
		if (qi[y][i]!=0) break;
	}
	for(i=x-1;i>=0;i--)
	{
		if(qi[y][i]==-1) 
		{
			setmakedead(i,y);
			return TRUE;
		}

		if (qi[y][i]!=0) break;
	}
	for(i=i-1;i>=0;i--)
	{
		if(qi[y][i]==-3) 
		{
			setmakedead(i,y);
			return TRUE;
		}
		if (qi[y][i]!=0) break;
	}
	for(i=y+1;i<10;i++)
	{

		if(qi[i][x]==-1) 
		{
			setmakedead(x,i);
			return TRUE;
		}
		if (qi[i][x]!=0) break;
	}
	for(i=i+1;i<10;i++)
	{
		if(qi[i][x]==-3) 
		{
		setmakedead(x,i);
			return TRUE;
		}
		if (qi[i][x]!=0) break;
	}
	for(i=y-1;i>=0;i--)
	{
		if(qi[i][x]==-1) 
		{
			setmakedead(x,i);
			return TRUE;
		}
		if (qi[i][x]!=0) break;
	}
	for(i=i-1;i>=0;i--)
	{
		if(qi[i][x]==-3) 
		{
			setmakedead(x,i);
			return TRUE;
		}
		if (qi[i][x]!=0) break;
	}
	for(i=y-1;i>=0;i--)
	{
		if(qi[i][x]==-6)
		{
			setmakedead(x,i);
			return TRUE;
		}
		if(qi[i][x]!=0) break;
	}
	if(qi[y-2][x+1]==-2 && qi[y-1][x+1]==0)
	{
		setmakedead(x+1,y-2);
		return TRUE;
	}
	if(qi[y-2][x-1]==-2 && qi[y-1][x-1]==0)
	{
		setmakedead(x-1,y-2);
		return TRUE;
	}
	if(qi[y-1][x+2]==-2 && qi[y-1][x+1]==0)
	{
		setmakedead(x+2,y-1);
		return TRUE;
	}
	if(qi[y-1][x-2]==-2 && qi[y-1][x-1]==0)
	{
		setmakedead(x-2,y-1);
		return TRUE;
	}
	if(y+1<10)
	{
		if(qi[y+1][x-2]==-2 && qi[y+1][x-1]==0)
		{
			setmakedead(x-2,y+1);
			return TRUE;
		}
		if(qi[y+1][x+2]==-2 && qi[y+1][x+1]==0)
		{
			setmakedead(x+2,y+1);
			return TRUE;
		}
	}
	if(y+2<10)
	{
		if(qi[y+2][x-1]==-2 && qi[y+1][x-1]==0)
		{
    		setmakedead(x-1,y+2);
			return TRUE;
		}
		if(qi[y+2][x+1]==-2 && qi[y+1][x+1]==0)
		{
			
			setmakedead(x+1,y);
			return TRUE;
		}
	}
	if(qi[y][x+1]==-7)
	{
		setmakedead(x+1,y);
		return TRUE;
	}
	if(qi[y][x-1]==-7)
	{
		setmakedead(x-1,y);
		return TRUE;
	}
	if(qi[y-1][x]==-7)
	{
		setmakedead(x,y-1);
		return TRUE;
	}
	return FALSE;
}
void qishu::setmakedead(int x,int y)
{
	makedead.x=x;
	makedead.y=y;
	if(makedead.x!=-1)
		jiang=TRUE;
}

⌨️ 快捷键说明

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