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

2020-04-14 01:54

}

//悔棋按钮 else if (back()){

//删除用过的坐标 Var.remove(Var.size()-4); Var.remove(Var.size()-3); Var.remove(Var.size()-2); Var.remove(Var.size()-1);

//停止旗子闪烁

chessManClick=false;

catch(Exception e){

}}

public void back(){ try{ //获得setVisible属性值

String S = (String)Var.get(Var.size()-4); //获得X坐标

int x = Integer.parseInt((String)Var.get(Var.size()-3)); //获得Y坐标

int y = Integer.parseInt((String)Var.get(Var.size()-2)); //获得索引

int M = Integer.parseInt((String)Var.get(Var.size()-1)); //赋给棋子

play[M].setVisible(true);

play[M].setBounds(x,y,55,55);

41

if (play[M].getName().charAt(1) == '1'){ text.setText(\ 黑棋走棋\ chessPlayClick = 1;

} else{ text.setText(\ 红棋走棋\ chessPlayClick = 2;

}

}

//退出

else if (exit()){}

public void exit(){ int j=JOptionPane.showConfirmDialog(

this,\真的要退出吗?\退出\

JOptionPane.YES_OPTION,JOptionPane.QUESTION_MESSAGE);

if (j == JOptionPane.YES_OPTION){ System.exit(0);

}

}

/*定义中国象棋规则的类*/ class ChessRule { /**卒子的移动规则*/

public void armsRule(int Man,JLabel play,MouseEvent me){ //黑卒向下

if (Man < 21){

42

//向下移动、得到终点的坐标模糊成合法的坐标

if ((me.getY()-play.getY()) > 27 && (me.getY()-play.getY()) < 86

&& (me.getX()-play.getX()) < 55 && (me.getX()-play.getX()) > 0){

else if (play.getY() > 284 && (me.getX() - play.getX()) >= 57 && }

//向右移动、得到终点的坐标模糊成合法的坐标、必须过河

//当前记录添加到集合(用于悔棋) 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);

(me.getX() - play.getX()) <= 112){

}

//向左移动、得到终点的坐标模糊成合法的坐标、必须过河 else if (play.getY() > 284 && (play.getX() - me.getX()) >= 2 &&

play.setBounds(play.getX()+57,play.getY(),55,55);

(play.getX() - me.getX()) <=58){

}

}

//模糊坐标

play.setBounds(play.getX()-57,play.getY(),55,55);

//红卒向上 else{

43

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

//向上移动、得到终点的坐标模糊成合法的坐标

if ((me.getX()-play.getX()) >= 0 && (me.getX()-play.getX()) <= 55

&& (play.getY()-me.getY()) >27 && play.getY()-me.getY() < 86){

}

//向右移动、得到终点的坐标模糊成合法的坐标、必须过河 else if (play.getY() <= 341 && (me.getX() - play.getX()) >= 57 &&

play.setBounds(play.getX(),play.getY()-57,55,55);

(me.getX() - play.getX()) <= 112){

}

//向左移动、得到终点的坐标模糊成合法的坐标、必须过河 else if (play.getY() <= 341 && (play.getX() - me.getX()) >= 3 &&

play.setBounds(play.getX()+57,play.getY(),55,55);

(play.getX() - me.getX()) <=58){

}

}

play.setBounds(play.getX()-57,play.getY(),55,55);

}//卒移动结束

/**卒吃棋规则*/

public void armsRule(JLabel play1,JLabel play2){

//向右走

if ((play2.getX() - play1.getX()) <= 112 && (play2.getX() -

44

play1.getX()) >= 57 && (play1.getY() - play2.getY()) < 22 && (play1.getY() - play2.getY())

>

-22

&&

play2.isVisible()

&&

play1.getName().charAt(1)!=play2.getName().charAt(1)){

//黑棋要过河才能右吃棋

if (play1.getName().charAt(1) == '1' && play1.getY() > 284 &&

play1.getName().charAt(1) != play2.getName().charAt(1)){

}

//红棋要过河才左能吃棋

else if (play1.getName().charAt(1) == '2' && play1.getY() < 341

play2.setVisible(false); //把对方的位置给自己

play1.setBounds(play2.getX(),play2.getY(),55,55);

&& play1.getName().charAt(1) != play2.getName().charAt(1)){

} //向左走

else if ((play1.getX() - play2.getX()) <= 112 && (play1.getX() -

}

play2.setVisible(false); //把对方的位置给自己

play1.setBounds(play2.getX(),play2.getY(),55,55);

play2.getX()) >= 57 && (play1.getY() - play2.getY()) < 22 && (play1.getY() - play2.getY())

>

-22

&&

play2.isVisible()

&&

play1.getName().charAt(1)!=play2.getName().charAt(1)){

//黑棋要过河才能左吃棋

if (play1.getName().charAt(1) == '1' && play1.getY() > 284 &&

play1.getName().charAt(1) != play2.getName().charAt(1)){

45


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

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

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

马上注册会员

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