?? chess.java
字號:
if (i - me.getX() >= -35 && i-me.getX() <= 10)
{
Ex = i;
break;
}
}
//左上方是否有棋子
for (int i=0;i<32;i++)
{
if (playQ[i].isVisible() && play.getX() - playQ[i].getX() >= 10 && play.getX() - playQ[i].getX() <= 50 && play.getY() - playQ[i].getY() >= 40 && play.getY() - playQ[i].getY() <= 60)
{
Move++;
break;
}
}
//紅旗不能過楚河
if (Move == 0 && Ey > 230 && 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-20,Ey-15,40,40);
}
//黑旗不能過漢界
else if (Move == 0 && Ey < 270 && 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-20,Ey-15,40,40);
}
}//if
//上右
else if (play.getY() - me.getY() <= 100 && play.getY() - me.getY() >= 70 && me.getX() - play.getX() >= 100 && me.getX() - play.getX() <= 140)
{
//合法的Y坐標
for (int i=30;i<=462;i+=48)
{
if (i - me.getY() >= -10 && i - me.getY() <= 30)
{
Ey = i;
break;
}
}
//合法的X坐標
for (int i=30;i<=420;i+=48)
{
if (i - me.getX() >= -35 && i-me.getX() <= 10)
{
Ex = i;
break;
}
}
//右上方是否有棋子
for (int i=0;i<32;i++)
{
if (playQ[i].isVisible() && playQ[i].getX() - play.getX() >= 40 && playQ[i].getX() - play.getX() <= 90 && play.getY() - playQ[i].getY() >= 40 && play.getY() - playQ[i].getY() <= 60)
{
Move++;
break;
}
}
//相、象規則
if (Move == 0 && Ey > 230 && 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-20,Ey-15,40,40);
}
else if (Move == 0 && Ey < 270 && 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-20,Ey-15,40,40);
}
}// else if
//下左
else if (play.getX() - me.getX() <= 100 && play.getX() - me.getX() >= 60 && me.getY() - play.getY() <= 130 && me.getY() - play.getY() >= 100)
{
//合法的Y坐標
for (int i=30;i<=462;i+=48)
{
if (i - me.getY() >= -10 && i - me.getY() <= 30)
{
Ey = i;
break;
}
}
//合法的X坐標
for (int i=30;i<=420;i+=48)
{
if (i - me.getX() >= -35 && i-me.getX() <= 10)
{
Ex = i;
break;
}
}
//下左方是否有棋子
for (int i=0;i<32;i++)
{
if (playQ[i].isVisible() && play.getX() - playQ[i].getX() >= 10 && play.getX() - playQ[i].getX() <= 60 && play.getY() - playQ[i].getY() <= -40 && play.getY() - playQ[i].getY() >= -60)
{
Move++;
break;
}
}
//相、象規則
if (Move == 0 && Ey > 230 && 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-20,Ey-15,40,40);
}
else if (Move == 0 && Ey < 270 && 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-20,Ey-15,40,40);
}
}//else if
//下右
else if (me.getX() - play.getX() >= 100 && me.getX() - play.getX() <= 130 && me.getY() - play.getY() >= 100 && me.getY() - play.getY() <= 130)
{
//Y
for (int i=30;i<=462;i+=48)
{
if (i - me.getY() >= -10 && i - me.getY() <= 30)
{
Ey = i;
}
}
//X
for (int i=30;i<=420;i+=48)
{
if (i - me.getX() >= -35 && i-me.getX() <= 10)
{
Ex = i;
}
}
//下右方是否有棋子
for (int i=0;i<32;i++)
{
if (playQ[i].isVisible() && playQ[i].getX() - play.getX() >= 50 && playQ[i].getX() - play.getX() <= 80 && playQ[i].getY() - play.getY() >= 40 && playQ[i].getY() - play.getY() <= 60)
{
Move = 1;
break;
}
}
//相、象規則
if (Move == 0 && Ey > 230 && 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-20,Ey-15,40,40);
}
else if (Move == 0 && Ey < 270 && 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-20,Ey-15,40,40);
}
}//else
}//相移動規則吉束
/*相、象吃棋規則***************************************************/
public void elephantRule(JLabel play,JLabel playTake,JLabel playQ[])
{
//障礙
int Move=0;
boolean Chess=false;
//吃左上方的棋子
if (play.getX() - playTake.getX() >= 80 && play.getX() - playTake.getX() <= 100 && play.getY() - playTake.getY() >= 80 && play.getY() - playTake.getY() <= 110)
{
//左上方是否有棋子
for (int i=0;i<32;i++)
{
if (playQ[i].isVisible() && play.getX() - playQ[i].getX() >= 10 && play.getX() - playQ[i].getX() <= 50 && play.getY() - playQ[i].getY() >= 40 && play.getY() - playQ[i].getY() <= 60)
{
Move++;
break;
}
}//for
Chess=true;
}//if
//吃右上方的棋子
else if (playTake.getX() - play.getX() >= 110 && playTake.getX() - play.getX() <= 80 && play.getY() - playTake.getY() >= 80 && play.getY() - playTake.getY() <= 110 )
{
//右上方是否有棋子
for (int i=0;i<32;i++)
{
if (playQ[i].isVisible() && playQ[i].getX() - play.getX() >= 40 && playQ[i].getX() - play.getX() <= 90 && play.getY() - playQ[i].getY() >= 40 && play.getY() - playQ[i].getY() <= 60)
{
Move++;
break;
}
}//for
Chess=true;
}//else
//吃下左方的棋子
else if (play.getX() - playTake.getX() >= 80 && play.getX() - playTake.getX() <= 110 && playTake.getY() - play.getY() >= 80 && playTake.getY() - play.getY() <= 110)
{
//下左方是否有棋子
for (int i=0;i<32;i++)
{
if (playQ[i].isVisible() && play.getX() - playQ[i].getX() >= 10 && play.getX() - playQ[i].getX() <= 60 && play.getY() - playQ[i].getY() <= -40 && play.getY() - playQ[i].getY() >= -60)
{
Move++;
break;
}
}//for
Chess=true;
}//else
//吃下右放的棋子
else if (playTake.getX() - play.getX() >= 80 && playTake.getX() - play.getX() <= 110 && playTake.getY() - play.getY() >= 80 && playTake.getY() - play.getY() <= 110)
{
//下右方是否有棋子
for (int i=0;i<32;i++)
{
if (playQ[i].isVisible() && playQ[i].getX() - play.getX() >= 50 && playQ[i].getX() - play.getX() <= 80 && playQ[i].getY() - play.getY() >= 40 && playQ[i].getY() - play.getY() <= 60)
{
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(),40,40);
}
}//相、象吃棋規則結束
/*士、仕移動方法*******************************************************/
public void chapRule(int Man,JLabel play,JLabel playQ[],MouseEvent me)
{
//上、右
if (me.getX() - play.getX() >= 50 && me.getX() - play.getX() <= 80 && play.getY() - me.getY() >= 15 && play.getY() - me.getY() <= 50)
{
//士不能超過自己的界限
if (Man < 14 && me.getX() > 150 && me.getX() < 300 && me.getY() < 150)
{
//當前記錄添加到集合(用于悔棋)
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()+50,play.getY()-50,40,40);
}
//仕不能超過自己的界限
else if (Man > 13 && me.getY() > 340 && me.getX() > 150 && me.getX() < 300)
{
//當前記錄添加到集合(用于悔棋)
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()+50,play.getY()-50,40,40);
}
}// else if
//上、左
else if (play.getX() - me.getX() <= 50 && play.getX() - me.getX() >= 13 && play.getY() - me.getY() >= 15 && play.getY() - me.getY() <= 50)
{
//士、仕規則
if (Man < 14 && me.getX() > 150 && me.getX() < 300 && me.getY() < 150)
{
//當前記錄添加到集合(用于悔棋)
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()-50,play.getY()-50,40,40);
}
else if (Man > 13 && me.getY() > 340 && me.getX() > 150 && me.getX() < 300)
{
//當前記錄添加到集合(用于悔棋)
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()-50,play.getY()-50,40,40);
}
}// else if
//下、左
else if (play.getX() - me.getX() <= 50 && play.getX() - me.getX() >= 15 && me.getY() - play.getY() >= 50 && me.getY() - play.getY() <= 80)
{
//士、仕規則
if (Man < 14 && me.getX() > 150 && me.getX() < 300 && me.getY() < 150)
{
//當前記錄添加到集合(用于悔棋)
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()-50,play.getY()+50,40,40);
}
else if (Man > 13 && me.getY() > 340 && me.getX() > 150 && me.getX() < 300)
{
//當前記錄添加到集合(用于悔棋)
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()-50,play.getY()+50,40,40);
}
}// else if
//下、右
else if (me.getX() - play.getX() >= 50 && me.getX() - play.getX() <= 80 && me.getY() - play.getY() >= 50 && me.getY() - play.getY() <= 80)
{
//士、仕規則
if (Man < 14 && me.getX() > 150 && me.getX() < 300 && me.getY() < 150)
{
//當前記錄添加到集合(用于悔棋)
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()+50,play.getY()+50,40,40);
}
else if (Man > 13 && me.getY() > 340 && me.getX() > 150 && me.getX() < 300)
{
//當前記錄添加到集合(用于悔棋)
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()+50,play.getY()+50,40,40);
}
}//else if
}//士、仕移動規則結束
/*士、仕吃棋規則*********************************************************/
public void chapRule(int Man ,JLabel play,JLabel playTake,JLabel playQ[])
{
//當前狀態
boolean Chap = false;
//上、右
if (playTake.getX() - play.getX() >= 30 && playTake.getX() - play.getX() <= 60 && play.getY() - playTake.getY() >= 30 && play.getY() - playTake.getY() <= 60)
{
//被吃的棋子是否和當前士相近
if (Man < 14 && playTake.getX() > 150 && playTake.getX() < 300 && playTake.getY() < 150 && playTake.isVisible())
{
Chap = true;
}
//被吃的棋子是否和當前仕相近
else if (Man > 13 && playTake.getX() > 150 && playTake.getX() < 300 && playTake.getY() > 340 && playTake.isVisible())
{
Chap = true;
}
}//if
//上、左
else if (play.getX() - playTake.getX() <= 60 && play.getX() - playTake.getX() >= 30 && play.getY() - playTake.getY() >= 30 && play.getY() - playTake.getY() <= 60)
{
//被吃的棋子是否和當前士相近
if (Man < 14 && playTake.getX() > 150 && playTake.getX() < 300 && playTake.getY() < 150 && playTake.isVisible())
{
Chap = true;
}
//被吃的棋子是否和當前仕相近
else if (Man > 13 && playTake.getX() > 150 && playTake.getX() < 300 && playTake.getY() > 340 && playTake.isVisible())
{
Chap = true;
}
}// else if
//下、左
else if (play.getX() - playTake.getX() <= 60 && play.getX() - playTake.getX() >= 30 && playTake.getY() - play.getY() >= 30 && playTake.getY() - play.getY
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -