He could have not waited for the outcome of the cavalry battle and pushed home with his third line of veterans, defeated Scipio's infantry and then been able to repel the Roman cavalry. Or he could have not sent his cavalry out of sight to attack the Roman cavalry at all, instead sent them into Scipio's flanks while the Roman cavalry was still absent.
Sending your cavalry out of your sight, then halting the battle for them to return victorious proved to be over confidence in his cavalry's ability. Napoleon was said a general should ask himself what he would do if an opponent came from a direction and if he has no answer, he has a bad plan. Hannibal had no answer to what if his cavalry lost.
Edited by Toltec - 11-Aug-2012 at 18:25