From Glitch City Laboratories
A normal dragonair under the effect of the move AI glitch
In the Generation I Pokémon games, there is a slight bug in the formulae which decide which move the enemy Pokémon will use.
The game would ensure that if the enemy Pokémon has a move which is super effective or neutral to its opponent's type, it would use that move over a move that its opponent resists. This effect would always be applied, so the super effective moves would always be used until they ran out of PP. This also meant that if the opponent's only neutral or super effective move was a status move, the opponent would be forced into using it.
This is a problem notably with Psychic-type moves such as Barrier, Light Screen and Agility (which was a Psychic-type move until Generation III.) For example, a Rapidash's high Special Attack stat would make it relatively easy to defeat a Golbat of the same level with Fire Blast. However, if that same Rapidash also knew Agility, it would never use Fire Blast until Agility's PP was 0. However, in Generation I technically an opponent's PP will never deplete to zero. As a result, the Golbat would have an unlimited amount of time to defeat the Rapidash, unless that Rapidash was battled in a link battle.
This glitch was fixed in later generations of the Pokémon games, due to improvements of the opponent's AI.
- A thread on Glitch City Laboratories Forums concerning the Move AI glitch