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

📄 ma.java

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

import java.util.HashSet;
import java.util.Set;

import com.catking.Utility.Bool;
import com.catking.Utility.Position;


public class Ma extends Chess{

	
	public Ma(int color) {
		super(color);
		// TODO Auto-generated constructor stub
		
		this.name = '馬';
	}

	@Override
	public void go() {
		// TODO Auto-generated method stub
		System.out.print("马");
	}

	@Override
	public Set<Position> availableSteps() {
		// TODO Auto-generated method stub
		Set<Position> set = new HashSet<Position>();
		//八面马,注意绊马脚
		//left
			//左上
		if(	y >= 2 && x >= 1 
			&& ChessPane.chesses[x-1][y-2].color != color
			&& ChessPane.chesses[x][y-1].color == KONG ) {			//不能绊马脚
			
			set.add(new Position(x-1, y-2));
		}
			//左下
		if( y >= 2 && x <= ChessPane.ROWS - 2
			&& ChessPane.chesses[x+1][y-2].color != color
			&& ChessPane.chesses[x][y-1].color == KONG){
			
			set.add(new Position(x+1, y-2));
		}
		//right
			//右上
		if( y <= ChessPane.COLS - 3  && x >= 1
			&& ChessPane.chesses[x-1][y+2].color != color
			&& ChessPane.chesses[x][y+1].color == KONG){
			
			set.add(new Position(x-1, y+2));
		}
			//右下
		if( y <= ChessPane.COLS - 3  && x <= ChessPane.ROWS-2
			&& ChessPane.chesses[x+1][y+2].color != color
			&& ChessPane.chesses[x][y+1].color == KONG){
				
			set.add(new Position(x+1, y+2));
		}
		//up
			//上左
		if( y >= 1  && x >= 2
			&& ChessPane.chesses[x-2][y-1].color != color
			&& ChessPane.chesses[x-1][y].color == KONG){
			
			set.add(new Position(x-2, y-1));
		}
			//上右
		if( y <= ChessPane.COLS - 2 && x >= 2
			&& ChessPane.chesses[x-2][y+1].color != color
			&& ChessPane.chesses[x-1][y].color == KONG){
				
			set.add(new Position(x-2, y+1));
		}
		//down
			//下左
		if( y >= 1   && x <= ChessPane.ROWS - 3
			&& ChessPane.chesses[x+2][y-1].color != color
			&& ChessPane.chesses[x+1][y].color == KONG){
			
			set.add(new Position(x+2, y-1));
		}
			//下右
		if( y <= ChessPane.COLS - 2  && x <= ChessPane.ROWS - 3
			&& ChessPane.chesses[x+2][y+1].color != color
			&& ChessPane.chesses[x+1][y].color == KONG){
				
			set.add(new Position(x+2, y+1));
		}

		//System.out.println("有"+set.size()+"条道路");
		return set;
	}

}

⌨️ 快捷键说明

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