A B C D E F G H
8 Br Bn Bb Bq Bk Bb Bn Br
7 Bp Bp Bp Bp Bp Bp Bp Bp
6
5
4
3
2 Wp Wp Wp Wp Wp Wp Wp Wp
1 Wr Wp Wb Wq Wk Wb Wn Wr
2. implementation
// 0. GameManager : Game run public class GameManager { void processTurn(PlayerBase player){}; boolean acceptTurn(ChessPieceTurn turn){ return true}; Position currentPosition; } public class chessPieceTurn{}; // 1. PlayerBase public abstract class PlayerBase { public abstract ChessPieceTurn getTurn(Position p); } class ComputerPlayer extends PlayerBase { public ChessPieceTurn getTurn(Position p){return null;} public setDifficulty(){}; public PositionEstimator estimator; public PositionBackTracker backtracker; } public class HumanPalyer extends PlayerBase { public chessPieceTurn getTurn (Position p){return null;} } // 2. ChessPieceBase public abstract class chessPieceBase { abstract boolean canBeChecked(); abstract boolean isSupportCastle(); } public class King extends ChessPieceBase{...} public class Queen extends ChessPieceBase{...} // 3. Represent chess position in compact form public class Position { ArrayList3. Similar Onesblack; ArrayList white; } public class PositionBackTracker { public static Position getNext(Position p){return null;} } // PositionPotentialValue public abstract class PositionPotentialValue { abstract boolean lessThan(PositionPotentialValue pv); } public class PositionEstimator { public static PositionPotentialValue estimate(Position p){...} }
http://rangerway.com/way/object-oriented-chess-game/#tfbml-data%7B%22close_iframe%22%3Atrue%2C%22location_url%22%3A%22http%3A%2F%2Frangerway.com%2Fway%2Fobject-oriented-chess-game%2F%22%7D
No comments:
Post a Comment