public String getStartPositionNotation(ChessBoard board) {
        Iterator<Coin> it = board.getCoinIterator();
        Coin c;
        boolean temp = false;
        boolean file = false, rank = false;
        while (it.hasNext()) {
            c = it.next();
            if (c.getColor() == getMovedCoin().getColor() &&
                    c.getType() == getMovedCoin().getType() &&
                    c != getMovedCoin()) {
                if (c.isHasMoveToPosition(getEndPosition(), board)) {
                    temp = true;
                    if (c.getFile() == getStartPosition().getFile()) {
                        file = true;

                    } else if (c.getRank() == getStartPosition().getRank()) {
                        rank = true;
                    }
                }
            }
        }
        if (!temp) {
            return "";
        }
        if (file && rank) {
            return new String(new char[]{getStartPosition().getFileChar(), getStartPosition().getRankChar()});
        }
        return String.valueOf((!file) ? getStartPosition().getFileChar() : getStartPosition().getRankChar());
    }