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

📄 chess.java

📁 我的毕业设计
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
					{
						Ex = i;
						break;
					}
				}

				//右上方是否有棋子
				for (int i=0;i<32;i++)
				{
					if (playQ[i].isVisible() &&  playQ[i].getX() - play.getX() >= 40 && playQ[i].getX() - play.getX() <= 90 && play.getY() - playQ[i].getY() >= 40 && play.getY() - playQ[i].getY() <= 60)
					{
						Move++;
						break;
					}
				}

				//相、象规则
				if (Move == 0 && Ey > 230 && Man > 9)
				{
					//当前记录添加到集合(用于悔棋)
					Var.add(String.valueOf(play.isVisible()));
					Var.add(String.valueOf(play.getX()));
					Var.add(String.valueOf(play.getY()));
					Var.add(String.valueOf(Man));

					play.setBounds(Ex-20,Ey-15,40,40);
				}

				else if (Move == 0 && Ey < 270 && Man < 10)
				{
					//当前记录添加到集合(用于悔棋)
					Var.add(String.valueOf(play.isVisible()));
					Var.add(String.valueOf(play.getX()));
					Var.add(String.valueOf(play.getY()));
					Var.add(String.valueOf(Man));

					play.setBounds(Ex-20,Ey-15,40,40);
				}

			}// else if

			//下左
			else if (play.getX() - me.getX() <= 100 && play.getX() - me.getX() >= 60 && me.getY() - play.getY() <= 130 && me.getY() - play.getY() >= 100)
			{
				//合法的Y坐标
				for (int i=30;i<=462;i+=48)
				{
					if (i - me.getY() >= -10 && i - me.getY() <= 30)
					{
						Ey = i;
						break;
					}
				}

				//合法的X坐标
				for (int i=30;i<=420;i+=48)
				{
					if (i - me.getX() >= -35 && i-me.getX() <= 10)
					{
						Ex = i;
						break;
					}
				}

				//下左方是否有棋子
				for (int i=0;i<32;i++)
				{
					if (playQ[i].isVisible() && play.getX() - playQ[i].getX() >= 10 && play.getX() - playQ[i].getX() <= 60 && play.getY() - playQ[i].getY() <= -40 && play.getY() - playQ[i].getY() >= -60)
					{
						Move++;
						break;
					}
				}

				//相、象规则

				if (Move == 0 && Ey > 230 && Man > 9)
				{
					//当前记录添加到集合(用于悔棋)
					Var.add(String.valueOf(play.isVisible()));
					Var.add(String.valueOf(play.getX()));
					Var.add(String.valueOf(play.getY()));
					Var.add(String.valueOf(Man));

					play.setBounds(Ex-20,Ey-15,40,40);
				}

				else if (Move == 0 && Ey < 270 && Man < 10)
				{
					//当前记录添加到集合(用于悔棋)
					Var.add(String.valueOf(play.isVisible()));
					Var.add(String.valueOf(play.getX()));
					Var.add(String.valueOf(play.getY()));
					Var.add(String.valueOf(Man));

					play.setBounds(Ex-20,Ey-15,40,40);
				}
			}//else if

			//下右
			else if (me.getX() - play.getX() >= 100 &&  me.getX() - play.getX() <= 130 && me.getY() - play.getY() >= 100 && me.getY() - play.getY() <= 130)
			{
				//Y
				for (int i=30;i<=462;i+=48)
				{
					if (i - me.getY() >= -10 && i - me.getY() <= 30)
					{
						Ey = i;
					}
				}

				//X
				for (int i=30;i<=420;i+=48)
				{
					if (i - me.getX() >= -35 && i-me.getX() <= 10)
					{
						Ex = i;
					}
				}

				//下右方是否有棋子
				for (int i=0;i<32;i++)
				{
					if (playQ[i].isVisible() && playQ[i].getX() - play.getX() >= 50 && playQ[i].getX() - play.getX()  <= 80 && playQ[i].getY() - play.getY() >= 40 && playQ[i].getY() - play.getY() <= 60)
					{
						Move = 1;
						break;
					}
				}

				//相、象规则
				if (Move == 0 && Ey > 230 && Man > 9)
				{
					//当前记录添加到集合(用于悔棋)
					Var.add(String.valueOf(play.isVisible()));
					Var.add(String.valueOf(play.getX()));
					Var.add(String.valueOf(play.getY()));
					Var.add(String.valueOf(Man));

					play.setBounds(Ex-20,Ey-15,40,40);
				}

				else if (Move == 0 && Ey < 270 && Man < 10)
				{
					//当前记录添加到集合(用于悔棋)
					Var.add(String.valueOf(play.isVisible()));
					Var.add(String.valueOf(play.getX()));
					Var.add(String.valueOf(play.getY()));
					Var.add(String.valueOf(Man));

					play.setBounds(Ex-20,Ey-15,40,40);
				}

			}//else

		}//相移动规则吉束

		/*相、象吃棋规则***************************************************/
		public void elephantRule(JLabel play,JLabel playTake,JLabel playQ[])
		{
			//障碍
			int Move=0;
			boolean Chess=false;

			//吃左上方的棋子
			if (play.getX() - playTake.getX() >= 80 && play.getX() - playTake.getX() <= 100 && play.getY() - playTake.getY() >= 80 && play.getY() - playTake.getY() <= 110)
			{
				//左上方是否有棋子
				for (int i=0;i<32;i++)
				{
					if (playQ[i].isVisible() && play.getX() - playQ[i].getX() >= 10 && play.getX() - playQ[i].getX() <= 50 && play.getY() - playQ[i].getY() >= 40 && play.getY() - playQ[i].getY() <= 60)
					{
						Move++;
						break;
					}
				}//for

				Chess=true;

			}//if

			//吃右上方的棋子
			else if (playTake.getX() - play.getX() >= 110 && playTake.getX() - play.getX() <= 80 && play.getY() - playTake.getY() >= 80 && play.getY() - playTake.getY() <= 110 )
			{
				//右上方是否有棋子
				for (int i=0;i<32;i++)
				{
					if (playQ[i].isVisible() &&  playQ[i].getX() - play.getX() >= 40 && playQ[i].getX() - play.getX() <= 90 && play.getY() - playQ[i].getY() >= 40 && play.getY() - playQ[i].getY() <= 60)
					{
						Move++;
						break;
					}
				}//for

				Chess=true;
			}//else

			//吃下左方的棋子
			else if (play.getX() - playTake.getX() >= 80 && play.getX() - playTake.getX() <= 110 && playTake.getY() - play.getY() >= 80 && playTake.getY() - play.getY() <= 110)
			{
				//下左方是否有棋子
				for (int i=0;i<32;i++)
				{
					if (playQ[i].isVisible() && play.getX() - playQ[i].getX() >= 10 && play.getX() - playQ[i].getX() <= 60 && play.getY() - playQ[i].getY() <= -40 && play.getY() - playQ[i].getY() >= -60)
					{
						Move++;
						break;
					}
				}//for

				Chess=true;
			}//else

			//吃下右放的棋子
			else if (playTake.getX() - play.getX() >= 80 && playTake.getX() - play.getX() <= 110 && playTake.getY() - play.getY() >= 80 && playTake.getY() - play.getY() <= 110)
			{
				//下右方是否有棋子
				for (int i=0;i<32;i++)
				{
					if (playQ[i].isVisible() && playQ[i].getX() - play.getX() >= 50 && playQ[i].getX() - play.getX()  <= 80 && playQ[i].getY() - play.getY() >= 40 && playQ[i].getY() - play.getY() <= 60)
					{
						Move = 1;
						break;
					}
				}//for

				Chess=true;

			}//else

			//没有障碍、并不能吃自己的棋子
			if (Chess && Move == 0 && playTake.getName().charAt(1) != play.getName().charAt(1))
			{
				//当前记录添加到集合(用于悔棋)
				Var.add(String.valueOf(play.isVisible()));
				Var.add(String.valueOf(play.getX()));
				Var.add(String.valueOf(play.getY()));
				Var.add(String.valueOf(Man));

				//当前记录添加到集合(用于悔棋)
				Var.add(String.valueOf(playTake.isVisible()));
				Var.add(String.valueOf(playTake.getX()));
				Var.add(String.valueOf(playTake.getY()));
				Var.add(String.valueOf(i));

				playTake.setVisible(false);
				play.setBounds(playTake.getX(),playTake.getY(),40,40);
			}

		}//相、象吃棋规则结束

		/*士、仕移动方法*******************************************************/
		public void chapRule(int Man,JLabel play,JLabel playQ[],MouseEvent me)
		{
			//上、右
			if (me.getX() - play.getX() >= 50 && me.getX() - play.getX() <= 80 && play.getY() - me.getY() >= 15 && play.getY() - me.getY() <= 50)
			{
				//士不能超过自己的界限
				if (Man < 14 && me.getX() > 150 && me.getX() < 300 && me.getY() < 150)
				{
					//当前记录添加到集合(用于悔棋)
					Var.add(String.valueOf(play.isVisible()));
					Var.add(String.valueOf(play.getX()));
					Var.add(String.valueOf(play.getY()));
					Var.add(String.valueOf(Man));

					play.setBounds(play.getX()+50,play.getY()-50,40,40);
				}

				//仕不能超过自己的界限
				else if (Man > 13 && me.getY() > 340 && me.getX() > 150 && me.getX() < 300)
				{
					//当前记录添加到集合(用于悔棋)
					Var.add(String.valueOf(play.isVisible()));
					Var.add(String.valueOf(play.getX()));
					Var.add(String.valueOf(play.getY()));
					Var.add(String.valueOf(Man));

					play.setBounds(play.getX()+50,play.getY()-50,40,40);
				}
			}// else if

			//上、左
			else if (play.getX() - me.getX() <= 50 && play.getX() - me.getX() >= 13 && play.getY() - me.getY() >= 15 && play.getY() - me.getY() <= 50)
			{
				//士、仕规则
				if (Man < 14 && me.getX() > 150 && me.getX() < 300 && me.getY() < 150)
				{
					//当前记录添加到集合(用于悔棋)
					Var.add(String.valueOf(play.isVisible()));
					Var.add(String.valueOf(play.getX()));
					Var.add(String.valueOf(play.getY()));
					Var.add(String.valueOf(Man));

					play.setBounds(play.getX()-50,play.getY()-50,40,40);
				}

				else if (Man > 13 && me.getY() > 340 && me.getX() > 150 && me.getX() < 300)
				{
					//当前记录添加到集合(用于悔棋)
					Var.add(String.valueOf(play.isVisible()));
					Var.add(String.valueOf(play.getX()));
					Var.add(String.valueOf(play.getY()));
					Var.add(String.valueOf(Man));

					play.setBounds(play.getX()-50,play.getY()-50,40,40);
				}
			}// else if

			//下、左
			else if (play.getX() - me.getX() <= 50 && play.getX() - me.getX() >= 15 && me.getY() - play.getY() >= 50 && me.getY() - play.getY() <= 80)
			{
				//士、仕规则
				if (Man < 14 && me.getX() > 150 && me.getX() < 300 && me.getY() < 150)
				{
					//当前记录添加到集合(用于悔棋)
					Var.add(String.valueOf(play.isVisible()));
					Var.add(String.valueOf(play.getX()));
					Var.add(String.valueOf(play.getY()));
					Var.add(String.valueOf(Man));

					play.setBounds(play.getX()-50,play.getY()+50,40,40);
				}

				else if (Man > 13 && me.getY() > 340 && me.getX() > 150 && me.getX() < 300)
				{
					//当前记录添加到集合(用于悔棋)
					Var.add(String.valueOf(play.isVisible()));
					Var.add(String.valueOf(play.getX()));
					Var.add(String.valueOf(play.getY()));
					Var.add(String.valueOf(Man));

					play.setBounds(play.getX()-50,play.getY()+50,40,40);
				}

			}// else if


			//下、右
			else if (me.getX() - play.getX() >= 50 && me.getX() - play.getX() <= 80 && me.getY() - play.getY() >= 50 && me.getY() - play.getY() <= 80)
			{
				//士、仕规则
				if (Man < 14 && me.getX() > 150 && me.getX() < 300 && me.getY() < 150)
				{
					//当前记录添加到集合(用于悔棋)
					Var.add(String.valueOf(play.isVisible()));
					Var.add(String.valueOf(play.getX()));
					Var.add(String.valueOf(play.getY()));
					Var.add(String.valueOf(Man));

					play.setBounds(play.getX()+50,play.getY()+50,40,40);
				}

				else if (Man > 13 && me.getY() > 340 && me.getX() > 150 && me.getX() < 300)
				{
					//当前记录添加到集合(用于悔棋)
					Var.add(String.valueOf(play.isVisible()));
					Var.add(String.valueOf(play.getX()));
					Var.add(String.valueOf(play.getY()));
					Var.add(String.valueOf(Man));

					play.setBounds(play.getX()+50,play.getY()+50,40,40);
				}
			}//else if

		}//士、仕移动规则结束


		/*士、仕吃棋规则*********************************************************/
		public void chapRule(int Man ,JLabel play,JLabel playTake,JLabel playQ[])
		{
			//当前状态
			boolean Chap = false;

			//上、右
			if (playTake.getX() - play.getX() >= 30 && playTake.getX() - play.getX() <= 60 && play.getY() - playTake.getY() >= 30 && play.getY() - playTake.getY() <= 60)
			{
				//被吃的棋子是否和当前士相近
				if (Man < 14 && playTake.getX() > 150 && playTake.getX() < 300 && playTake.getY() < 150 && playTake.isVisible())
				{
					Chap = true;
				}

				//被吃的棋子是否和当前仕相近
				else if (Man > 13 && playTake.getX() > 150 && playTake.getX() < 300 && playTake.getY() > 340 && playTake.isVisible())
				{
					Chap = true;
				}
			}//if

			//上、左
			else if (play.getX() - playTake.getX() <= 60 && play.getX() - playTake.getX() >= 30 && play.getY() - playTake.getY() >= 30 && play.getY() - playTake.getY() <= 60)
			{
				//被吃的棋子是否和当前士相近
				if (Man < 14 && playTake.getX() > 150 && playTake.getX() < 300 && playTake.getY() < 150 && playTake.isVisible())
				{
					Chap = true;
				}

				//被吃的棋子是否和当前仕相近
				else if (Man > 13 && playTake.getX() > 150 && playTake.getX() < 300 && playTake.getY() > 340 && playTake.isVisible())
				{
					Chap = true;
				}
			}// else if

			//下、左
			else if (play.getX() - playTake.getX() <= 60 && play.getX() - playTake.getX() >= 30 && playTake.getY() - play.getY() >= 30 && playTake.getY() - play.getY() <= 60)
			{
				//被吃的棋子是否和当前士相近
				if (Man < 14 && playTake.getX() > 150 && playTake.getX() < 300 && playTake.getY() < 150 && playTake.isVisible())
				{
					Chap = true;
				}

				//被吃的棋子是否和当前仕相近
				else if (Man > 13 && playTake.getX() > 150 && playTake.getX() < 300 && playTake.getY() > 340 && playTake.isVisible())
				{
					Chap = true;
				}
			}// else if

			//下、右
			else if (playTake.getX() - play.getX() >= 30 && playTake.getX() - play.getX() <= 60 && playTake.getY() - play.getY() >= 30 && playTake.getY() - play.getY() <= 60)
			{
				//被吃的棋子是否和当前士相近
				if (Man < 14 && playTake.getX() > 150 && playTake.getX() < 300 && playTake.getY() < 150 && playTake.isVisible())
				{
					Chap = true;
				}

				//被吃的棋子是否和当前仕相近
				else if (Man > 13 && playTake.getX() > 150 && playTake.getX() < 300 && playTake.getY() > 340 && playTake.isVisible())
				{
					Chap = true;
				}
			}//else if

			//可移动、并不能吃自己的棋子
			if (Chap && playTake.getName().charAt(1) != play.getName().charAt(1))
			{
				//当前记录添加到集合(用于悔棋)
				Var.add(String.valueOf(play.isVisible()));
				Var.add(String.valueOf(play.getX()));
				Var.add(String.valueOf(play.getY()));
				Var.add(String.valueOf(Man));

				//当前记录添加到集合(用于悔棋)
				Var.add(String.valueOf(playTake.isVisible()));
				Var.add(String.valueOf(playTake.getX()));
				Var.add(String.valueOf(playTake.getY()));
				Var.add(String.valueOf(i));

				playTake.setVisible(false);
				play.setBounds(playTake.getX(),playTake.getY(),40,40);
			}

		}//士、仕吃棋规则结束

		/*将、帅移动规则*******************************************************/
		public void willRule(int Man ,JLabel play,JLabel playQ[],MouseEvent me)
		{
			//向上
			if (me.getX() - play.getX() >= -5 && me.getX() - play.getX() <= 35 && play.getY() - me.getY() <= 50 && play.getY() - me.getY() >= 15)
			{
				//将是否超过自己的界限
				if (Man == 30 && me.getX() > 150 && me.getX() < 300 && me.getY() < 150)
				{
					//当前记录添加到集合(用于悔棋)
					Var.add(String.valueOf(play.isVisible()));
					Var.add(String.valueOf(play.getX()));
					Var.add(String.valueOf(play.getY()));
					Var.add(String.valueOf(Man));

					play.setBounds(play.getX(),play.getY()-50,40,40);
				}

				//帅是否超过自己的界限
				else if (Man == 31 && m

⌨️ 快捷键说明

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