}
play2.setVisible(false); //把对方的位置给自己
play1.setBounds(play2.getX(),play2.getY(),55,55);
//红棋要过河才能右吃棋
else if (play1.getName().charAt(1) == '2' && play1.getY() < 341
&& play1.getName().charAt(1) != play2.getName().charAt(1)){
} //向上走
else if (play1.getX() - play2.getX() >= -22 && play1.getX() -
}
play2.setVisible(false); //把对方的位置给自己
play1.setBounds(play2.getX(),play2.getY(),55,55);
play2.getX() <= 22 && play1.getY() - play2.getY() >= -112 && play1.getY() - play2.getY() <= 112){
//黑棋不能向上吃棋
if (play1.getName().charAt(1) == '1' && play1.getY() < play2.getY()
&& play1.getName().charAt(1) != play2.getName().charAt(1)){
}
//红棋不能向下吃棋
else if (play1.getName().charAt(1) == '2' && play1.getY() >
play2.setVisible(false); //把对方的位置给自己
play1.setBounds(play2.getX(),play2.getY(),55,55);
play2.getY() && play1.getName().charAt(1) != play2.getName().charAt(1)){
46
}
}
play2.setVisible(false); //把对方的位置给自己
play1.setBounds(play2.getX(),play2.getY(),55,55);
//当前记录添加到集合(用于悔棋) Var.add(String.valueOf(play1.isVisible())); Var.add(String.valueOf(play1.getX())); Var.add(String.valueOf(play1.getY())); Var.add(String.valueOf(Man));
//当前记录添加到集合(用于悔棋) Var.add(String.valueOf(play2.isVisible())); Var.add(String.valueOf(play2.getX())); Var.add(String.valueOf(play2.getY())); Var.add(String.valueOf(i));
}//卒吃结束
/**炮、车移动规则*/
public void cannonRule(JLabel play,JLabel playQ[],MouseEvent me){
//起点和终点之间是否有棋子 int Count = 0;
//上、下移动
if (play.getX() - me.getX() <= 0 && play.getX() - me.getX() >= -55){
//指定所有模糊Y坐标 for (int i=56;i<=571;i+=57){
47
//移动的Y坐标是否有指定坐标相近的 if (i - me.getY() >= -27 && i - me.getY() <= 27){
//所有的棋子 for (int j=0;j<32;j++){
//找出在同一条竖线的所有棋子、并不包括自己 if (playQ[j].getX() - play.getX() >= -27 &&
playQ[j].getX() - play.getX() <= 27 && playQ[j].getName()!=play.getName() && playQ[j].isVisible()){
//从起点到终点(从左到右)
for (int k=play.getY()+57;k
//大于起点、小于终点的坐标就可以知道中
间是否有棋子
if (playQ[j].getY() < i && playQ[j].getY() >
play.getY()){
//中间有一个棋子就不可以从这条竖线
过去
}
Count++; break;
}//for
//从起点到终点(从右到左)
for (int k=i+57;k //找起点和终点的棋子 if (playQ[j].getY() < play.getY() && playQ[j].getY() > i){ } Count++; break; }//for 48 }//if }//for //起点和终点没有棋子就可以移动了 if (Count == 0){ } //当前记录添加到集合(用于悔棋) 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(),i,55,55); break; }//if }//for }//if //左、右移动 else if (play.getY() - me.getY() >=-27 && play.getY() - me.getY() <= 27){ //指定所有模糊X坐标 for (int i=24;i<=480;i+=57){ //移动的X坐标是否有指定坐标相近的 if (i - me.getX() >= -55 && i-me.getX() <= 0){ //所有的棋子 for (int j=0;j<32;j++){ //找出在同一条横线的所有棋子、并不包括自己 if (playQ[j].getY() - play.getY() >= -27 && playQ[j].getY() - play.getY() <= 27 && playQ[j].getName()!=play.getName() && playQ[j].isVisible()){ 49 //从起点到终点(从上到下) 间是否有棋子 play.getX()){ 过去 playQ[j].getX() > i){ for (int k=play.getX()+57;k //大于起点、小于终点的坐标就可以知道中 if (playQ[j].getX() < i && playQ[j].getX() > //中间有一个棋子就不可以从这条横线 Count++; break; } }//for //从起点到终点(从下到上) for (int k=i+57;k if (playQ[j].getX() < play.getX() && Count++; break; } }//for }//if }//for //起点和终点没有棋子 if (Count == 0){ //当前记录添加到集合(用于悔棋) Var.add(String.valueOf(play.isVisible())); Var.add(String.valueOf(play.getX())); 50