@Override
	public Iterator<FlipMove> getMoves()
	{
		ArrayList<FlipMove> moves = new ArrayList<FlipMove>();
		
		for (FlipMove fm : FlipMove.values())
		{
			if ( isTraversable( fm.dx, fm.dy ) )
			{
				moves.add( fm );
			}
		}
		
		return moves.iterator();
	}