Programming Patchy Particles To Form Complex Ordered Structures