If Hannibal was a great general, how come he didn't attack Rome when he had the chance? Why didn't Hannibal besiege Rome after he destroyed the armies Rome had sent to defeat him? Couldn't he lay siege to Rome and eventually make it surrender by starving its people?