⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bing.java

📁 SWT实现人人的象棋程序 供学习SWT的同志做个参考
💻 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 + -