На тему угадывания логики мне очень понравилось "сколько лепестков у розы" http://www.sly2m.com/sly2m/rose/.
Кто в курсе, не спойлерите, думаю многим будет интересно догадаться самим ))).
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший