Определять длину массива на каждом цикле – расход ресурса. Я бы на месте робота начал обход массива вниз. Пост-операция (I++, у нас будет i--) занимает больше ресурсов, надо менять на --i
))
itsnotrobots, мне кажется, что самой истории в качестве базы тоже достаточно (и я даже когда-то написал такую книгу, где в части глав дело происходит в XVI веке в Испании, а в части на далёкой планете в далёком будущем, но история при этом одна)