📄 bing.java
字号:
package com.catking.chess;
import java.util.HashSet;
import java.util.Set;
import com.catking.Utility.*;
public class Bing extends Chess{
private boolean isOverRiver = false;
public Bing(int color){
super(color);
this.name = (color == ATTACK_UP )?'兵':'卒';
}
@Override
public void go() {
// TODO Auto-generated method stub
System.out.print((color == ATTACK_UP )?"兵":"卒");
}
@Override
public Set<Position> availableSteps() {
// TODO Auto-generated method stub
Set<Position> set = new HashSet<Position>();
//兵过河了
if(isOverRiver){
if(y !=0 && ChessPane.chesses[x][y-1].color != color) //向左
set.add(new Position(x, y-1));
if(y != ChessPane.COLS-1 && ChessPane.chesses[x][y+1].color != color) //向右
set.add(new Position(x, y+1));
}
//ATTACK UP
if(color == ATTACK_UP){
if(x !=0 && ChessPane.chesses[x-1][y].color != color){ //前进
set.add(new Position(x-1, y));
}
}
//ATTACK DOWN
else if(x !=ChessPane.ROWS-1 && ChessPane.chesses[x+1][y].color != color){ //前进
set.add(new Position(x+1, y));
}
//System.out.println("有"+set.size()+"条道路");
return set;
}
public int setPos(int x, int y, boolean alternative){
//修改有未过河
//ATTACK UP
if(color == ATTACK_UP)
isOverRiver = x < ChessPane.ATTACK_UP_BANK;
//ATTACK DOWN
else{
isOverRiver = x > ChessPane.ATTACK_DOWN_BANK;
}
//System.out.println(isOverRiver?"我已经过河了":"我还没有过河");
return super.setPos(x, y, alternative);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -