Re: What if Hannibal won the battle of Zama
At this point Carthage was still effectively at Game Over point. The army Hannibal gathered to oppose Scipio with was effectively the last throw of the dice. As Winston Churchill famously said of Germany, the force of most of the world was turned against them. It was merely a matter of applying that force in the right way. Rome would have just kept coming against Hannibal in Africa in the same way they had kept coming against him in Italy: slowly but surely - bottling him up until he had his back to the wall. They had discovered in Italy that he was not invincible: over the years they had boxed him up and inflicted reverses on him.
That is not to say, however, that a Carthaginian victory at Zama would have been completely useless however. Indeed the answer for what might have happened can be helped by the answer to the question of what would have happened if Napoleon had won at Waterloo. Napoleon, like Hannibal knew that even if he won the battle his problems were not going to be over. But he was hoping that by inflicting a crushing enough defeat on the Coalition Forces he could induce them to come to the negotiating table and hammer out some sort of truce which allowed him to keep France for himself. Hannibal may have entertained similar hopes. Carthage had at this point engaged with surrender talks with Scipio; had they gained a stronger bargining position by winning at Zama they may have been able to hammer out a surrender with much lighter terms than before: a less expensive war indemnity, being able to keep some more ships and elephants, some autonomy in going to war, etc. Still a surrender but a less harsh one.