Just thought I'd add my two cents based on my experience with the cheaper Sharp IR sensors. If you use these, you'll want to be aware of what these can do and what you need to find your blocks.
These sensors have useless readings if they're within 5cm to 10cm (depending on the range of the sensor) of the object they're trying to detect. This can be overcome by placing the sensor far enough back on the robot so that the useless range doesn't "overhang."
Will your blocks all be on a single plane, i.e. on a flat floor that your robot will be rolling along? If so, then I would go for one of the Sharp sensors with the 5cm to 30cm range, especially given the size of your blocks. The smaller the detection range of these sensors, the better the resolution. You could point the sensor at the ground, extending it out on an arm from the robot kind of like a mindsweeper. The field of vision for these sensors is cone shaped, I think to about 10cm diameter at their maximum range. If you can get the sensor positioned in that sweet spot above the floor just outside the useless range mentioned above, then the field of vision would be reduced to, I'm guessing here, no greater than an inch or so. Provided the blocks are more than an inch away from each other, you should be able to find them individually. For extra coolness, you could mount the sensor on a spinning arm rotating around the robot.
By the way, the Sharp sensors' refresh rates are approximately 20Hz, which is fast enough for most robots unless time is a serious competitive factor.
Sorry, I'm making some presumptions about the environment in which you're required to find these blocks - can you describe that in more detail?