Easy way to catch pokemon
Get a pokemon that knows the move false swipe and a pokemon that knows the move hipnosis. Train the pokemon that knows false swipe to level 100 and train the one that knows hipnosis to a high level. When you find a pokemon you want to catch just use false swipe on it and it will take it down to exactly one health. Then, change your pokemon to the one that knows hipnosis. Use hipnosis on the pokemon you want to catch. While it is a sleep throw an ultra ball at it and it should be caught. If the pokemon you want to catch is a legendary pokemon it will take quite a lot of ultra balls.