Quoted By:
Pokémon will never be challenging. Not in the way you want it to be. Because it's a turn-based RPG, it cannot be difficult in a way that actually requires you to improve or master some manner of skill.
The solutions you have at your disposal when facing a wall only involve luck, grinding or cheesing. You can grind against wild Pokémon to increase your levels and have an advantage. You can search for a rare Pokémon that happens to have a good matchup against whichever battle you're stuck at, which means you have to roll the dice by walking around in grass and throwing balls. Or you can buy revives and potions to stop your Pokémon from fainting, which is overpowered and very cheesy.
There's no way you can make a core Pokémon game challenging in a fun and engaging way.