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

📄 telent.java

📁 这是一个Java编写的手机象棋游戏
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
			{
				for(int j = 0; j < nleft; j++)
				{
					tempCollection[j] = leftArray[j];
					//System.out.println("车的第"+j+"个左走步集合y:"+leftArray[j][0]+"x:"+leftArray[j][1]+"添加完毕");
				}
			}
			if(nright != 0)
			{
				for(int j =0; j < nright; j++)
				{
					tempCollection[nleft + j] = rightArray[j];
					//System.out.println("车的第"+j+"个右走步集合y:"+rightArray[j][0]+"x:"+rightArray[j][1]+"添加完毕");
				}
			}
			if(nup != 0)
			{
				for(int j =0; j < nup; j++)
				{
					tempCollection[nleft +nright + j] = upArray[j];
					//System.out.println("车的第"+j+"个上走步集合y:"+upArray[j][0]+"x:"+upArray[j][1]+"添加完毕");
				}
			}
			if(ndown != 0)
			{
				for(int j =0; j < ndown; j++)
				{
					tempCollection[nleft +nright + nup + j] = downArray[j];
					//System.out.println("车的第"+j+"个上走步集合y:"+downArray[j][0]+"x:"+downArray[j][1]+"添加完毕");
				}
			}
			//System.out.println("获取车走步集合完毕");
		}
		//炮的走步
		if(code == 6 || code == 7 || code == 22 || code == 23)
		{//先找出移位走步,再找出吃棋走步
			//移位走步集合
			//System.out.println("开始获取炮走步集合");
			int i = 0, nAll = 0;
			int nleft = 0;
			int[][]	leftArray = null;
			int nright = 0;
			int[][]	rightArray = null;
			int nup = 0;
			int[][]	upArray = null;
			int ndown = 0;
			int[][]	downArray = null;
			//System.out.println("传过来的参数为code:"+code+"y:"+y+"x:"+x);
			for(i = x; i >= 0; i--)
			{
				if(i !=x && chess[y][i] != 32)
				{
					i++;
					//System.out.println("i的值为:"+i);
					break;
				}
			}
			//System.out.println("左走步搜索完毕后,i的值为:"+i);
			if(i == -1)
				i++;
			nleft = x - i;
			if(nleft != 0)
			{
				leftArray = new int[nleft][2];
				for(int j = 0; j < nleft; j++)
				{
					leftArray[j][0] = y;
					leftArray[j][1] = i + j;
				}
			}
			for(i = x; i < 9; i++)
			{
				if(x != i && chess[y][i] != 32)
				{
					i--;
					break;
				}
			}
			if(i == 9)
				i--;
			nright = i - x;
			if(nright != 0)
			{
				rightArray = new int[nright][2];
				for(int j = 0; j < nright; j++)
				{
					rightArray[j][0] = y;
					rightArray[j][1] = i - j;
				}
			}
			for(i = y; i < 10; i++)
			{
				if(y != i && chess[i][x] != 32)
				{
					i--;
					break;
				}
			}
			if(i == 10)
				i--;
			ndown = i - y;
			if(ndown != 0)
			{
				downArray = new int[ndown][2];
				for(int j = 0; j < ndown; j++)
				{
					downArray[j][0] = i - j;
					downArray[j][1] = x;
				}
			}
			for(i = y; i >= 0; i--)
			{
				if(y != i && chess[i][x] != 32)
				{
					i++;
					break;
				}
			}
			if(i == -1)
				i++;
			nup = y - i;
			if(nup != 0)
			{
				upArray = new int[nup][2];
				for(int j = 0; j < nup; j++)
				{
					upArray[j][0] = i + j;
					upArray[j][1] = x;
				}
			}
			//System.out.println("走棋步集合完毕");
			nAll = nleft + nright + nup + ndown;
			int[][] a = new int[nAll][2];
			if(nleft != 0)
			{
				for(int j = 0; j < nleft; j++)
				{
					a[j] = leftArray[j];
					//System.out.println("炮的第"+j+"个左走步坐标为y:"+leftArray[j][0]+"x:"+leftArray[j][1]);
				}
			}
			//System.out.println("左走棋步集合完毕");
			if(nright != 0)
			{
				for(int j =0; j < nright; j++)
				{
					a[nleft + j] = rightArray[j];
					//System.out.println("炮的第"+j+"个右走步坐标为y:"+rightArray[j][0]+"x:"+rightArray[j][1]);
				}
			}
			//System.out.println("右走棋步集合完毕");
			if(nup != 0)
			{
				for(int j =0; j < nup; j++)
				{
					a[nleft +nright + j] = upArray[j];
					//System.out.println("炮的第"+j+"个上走步坐标为y:"+upArray[j][0]+"x:"+upArray[j][1]);
				}
			}
			//System.out.println("上走棋步集合完毕");
			if(ndown != 0)
			{
				for(int j =0; j < ndown; j++)
				{
					a[nleft + nright + nup + j] = downArray[j];
					//System.out.println("炮的第"+j+"个下走步坐标为y:"+downArray[j][0]+"x:"+downArray[j][1]);
				}
			}
			//System.out.println("下走棋步集合完毕");
			//System.out.println("开始获取吃棋步集合");
			//吃棋走步集合
			leftArray = new int[8][2];
			rightArray = new int[8][2];
			upArray = new int[8][2];
			downArray = new int[8][2];
			int leftNumber = 0;
			//System.out.println("获取吃棋步集合时的局部变量初始化完毕");
			for(i = x; i >= 0; i--)
			{
				if(i != x && chess[y][i] != 32)
				{
					leftArray[leftNumber][0] = y;
					leftArray[leftNumber][1] = i;
					leftNumber++;
				}
			}
			//System.out.println("左吃棋步集合完毕");
			int rightNumber = 0;
			for(i = x; i < 9; i++)
			{
				if(i != x && chess[y][i] != 32)
				{
					rightArray[rightNumber][0] = y;
					rightArray[rightNumber][1] = i;
					rightNumber++;
				}
			}
			//System.out.println("右吃棋步集合完毕");
			int upNumber = 0;
			for(i = y; i >= 0; i--)
			{
				if(i != y && chess[i][x] != 32)
				{
					upArray[upNumber][0] = i;
					upArray[upNumber][1] = x;
					upNumber++;
				}
			}
			//System.out.println("上吃棋步集合完毕");
			int downNumber = 0;
			for(i = y; i < 10; i++)
			{
				if(i != y && chess[i][x] != 32)
				{
					downArray[downNumber][0] = i;
					downArray[downNumber][1] = x;
					downNumber++;
				}
			}
			//System.out.println("下吃棋步集合完毕");
			int c = 0, d = 0, eatNumber = 0;
			int nly = -1, nlx = 0;
			int nry = -1, nrx = 0;
			int nuy = -1, nux = 0;
			int ndy = -1, ndx = 0;
			if(leftNumber > 1)
			{
				c = leftArray[1][0];
				d = leftArray[1][1];
				if(code < 16 && chess[c][d] > 15 || code > 15 && chess[c][d] < 16)
				{
					//System.out.println("左边有吃棋步");
					nly = c;
					nlx = d;
					eatNumber++;
					//System.out.println("左边吃棋步获取完毕:"+c+":"+d);
				}
			}
			if(rightNumber > 1)
			{
				c = rightArray[1][0];
				d = rightArray[1][1];
				if(code < 16 && chess[c][d] > 15 || code > 15 && chess[c][d] < 16)
				{
					//System.out.println("右边有吃棋步");
					nry = c;
					nrx = d;
					eatNumber++;
					//System.out.println("右边吃棋步获取完毕:"+c+":"+d);
				}
			}
			if(upNumber > 1)
			{
				c = upArray[1][0];
				d = upArray[1][1];
				if(code < 16 && chess[c][d] > 15 || code > 15 && chess[c][d] < 16)
				{
					//System.out.println("上边有吃棋步");
					nuy = c;
					nux = d;
					eatNumber++;
					//System.out.println("上边吃棋步获取完毕:"+c+":"+d);
				}
			}
			if(downNumber > 1)
			{
				c = downArray[1][0];
				d = downArray[1][1];
				if(code < 16 && chess[c][d] > 15 || code > 15 && chess[c][d] < 16)
				{
					//System.out.println("下边有吃棋步");
					ndy = c;
					ndx = d;
					eatNumber++;
					//System.out.println("下边吃棋步获取完毕:"+c+":"+d);
				}
			}
			//System.out.println("吃棋步集合完毕");
			tempCollection = new int[eatNumber + nAll][2];
			for(int j = 0; j < nAll; j++)
			{
				tempCollection[j] = a[j];
			}
			nAll--;
			if(nly != -1)
			{
				nAll++;
				tempCollection[nAll][0] = nly;
				tempCollection[nAll][1] = nlx;
				//System.out.println("左边吃棋步添加成功");
			}
			if(nry != -1)
			{
				nAll++;
				tempCollection[nAll][0] = nry;
				tempCollection[nAll][1] = nrx;
				//System.out.println("右边吃棋步添加成功");
			}
			if(nuy != -1)
			{
				nAll++;
				tempCollection[nAll][0] = nuy;
				tempCollection[nAll][1] = nux;
				//System.out.println("上边吃棋步添加成功");
			}
			if(ndy != -1)
			{
				nAll++;
				tempCollection[nAll][0] = ndy;
				tempCollection[nAll][1] = ndx;
				//System.out.println("下边吃棋步添加成功");
			}
			//System.out.println("获取炮走步集合完毕");
		}
		//兵的走集合
		if(code >0 && code < 6 || code >16 && code < 22)
		{
			//System.out.println("开始获取兵走步集合");
			int[][] a = new int[3][2];
			a[0][0] = -1;
			a[1][0] = -1;
			a[2][0] = -1;
			if(code > 15 && y >4)
			{
				a[0][0] = y - 1;
				a[0][1] = x;
			}
			else if(code < 16 && y < 5)
			{
				a[0][0] = y + 1;
				a[0][1] = x;
			}
			else if(code > 15 && y < 5)
			{
				a[0][0] = y;
				a[0][1] = x - 1;
				a[1][0] = y - 1;
				a[1][1] = x;
				a[2][0] = y;
				a[2][1] = x + 1;
			}
			else
			{
				a[0][0] = y;
				a[0][1] = x - 1;
				a[1][0] = y;
				a[1][1] = x + 1;
				a[2][0] = y + 1;
				a[2][1] = x;
			}
			//将不符合条件的落脚点去掉
			int n = 0;
			for(int j = 0; j < a.length; j++)
			{
				//将超出边界的落脚点去掉
				if(a[j][0] < 0 || a[j][0] > 9 || a[j][1] < 0 || a[j][1] > 8)
				{
					a[j][0] = -1;
					n++;
					continue;
				}
				//将落脚点有自己棋子的去掉
				int c = a[j][0];
				int d = a[j][1];
				int temp = chess[c][d];
				if(temp == 32)
					continue;
				if(temp < 15 && code < 15 || temp > 16 && code > 16)
				{
					a[j][0] = -1;
					n++;
				}
			}
			int nAll = a.length - n;
			tempCollection = new int[nAll][2];
			int m = 0;
			for(int j = 0; j < a.length; j++)
			{
				if(a[j][0] != -1)
				{
					tempCollection[m] = a[j];
					//System.out.println(a[j][0]+","+a[j][1]);
					//System.out.println();
					m++;
				}
			}
		}
		return tempCollection;
	}
	private	void	initIDS()
	{
		//初始化IDS
		IDS = new int[32][3];
		for(int i = 0 ;i < 32 ;i++)
			IDS[i][0] = i;
		IDS[0][1] = jiangP;
		IDS[0][2] = jiangN;
		IDS[1][1] = bingP;
		IDS[1][2] = bingN;
		IDS[2][1] = bingP;
		IDS[2][2] = bingN;
		IDS[3][1] = bingP;
		IDS[3][2] = bingN;
		IDS[4][1] = bingP;
		IDS[4][2] = bingN;
		IDS[5][1] = bingP;
		IDS[5][2] = bingN;
		IDS[6][1] = paoP;
		IDS[6][2] = paomaN;
		IDS[7][1] = paoP;
		IDS[7][2] = paomaN;
		IDS[8][1] = cheP;
		IDS[8][2] = cheN;
		IDS[9][1] = cheP;
		IDS[9][2] = cheN;
		IDS[10][1] = maP;
		IDS[10][2] = paomaN;
		IDS[11][1] = maP;
		IDS[11][2] = paomaN;
		IDS[12][1] = xiangP;
		IDS[12][2] = xiangshiN;
		IDS[13][1] = xiangP;
		IDS[13][2] = xiangshiN;
		IDS[14][1] = shiP;
		IDS[14][2] = xiangshiN;
		IDS[15][1] = shiP;
		IDS[15][2] = xiangshiN;
		IDS[16][1] = jiangP;
		IDS[16][2] = jiangN;
		IDS[17][1] = bingP;
		IDS[17][2] = bingN;
		IDS[18][1] = bingP;
		IDS[18][2] = bingN;
		IDS[19][1] = bingP;
		IDS[19][2] = bingN;
		IDS[20][1] = bingP;
		IDS[20][2] = bingN;
		IDS[21][1] = bingP;
		IDS[21][2] = bingN;
		IDS[22][1] = paoP;
		IDS[22][2] = paomaN;
		IDS[23][1] = paoP;
		IDS[23][2] = paomaN;
		IDS[24][1] = cheP;
		IDS[24][2] = cheN;
		IDS[25][1] = cheP;
		IDS[25][2] = cheN;
		IDS[26][1] = maP;
		IDS[26][2] = paomaN;
		IDS[27][1] = maP;
		IDS[27][2] = paomaN;
		IDS[28][1] = xiangP;
		IDS[28][2] = xiangshiN;
		IDS[29][1] = xiangP;
		IDS[29][2] = xiangshiN;
		IDS[30][1] = shiP;
		IDS[30][2] = xiangshiN;
		IDS[31][1] = shiP;
		IDS[31][2] = xiangshiN;
	}
};

⌨️ 快捷键说明

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