中国象棋人人对战 - 图文(5)

2020-04-14 01:54

}

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


中国象棋人人对战 - 图文(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:生病的25种英语说法

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: