/**马吃棋规则*/
public void horseRule(JLabel play,JLabel playTake ,JLabel playQ[],MouseEvent me){
//障碍
int Move=0;
boolean Chess=false;
//上移、左吃
if (play.getName().charAt(1)!=playTake.getName().charAt(1) && play.getX() - playTake.getX() == 57 && play.getY() - playTake.getY() == 114 ){
//正前方是否有别的棋子
for (int i=0;i<32;i++){
if (playQ[i].isVisible() && play.getX() - playQ[i].getX() == 0 && play.getY() - playQ[i].getY() == 57){
Move = 1;
break;
}
}//for
Chess = true;
}//if
//上移、右吃
else if (play.getY() - playTake.getY() == 114 && playTake.getX() - play.getX() == 57 ){
//正前方是否有别的棋子
for (int i=0;i<32;i++){
if (playQ[i].isVisible() && play.getX() - playQ[i].getX() == 0 && play.getY() - playQ[i].getY() == 57){
Move = 1;
break;
}
}//for
Chess = true;
}//else
//左移、上吃
else if (play.getY() - playTake.getY() == 57 && play.getX() - playTake.getX() == 114 ){
//正左方是否有别的棋子
for (int i=0;i<32;i++){
if (playQ[i].isVisible() && play.getY() - playQ[i].getY() == 0 && play.getX() - playQ[i].getX() == 57){
Move = 1;
break;
}
}//for
Chess = true;
}//else
//左移、下吃
else if (playTake.getY() - play.getY() == 57 && play.getX() - playTake.getX() == 114 ){
//正左方是否有别的棋子
for (int i=0;i<32;i++){
if (playQ[i].isVisible() && play.getY() - playQ[i].getY() == 0 && play.getX() - playQ[i].getX() == 57){
Move = 1;
break;
}
}//for
Chess = true;
}//else
//右移、上吃
else if (play.getY() - playTake.getY() == 57 && playTake.getX() - play.getX() == 114 ){
//正右方是否有别的棋子
for (int i=0;i<32;i++){
if (playQ[i].isVisible() && play.getY() - playQ[i].getY() == 0 && playQ[i].getX() - play.getX() == 57){
Move = 1;
break;
}
}//for
Chess = true;
}//else
//右移、下吃
else if (playTake.getY() - play.getY() == 57 && playTake.getX() - play.getX() == 114 ){
//正右方是否有别的棋子
for (int i=0;i<32;i++){
if (playQ[i].isVisible() && play.getY() - playQ[i].getY() == 0 && playQ[i].getX() - play.getX() == 57){
Move = 1;
break;
}
}//for
Chess = true;
}//else
//下移、左吃
else if (playTake.getY() - play.getY() == 114 && play.getX() - playTake.getX() == 57 ){
//正下方是否有别的棋子
for (int i=0;i<32;i++){
if (playQ[i].isVisible() && play.getX() - playQ[i].getX() == 0 && play.getY() - playQ[i].getY() == -57 ){
Move = 1;
break;
}
}//for
Chess = true;
}//else
//下移、右吃
else if (playTake.getY() - play.getY() == 114 && playTake.getX() - play.getX() == 57){
//正下方是否有别的棋子
for (int i=0;i<32;i++){
if (playQ[i].isVisible() && play.getX() - playQ[i].getX() == 0 && play.getY() - playQ[i].getY() == -57 ){
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(),55,55);
}
}
/**相移动规则*/
public void elephantRule(int Man,JLabel play,JLabel playQ[],MouseEvent me){
//坐标和障碍
int Ex=0,Ey=0,Move=0;
//上左
if (play.getX() - me.getX() <= 141 && play.getX() - me.getX() >= 87 && play.getY() - me.getY() <= 141 && play.getY() - me.getY() >= 87){
//合法的Y坐标
for (int i=56;i<=571;i+=57){
if (i - me.getY() >= -27 && i - me.getY() <= 27){
Ey = i;
break;
}
}
//合法的X坐标
for (int i=24;i<=480;i+=57){
if (i - me.getX() >= -27 && i-me.getX() <= 27){
Ex = i;
break;
}
}
//左上方是否有棋子
for (int i=0;i<32;i++){
if (playQ[i].isVisible() && play.getX() - playQ[i].getX() == 57 && play.getY() - playQ[i].getY() == 57){
Move++;
break;
}
}
//红旗不能过楚河
if (Move == 0 && Ey >= 341 && 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));
System.out.println("Ex="+Ex);
System.out.println("Ey="+Ey);
play.setBounds(Ex,Ey,55,55);
}
//黑旗不能过汉界
else if (Move == 0 && Ey <= 284 && 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,Ey,55,55);
}
}//if
//上右
else if (play.getY() - me.getY() <= 141 && play.getY() - me.getY() >= 87 && me.getX() - play.getX() >= 87 && me.getX() - play.getX() <= 141){
//合法的Y坐标
for (int i=56;i<=571;i+=57){
if (i - me.getY() >= -27 && i - me.getY() <= 27){
Ey = i;
break;
}
}
//合法的X坐标
for (int i=24;i<=480;i+=57){
if (i - me.getX() >= -27 && i-me.getX() <= 27){
Ex = i;
break;
}
}
//右上方是否有棋子
for (int i=0;i<32;i++){
if (playQ[i].isVisible() && playQ[i].getX() - play.getX() == 57 && play.getY() - playQ[i].getY() == 57){
Move++;
break;
}
}
//相、象规则
if (Move == 0 && Ey >= 341 && 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,Ey,55,55);
}
else if (Move == 0 && Ey <= 284 && 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,Ey,55,55);
}
}// else if
//下左
else if (play.getX() - me.getX() <= 141 && play.getX() - me.getX() >= 87 && me.getY() - play.getY() <= 141 && me.getY() - play.getY() >= 87){
//合法的Y坐标
for (int i=56;i<=571;i+=57){
if (i - me.getY() >= -27 && i - me.getY() <= 27){
Ey = i;
break;
}
}
//合法的X坐标
for (int i=24;i<=480;i+=57){
if (i - me.getX() >= -27 && i-me.getX() <= 27){
Ex = i;
break;
}
}
//下左方是否有棋子
for (int i=0;i<32;i++){
if (playQ[i].isVisible() && play.getX() - playQ[i].getX() == 57 && play.getY() - playQ[i].getY() == -57){
Move++;
break;
}
}
//相、象规则
if (Move == 0 && Ey >= 341 && 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,Ey,55,55);
}
else if (Move == 0 && Ey <= 284 && 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,Ey,55,55);
}
}//else if
//下右
else if (me.getX() - play.getX() >= 87 && me.getX() - play.getX() <= 141 && me.getY() - play.getY() >= 87 && me.getY() - play.getY() <= 141){
//Y
for (int i=56;i<=571;i+=57){
if (i - me.getY() >= -27 && i - me.getY() <= 27){
Ey = i;
}
}
//X
for (int i=24;i<=480;i+=57){
if (i - me.getX() >= -27 && i-me.getX() <= 27){
Ex = i;
}
}
//下右方是否有棋子
for (int i=0;i<32;i++){
if (playQ[i].isVisible() && playQ[i].getX() - play.getX() == 57 && playQ[i].getY() - play.getY() == 57){
Move = 1;
break;
}
}
//相、象规则
if (Move == 0 && Ey >= 341 && 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,Ey,55,55);
}
else if (Move == 0 && Ey <= 284 && 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,Ey,55,55);
}
}//else
}//相移动规则吉束
/**相、象吃棋规则*/
public void elephantRule(JLabel play,JLabel playTake,JLabel playQ[]){
//障碍
int Move=0;
boolean Chess=false;
//吃左上方的棋子
if (play.getX() - playTake.getX() >= 87 && play.getX() - playTake.getX() <= 141 && play.getY() - playTake.getY() >= 87 && play.getY() - playTake.getY() <= 141){
//左上方是否有棋子
for (int i=0;i<32;i++){
if (playQ[i].isVisible() && play.getX() - playQ[i].getX() == 57 && play.getY() - playQ[i].getY() == 57){
Move++;
break;
}
}//for
Chess=true;
}//if
//吃右上方的棋子
else if (playTake.getX() - play.getX() >= 87 && playTake.getX() - play.getX() <= 141 && play.getY() - playTake.getY() >= 87 && play.getY() - playTake.getY() <= 141 ){
//右上方是否有棋子
for (int i=0;i<32;i++){
if (playQ[i].isVisible() && playQ[i].getX() - play.getX() == 57 && play.getY() - playQ[i].getY() == 57 ){
Move++;
break;
}
}//for
Chess=true;
}//else
//吃下左方的棋子
else if (play.getX() - playTake.getX() >= 87 && play.getX() - playTake.getX() <= 141 && playTake.getY() - play.getY() >= 87 && playTake.getY() - play.getY() <= 141){
//下左方是否有棋子
for (int i=0;i<32;i++){
if (playQ[i].isVisible() && play.getX() - playQ[i].getX() == 57 && play.getY() - playQ[i].getY() == -57 ){
Move++;
break;
}
}//for
Chess=true;
}//else
//吃下右放的棋子
else if (playTake.getX() - play.getX() >= 87 && playTake.getX() - play.getX() <= 141 && playTake.getY() - play.getY() >= 87 && playTake.getY() - play.getY() <= 141){
//下右方是否有棋子
for (int i=0;i<32;i++){
if (playQ[i].isVisible() && playQ[i].getX() - play.getX() == 57 && playQ[i].getY() - play.getY() == 57 ){
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(),55,55);
}
}//相、象吃棋规则结束
/**士、仕移动方法*/
public void chapRule(int Man,JLabel play,JLabel playQ[],MouseEvent me){
//上、右
if (me.getX() - play.getX() >= 29 && me.getX() - play.getX() <= 114 && play.getY() - me.getY() >= 25 && play.getY() - me.getY() <= 90){
//士不能超过自己的界限
if (Man < 14 && (play.getX()+57) >= 195 && (play.getX()+57) <= 309 && (play.getY()-57) <= 170){
//当前记录添加到集合(用于悔棋)
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()+57,play.getY()-57,55,55);
}
//仕不能超过自己的界限
else if (Man > 13 && (play.getY()-57) >= 455 && (play.getX()+57) >= 195 && (play.getX()+57) <= 309){
//当前记录添加到集合(用于悔棋)
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()+57,play.getY()-57,55,55);
}
}// else if
//上、左
else if (play.getX() - me.getX() <= 114 && play.getX() - me.getX() >= 25 && play.getY() - me.getY() >= 20 && play.getY() - me.getY() <= 95){
//士不能超过自己的界限
if (Man < 14 && (play.getX()-57) >= 195 && (play.getX()-57) <= 309 && (play.getY()-57) <= 170 ){
//当前记录添加到集合(用于悔棋)
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()-57,play.getY()-57,55,55);
}
//仕不能超过自己的界限
else if (Man > 13 &&(play.getY()-57) >= 455 && (play.getX()-57) >= 195 && (play.getX()-57) <= 309){
//当前记录添加到集合(用于悔棋)
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()-57,play.getY()-57,55,55);
}
}// else if
//下、左
else if (play.getX() - me.getX() <= 114 && play.getX() - me.getX() >= 20 && me.getY() - play.getY() >= 2 && me.getY() - play.getY() <= 87){
//士不能超过自己的界限
if (Man < 14 && (play.getX()-57) >= 195 && (play.getX()-57) <= 309 && (play.getY()+57) <= 170 ){
//当前记录添加到集合(用于悔棋)
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()-57,play.getY()+57,55,55);
}
//仕不能超过自己的界限
else if (Man > 13 && (play.getY()+57) >= 455 && (play.getX()-57) >= 195 && (play.getX()-57) <= 309){
//当前记录添加到集合(用于悔棋)
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()-57,play.getY()+57,55,55);
}
}// else if
//下、右
else if (me.getX() - play.getX() >= 27 && me.getX() - play.getX() <= 114 && me.getY() - play.getY() >= 2 && me.getY() - play.getY() <= 87){
//士不能超过自己的界限
if (Man < 14 && (play.getX()+57) >= 195 && (play.getX()+57) <= 309 && (play.getY()+57) <= 170){
//当前记录添加到集合(用于悔棋)
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()+57,play.getY()+57,55,55);
}
//仕不能超过自己的界限
else if (Man > 13 &&(play.getY()+57) >= 455 && (play.getX()+57) >= 195 && (play.getX()+57) <= 309){
//当前记录添加到集合(用于悔棋)
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()+57,play.getY()+57,55,55);
}
}//else if
}//士、仕移动规则结束
/**士、仕吃棋规则*/
public void chapRule(int Man ,JLabel play,JLabel playTake,JLabel playQ[]){
//当前状态
boolean Chap = false;
//上、右
if (playTake.getX() - play.getX() >= 20 && playTake.getX() - play.getX() <= 114 && play.getY() - playTake.getY() >= 2 && play.getY() - playTake.getY() <= 87){
//被吃的棋子是否和当前士相近
if (Man < 14 && playTake.getX() >= 195 && playTake.getX() <= 309 && playTake.getY() <= 170 && playTake.isVisible()){
Chap = true;
}
//被吃的棋子是否和当前仕相近
else if (Man > 13 && playTake.getX() >= 195 && playTake.getX() <= 309 && playTake.getY() >= 455 && playTake.isVisible()){
Chap = true;
}
}//if
//上、左
else if (play.getX() - playTake.getX() <= 114 && play.getX() - playTake.getX() >= 25 && play.getY() - playTake.getY() >= 2 && play.getY() - playTake.getY() <= 87){
//被吃的棋子是否和当前士相近
if (Man < 14 && playTake.getX() >= 195 && playTake.getX() <= 309 && playTake.getY() <= 170 && playTake.isVisible()){
Chap = true;
}
//被吃的棋子是否和当前仕相近
else if (Man > 13 && playTake.getX() >= 195 && playTake.getX() <= 309 && playTake.getY() >= 455 && playTake.isVisible()){
Chap = true;
}
}// else if
//下、左
else if (play.getX() - playTake.getX() <= 114 && play.getX() - playTake.getX() >= 25 && playTake.getY() - play.getY() >= 2 && playTake.getY() - play.getY() <= 87){
//被吃的棋子是否和当前士相近
if (Man < 14 && playTake.getX() >= 195 && playTake.getX() <= 309 && playTake.getY() <= 170 && playTake.isVisible()){
Chap = true;
}
//被吃的棋子是否和当前仕相近
else if (Man > 13 && playTake.getX() >= 195 && playTake.getX() <= 309 && playTake.getY() >= 455 && playTake.isVisible()){
Chap = true;
}
}// else if
//下、右
else if (playTake.getX() - play.getX() >= 25 && playTake.getX() - play.getX() <= 114 && playTake.getY() - play.getY() >= 2 && playTake.getY() - play.getY() <= 87){
//被吃的棋子是否和当前士相近
if (Man < 14 && playTake.getX() >= 195 && playTake.getX() <= 309 && playTake.getY() <= 170 && playTake.isVisible()){
Chap = true;
}
//被吃的棋子是否和当前仕相近
else if (Man > 13 && playTake.getX() >= 195 && playTake.getX() <= 309 && playTake.getY() >= 455 && 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(),55,55);
}
}//士、仕吃棋规则结束
/**将移动规则*/
public void willRule(int Man,JLabel play,JLabel playQ[],MouseEvent me){
//向上
if ((me.getX()-play.getX()) >= 0 && (me.getX()-play.getX()) <= 55 && (play.getY()-me.getY()) >=2 && play.getY()-me.getY() <= 87){
//将是否超过自己的界限
if (Man == 30 && me.getX() >= 195 && me.getX() <= 359 && me.getY() <= 170){
//当前记录添加到集合(用于悔棋)
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()-57,55,55);
}
//帅是否超过自己的界限
else if (Man == 31 && me.getY() >= 455 && me.getX() >= 195 && me.getX() <= 359){
//当前记录添加到集合(用于悔棋)
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()-57,55,55);
}
}//if
//向左
else if (play.getX() - me.getX() >= 2 && play.getX() - me.getX() <= 57 && me.getY() - play.getY() <= 27 && me.getY() - play.getY() >= -27){
//将是否超过自己的界限
if (Man == 30 && me.getX() >= 195 && me.getX() <= 359 && me.getY() <= 170){
//当前记录添加到集合(用于悔棋)
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()-57,play.getY(),55,55);
}
//帅是否超过自己的界限
else if (Man == 31 && me.getY() >= 455 && me.getX() >= 195 && me.getX() <= 359){
//当前记录添加到集合(用于悔棋)
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()-57,play.getY(),55,55);
}
}//else if
//向右
else if (me.getX() - play.getX() >= 57 && me.getX() - play.getX() <= 112 && me.getY() - play.getY() <= 27 && me.getY() - play.getY() >= -27){
//将、帅规则
if (Man == 30 && me.getX() >= 195 && me.getX() <= 359 && me.getY() <= 170){
//当前记录添加到集合(用于悔棋)
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()+57,play.getY(),55,55);
}
else if (Man == 31 && me.getY() >= 455 && me.getX() >= 195 && me.getX() <= 359){
//当前记录添加到集合(用于悔棋)
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()+57,play.getY(),55,55);
}
}//else if
//向下
else if (me.getX() - play.getX() >= 0 && me.getX() - play.getX() <= 55 && me.getY() - play.getY() <= 87 && me.getY() - play.getY() >= 27){
//将、帅规则
if (Man == 30 && me.getX() >= 195 && me.getX() <= 359 && me.getY() <= 170){
//当前记录添加到集合(用于悔棋)
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()+57,55,55);
}
else if (Man == 31 && me.getY() >= 455 && me.getX() >= 195 && me.getX() <= 359){
//当前记录添加到集合(用于悔棋)
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()+57,55,55);
}
}//else if
}//将、帅移动规则结束
public void willRule(int Man ,JLabel play,JLabel playTake ,JLabel playQ[]){
//当前状态
boolean will = false;
//向上吃
if (play.getX() - playTake.getX() >= 0 && play.getX() - playTake.getX() <= 55 && play.getY() - playTake.getY() >= 27 && play.getY() - playTake.getY() <= 87 && playTake.isVisible()){
//被吃的棋子是否和当前将相近
if (Man == 30 && playTake.getX() >= 195 && playTake.getX() <= 309 && playTake.getY() <= 170){
will = true;
}
//被吃的棋子是否和当前帅相近
else if (Man == 31 && playTake.getY() >= 455 && playTake.getX() >= 195 && playTake.getX() <= 309){
will = true;
}
}
//向左吃
else if (play.getX() - playTake.getX() >= 2 && play.getX() - playTake.getX() <= 57 && playTake.getY() - play.getY() <= 27 && playTake.getY() - play.getY() >= -27 && playTake.isVisible()){
//被吃的棋子是否和当前将相近
if (Man == 30 && playTake.getX() >= 195 && playTake.getX() <= 309 && playTake.getY() <= 170){
will = true;
}
//被吃的棋子是否和当前帅相近
else if (Man == 31 && playTake.getY() >= 455 && playTake.getX() >= 195 && playTake.getX() <= 309){
will = true;
}
}
//向右吃
else if (playTake.getX() - play.getX() >= 2 && playTake.getX() - play.getX() <= 57 && playTake.getY() - play.getY() <= 27 && playTake.getY() - play.getY() >= -27 && playTake.isVisible()){
//被吃的棋子是否和当前将相近
if (Man == 30 && playTake.getX() >= 195 && playTake.getX() <= 309 && playTake.getY() <= 170){
will = true;
}
//被吃的棋子是否和当前帅相近
else if (Man == 31 && playTake.getY() >= 455 && playTake.getX() >= 195 && playTake.getX() <= 309){
will = true;
}
}
//向下
else if (playTake.getX() - play.getX() >= 0 && playTake.getX() - play.getX() <= 87 && playTake.getY() - play.getY() <= 27 && playTake.getY() - play.getY() >= 40 && playTake.isVisible()){
//被吃的棋子是否和当前将相近
if (Man == 30 && playTake.getX() >= 195 && playTake.getX() <= 309 && playTake.getY() <= 170){
will = true;
}
//被吃的棋子是否和当前帅相近
else if (Man == 31 && playTake.getY() >= 455 && playTake.getX() >= 195 && playTake.getX() <= 309){
will = true;
}
}
//不能吃自己的棋子、符合当前要求
if (playTake.getName().charAt(1) != play.getName().charAt(1) && will){
//当前记录添加到集合(用于悔棋)
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(),55,55);
}
}//将、帅吃规则结束
}//规则类
}//主框架类