The rule for this is simple, although can be somewhat confusing when you first start learning German! The rule is: if there's movement from one place to another, use 'sein'. If there's not, use 'haben'.
Example: I played.
This example uses 'haben' - ich habe gespielt. This is because, while there may be movement involved (for example, if the sentence were 'I played football'), the movement isn't directed from one place to another.
Example: I flew.
This example uses 'sein' - ich bin geflogen. This is because the example uses movement from one place to another - whether the movement is specifically stated as being from one place to another or not. When you fly somewhere, it is flying from one place to another (for example, 'I flew from England to Germany'). This does not need to be included in the sentence; it is implied.
Example: I ate.
This example uses 'haben' - ich habe gegessen. This is because there is no movement from one place to another.
Example: I drove.
This example uses 'sein' - ich bin gefahren. This is because there is movement from one place to another.