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

📄 xiang.java

📁 SWT实现人人的象棋程序 供学习SWT的同志做个参考
💻 JAVA
字号:
package com.catking.chess;

import java.util.*;

import com.catking.Utility.Position;


public class Xiang extends Chess{

	public Xiang(int color) {
		super(color);
		// TODO Auto-generated constructor stub
		
		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(x-2))
			;
		//能过河
		else if(x >= 2 && y >= 2
				&& ChessPane.chesses[x-2][y-2].color != color
				&& ChessPane.chesses[x-1][y-1].color == KONG ){
			
			set.add(new Position(x-2, y-2));
		}
		//左下
		if(isOverRiver(x+2))
			;
		else if(x <= ChessPane.ROWS-3 && y >= 2
				   && ChessPane.chesses[x+2][y-2].color != color
				   && ChessPane.chesses[x+1][y-1].color == KONG ){
				
			set.add(new Position(x+2, y-2));
		}
		//右上
		if(isOverRiver(x-2))
			;
		else if(x >= 2 && y <= ChessPane.COLS-3
				   && ChessPane.chesses[x-2][y+2].color != color
				   && ChessPane.chesses[x-1][y+1].color == KONG ){
				
			set.add(new Position(x-2, y+2));
		}
		//右下
		if(isOverRiver(x+2))
			;
		else if(x <= ChessPane.ROWS-3 && y <= ChessPane.COLS-3
				   && ChessPane.chesses[x+2][y+2].color != color
				   && ChessPane.chesses[x+1][y+1].color == KONG ){
			
			set.add(new Position(x+2, y+2));
		}
		
		System.out.println("有"+set.size()+"条道路");
		return set;
	}
	private boolean isOverRiver(int x){
		boolean isOver =  (color == ChessPane.ATTACK_UP  && x < ChessPane.ATTACK_UP_BANK)
				||(color == ChessPane.ATTACK_DOWN && x > ChessPane.ATTACK_DOWN_BANK);
		
		return isOver;
	}
	//覆盖父类
	public boolean isJiangJun(){
		//相不能将军
		return false;
	}


	

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -