@Override
	public Iterator<Piece> iterator() {
		return new IteratorOnPieces(){
			
			private IteratorOnPieces iteratorOnBoard = (IteratorOnPieces) field.iterator();

			@Override
			public boolean hasNext() {
				Iterator<Piece> clone = iteratorOnBoard.clone();
				while(clone.hasNext()){
					Piece piece = clone.next();
					if(piece.getColor()==myColor)
						return true;
				}
				return false;
			}

			@Override
			public Piece next() {
				while (iteratorOnBoard.hasNext()){
					Piece piece = iteratorOnBoard.next();
					if (piece.getColor()==myColor)
						return piece;
				}
				return null;
			}

			@Override
			public void remove() {
				// TODO Auto-generated method stub
				
			}

			@Override
			public Position getPosition() {
				return iteratorOnBoard.getPosition();
			}
			
			public Iterator<Piece> clone() {
				try{
				return (Iterator<Piece>) super.clone();
				}
				catch(Exception e){return null;}
			}

		};
			
	
		
	}