public Iterator<Coin> getCoinIterator() {
        return new Iterator<Coin>() {
            private int rank = 0, file = 0;

            @Override
            public boolean hasNext() {
                return (rank < 8);
            }

            @Override
            public Coin next() {
                Coin temp = getCoinAt(Position.getPosition(rank, file));
                file++;
                if (file == 8) {
                    rank++;
                    file = 0;
                }
                return temp;
            }

            @Override
            public void remove() {
            }
        };
    }