//红棋要过河才左能吃棋
else if (play1.getName().charAt(1) == '2' && play1.getY() <= 210 && play1.getName().charAt(1) != play2.getName().charAt(1))
{
play2.setVisible(false);
//把对方的位置给自己
play1.setBounds(play2.getX(),play2.getY(),40,40);
}
}
//向左走
else if ((play1.getX() - play2.getX()) <= 60 && (play1.getX() - play2.getX()) >= 40 && (play1.getY() - play2.getY()) < 10 && (play1.getY() - play2.getY()) > -10 && play2.isVisible() && play1.getName().charAt(1)!=play2.getName().charAt(1))
{
//黑棋要过河才能左吃棋
if (play1.getName().charAt(1) == '1' && play1.getY() >= 250 && play1.getName().charAt(1) != play2.getName().charAt(1))
{
play2.setVisible(false);
//把对方的位置给自己
play1.setBounds(play2.getX(),play2.getY(),40,40);
}
//红棋要过河才能右吃棋
else if (play1.getName().charAt(1) == '2' && play1.getY() <= 210 && play1.getName().charAt(1) != play2.getName().charAt(1))
{
play2.setVisible(false);
//把对方的位置给自己
play1.setBounds(play2.getX(),play2.getY(),40,40);
}
}
//向上走
else if (play1.getX() - play2.getX() >= -10 && play1.getX() - play2.getX() <= 10 && play1.getY() - play2.getY() >= -70 && play1.getY() - play2.getY() <= 70)
{
//黑棋不能向上吃棋
if (play1.getName().charAt(1) == '1' && play1.getY() < play2.getY() && play1.getName().charAt(1) != play2.getName().charAt(1))
{
play2.setVisible(false);
//把对方的位置给自己
play1.setBounds(play2.getX(),play2.getY(),40,40);
}
//红棋不能向下吃棋
else if (play1.getName().charAt(1) == '2' && play1.getY() > play2.getY() && play1.getName().charAt(1) != play2.getName().charAt(1))
{
play2.setVisible(false);
//把对方的位置给自己
play1.setBounds(play2.getX(),play2.getY(),40,40);
}
}
//当前记录添加到集合(用于悔棋)
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() <= 10 && play.getX() - me.getX() >= -30)
{
//指定所有模糊Y坐标
for (int i=30;i<=462;i+=48)
{
//移动的Y坐标是否有指定坐标相近的
if (i - me.getY() >= -10 && i - me.getY() <= 30)
{
//所有的棋子
for (int j=0;j<32;j++)
{
//找出在同一条竖线的所有棋子、并不包括自己
if (playQ[j].getX() - play.getX() >= -10 && playQ[j].getX() - play.getX() <= 10 && playQ[j].getName()!=play.getName() && playQ[j].isVisible())
{
//从起点到终点(从左到右)
for (int k=play.getY()+50;k
{
//大于起点、小于终点的坐标就可以知道中间是否有棋子
if (playQ[j].getY() < i && playQ[j].getY() > play.getY())
{
//中间有一个棋子就不可以从这条竖线过去
Count++;
break;
}
}//for
//从起点到终点(从右到左)
for (int k=i+50;k {
//找起点和终点的棋子
if (playQ[j].getY() < play.getY() && playQ[j].getY() > i)
{
Count++;
break;
}
}//for
}//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-17,40,40);
break;
}
}//if
}//for
}//if
//左、右移动
else if (play.getY() - me.getY() >=-35 && play.getY() - me.getY() <= 10)
{
//指定所有模糊X坐标
for (int i=30;i<=420;i+=48)
{
//移动的X坐标是否有指定坐标相近的
if (i - me.getX() >= -35 && i-me.getX() <= 10)
{
//所有的棋子
for (int j=0;j<32;j++)
{
//找出在同一条横线的所有棋子、并不包括自己
if (playQ[j].getY() - play.getY() >= -10 && playQ[j].getY() - play.getY() <= 10 && playQ[j].getName()!=play.getName() && playQ[j].isVisible())
{
//从起点到终点(从上到下)
for (int k=play.getX()+50;k {
//大于起点、小于终点的坐标就可以知道中间是否有棋子
if (playQ[j].getX() < i && playQ[j].getX() > play.getX())
{
//中间有一个棋子就不可以从这条横线过去
Count++;
break;
}
}//for
//从起点到终点(从下到上)
for (int k=i+50;k {
//找起点和终点的棋子
if (playQ[j].getX() < play.getX() && playQ[j].getX() > i)
{
Count++;
break;
}
}//for
}//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(i-20,play.getY(),40,40);
break;
}
}//if
}//for
}//else
}//炮、车移动方法结束
/*炮、车吃棋规则**************************************************************************/
public void cannonRule(int Chess,JLabel play,JLabel playTake,JLabel playQ[],MouseEvent me)
{
//起点和终点之间是否有棋子
int Count = 0;
//所有的棋子
for (int j=0;j<32;j++)
{
//找出在同一条竖线的所有棋子、并不包括自己
if (playQ[j].getX() - play.getX() >= -10 && playQ[j].getX() - play.getX() <= 10 && playQ[j].getName()!=play.getName() && playQ[j].isVisible())
{
//自己是起点被吃的是终点(从上到下)
for (int k=play.getY()+50;k {
//大于起点、小于终点的坐标就可以知道中间是否有棋子
if (playQ[j].getY() < playTake.getY() && playQ[j].getY() > play.getY())
{
//计算起点和终点的棋子个数
Count++;
break;
}
}//for
//自己是起点被吃的是终点(从下到上)
for (int k=playTake.getY();k {
//找起点和终点的棋子
if (playQ[j].getY() < play.getY() && playQ[j].getY() > playTake.getY())
{
Count++;
break;
}
}//for
}//if
//找出在同一条竖线的所有棋子、并不包括自己
else if (playQ[j].getY() - play.getY() >= -10 && playQ[j].getY() - play.getY() <= 10 && playQ[j].getName()!=play.getName() && playQ[j].isVisible())
{
//自己是起点被吃的是终点(从左到右)
for (int k=play.getX()+50;k {
//大于起点、小于终点的坐标就可以知道中间是否有棋子
if (playQ[j].getX() < playTake.getX() && playQ[j].getX() > play.getX())
{
Count++;
break;
}
}//for
//自己是起点被吃的是终点(从
上一篇:个人德能勤绩廉工作总结
下一篇:近三年来思想工作小结(德能勤绩廉)