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

📄 man.java

📁 一款JAVA款的跳棋
💻 JAVA
字号:
package org.yushang.jumpchess.pkg;

import org.yushang.jumpchess.audio.WavePlayer;
import org.yushang.jumpchess.pub.BoardArea;
import org.yushang.jumpchess.pub.Color;
import org.yushang.jumpchess.pub.Map;
import org.yushang.jumpchess.pub.Position;

public class Man extends Player {	
	
	private Chess Selected = null;
	private Position[] CanGo = null;
	private WavePlayer wavePlayer = null;

	public Man(ChessBoard chessboard, String name, Color color, BoardArea area) {
		super(chessboard, name, color, area);
		wavePlayer = new WavePlayer();
	}
	
	private void SelectChess(Position position) {		
		Chess chess = chessboard.getChess(position);
		if (chess == null) {
			return;
		}
		if (chess.GetColor() != this.GetColor()) {
			return;
		}
		
		Selected = chess;
		GoChess = chess;
		Map map = chessboard.CanGo(chess); 
		CanGo = new Position[map.size() - 1];
		for (int i = 0; i < map.size() - 1; i++) {
			CanGo[i] = (Position) map.get(i + 1).data;
		}
		wavePlayer.Play(WavePlayer.WAVEUP);
	}
	
	private boolean GoChess(Position position) {
		if (!IsCanGo(position)) {
			return false;
		}
		path = CreatePath(GoChess, position);
		
		Go(Selected, position);		
		Selected = null;
		CanGo = null;
		return true;
	}
	
	private void CancelSelect() {
		if(Selected != null) {
			wavePlayer.Play(WavePlayer.WAVEDROP);
		}
		
		CanGo = null;
		Selected = null;
		GoChess = null;		
	}
	
	public boolean Run(int Mouse, Position postioin) {
		if (Mouse == MouseNull) {
			GoChess = null;
			return false;
		}
		
		if (Mouse == MouseClick) {
			if (Selected == null) {
				SelectChess(postioin);
			} else {
				return GoChess(postioin);		
			}
		} else if (Mouse == MouseRight) {
				CancelSelect();
			}		

		return false;		
	}
	
	public Position[] getCanGo() {
		return CanGo;
	}
	
	public Chess getSelected() {
		return Selected;
	}
	
	private boolean IsCanGo(Position position) {
		boolean re = false;
		
		if (CanGo != null) {		
			for (int i = 0; i < CanGo.length; i++) {
				if (CanGo[i].equals(position)) {
					re = true;
					break;
				}
			}
		}
		
		return re;		
	}

}

⌨️ 快捷键说明

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