@Override
    public List<Move> getMoves(ChessBoard board) {
        Position tem;
        Coin c;
        LinkedList<Move> p = new LinkedList<Move>();
        for (int i = 0; i < 8; i++) {
            tem = Position.getPosition(getRank() + x[i], getFile() + y[i]);
            c = board.getCoinAt(tem);
            /*
             * c.getColor() != getColor()) 
             * it includes the condition c==Empty or opposite coin
             * 
             */

            if (c != null && (c.getColor() != getColor())) {
                p.add(new StandardMove(board, getPosition(), tem));
            }
        }
        return p;
    }