毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

java中国象棋 第3页

更新时间:2008-12-11:  来源:毕业论文

java中国象棋 第3页源代码
      Ex = i;
     }
    }
    
    //正左方是否有别的棋子
    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;
     }
    }
    
    if (Move == 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(Ex,Ey,55,55);
    }
    
   }//else
   
  }//马移动结束

  /**马吃棋规则*/
  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);
   }   
   
  }//将、帅吃规则结束
  
 }//规则类
 
}//主框架类

上一页  [1] [2] [3] 

java中国象棋 第3页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。