No, it doesn't mean that OOP is awful - it just means that this particular way of modeling a problem is a recipe for over-engineering.
Start with the simplest thing that works. That thing will probably be just a function. Grow it from there. If it gets too big, split it. If you find that you pass the same 12 parameters to a bunch of functions - factor out a class. If you do the same thing in a bunch of classes - abstract it out. Keep it DRY [3]. Keep it SOLID [4]. Rinse and repeat. This way you end up with a useful class hierarchy - and OOP won't be awful.
[1] http://en.wikipedia.org/wiki/Tower_of_Hanoi
[2] http://rosettacode.org/wiki/Towers_of_Hanoi
[3] http://en.wikipedia.org/wiki/Don't_repeat_yourself
[4] http://en.wikipedia.org/wiki/SOLID_(object-oriented_design)