Here are some training techniques I've tried:

Single-training

There are several variations of Single-training, but the True single-training - well, a short description of it could be; "It aims at getting only one data in the Pokédex." That is, in the True single-training, you pick your starter and stick with it throughout. You then don't evolve it, and you don't catch any other pokémon. In True single-training, you won't get far in the game, as no starter in any version can learn all the HMs needed to beat the game. But True single-training is a unique challenge that everyone can try just by starting a new game, but not saving.
Evolution single-training is just like True single-training except that you can evolve your starter in it. This technique is not possible on the Yellow version, as you start with a Pikachu that refuses to evolve, but in the other versions, you will get three entries in your pokédex.
Slavery single-training is the serious version of Single-training. In Slavery single-training, you catch a few HM slaves to use the HMs your starter can't learn or you don't want it to learn. They are never used in battle and often deposited on the PC if you know you will get to another town before to need them. In this version of Single-training, the game can be completed.
Evolution slavery single-training is just like Slavery single-training except that now you can evolve your starter.
Free single-training is a little different. Here, you can catch 'ém all if you like, but the only pokémon you use in battle is your starter.
Free evolution single-training is like Free single-training except that now you evolve your starter.
Then, any pokémon can be single-trained at any time, just by putting it in front and not using any other pokémon to battle.
Maybe you say "That's a stupid technique! ONE pokémon just isn't as strong as six!" But think about it... which would win, one pokémon at level 60 or 6 at level 10? Or rather: which would win, one pokémon at level 20 or six at level 10? The level 20 one. If you don't believe me, I'll prove it for you: A level 20 pokémon should be quicker than a level 10 pokémon. A level 20 pokémon knows stronger attacks than a level 10 pokémon. A level 20 pokémon has higher attack than a level 10 pokémon. A level 20 pokémon has higher defense that a level 10 pokémon. A pokémon that knows stronger attacks, has higher attack, higher defense and higher speed than its oppoment should KO it in one or two hits before the enemy can damage it seriously. So, the level 20 pokémon would destroy the six level ten pokémon. The only problem is, ONE level 100 pokémon won't stand a change against six...

Chosen-training

Chosen-training is like that: Before you start your game, decide some six pokémon you want (that can be caught in your game, of course) and catch them, THEN worry about catching the other pokémon. That is good because you can even decide a well-balanced team of pokémon for your team and you will get a good team without having to deposist a pokémon you've trained for a long time. So this is a great technique. Too bad I forgot to use it on my Crystal version...

Quickteam training

Quickteam training aims at getting a team of six different pokémon as soon as possible. Then, as soon as you get your first pokéballs, you go and catch the first pokémon you see. Then catch the next four ones and you will have a team of six pokémon. Of course you don't catch two of the same species, but the first five kinds you run into. The good thing about this is that your pokémon should be equally strong from the beginning, but it rarely makes a good team. Plus, the pokémon found at the beginning of the games are most of the time common weak ones.

Gender training

This technique can be combined with any technique except Single-training. In this addition, you try to catch either only male or only female pokémon.

Currently, these are the only techniques I have. Back to home