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
{
ArrayList black;
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){...}
}
3. Similar Oneshttp://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