Then, when challenger becomes the champion it's behaviour will be useless and the next challenger will either beat it easily, or will do the same and the cycle will repeat.
To protect against this, the challenger should have to beat all previous champions, not just the current champion.
One way to deal with this could be to have a system similar to ELO in chess, so each tank gets a ranking. This is compromise between having to defeat "champion level tanks", and having to defeat champion level tanks more often than not!
Corewar is still the granddaddy of them all though, as has already been pointed out here.
At one time, there was a huge list of programming games posted on the 'net. This was a good idea and should be revived.