Polymorphism and Yu-Gi-Oh

I spent a great day yesterday with my eldest grandchild, Bob, aka Robert/Robby but never Bobby.
Bob is 8 and in third grade and bored with school, especially math, which he says is a rehash of things he studied two years ago when his Mom home schooled him.
He and his sister Emmeline may be “chips off the old/very old” when it comes to Mathematics. They both enjoy it and get good grades. Emme by the way is the same child who was praised recently in her father’s blog for her mastery of fractions: “If you eat six eighths of a pizza, you’re a pig.”


Bob has been trying to teach me to play “cards” for ages, first Pokemon, and now Yu-Gi-Oh!.
The cards contain pictures of anime characters, and there are several varieties: Monster, Magic and Trap cards.
You win by wiping out your opponent in “battles”. The outcome is based on a comparison of attack points and defense points on Monster cards. These are not necessarily static. The points can be changed by various techniques which take study and practice to master.
I’ve resisted getting into the cards, because the rules seemed convoluted, and besides, Bob changes them as we go along. It’s nothing personal, his mother tells me he does the same to her.
What intrigued me yesterday, though, is that this game seems to be based on some of the principles of object-oriented programming. I know, this sounds terribly precious and pretentious, but I think it’s good: it could instruct kids in the object-oriented way of thinking, which could help them figure out clever forms of digital embezzlement when they grow up.
Anyway: the principles of object-oriented programming are encapsulation (combining elements to create a new entity), polymorphism (the ability to process objects differently depending on their data type or class) and inheritance (a way to form new classes or objects using pre-defined objects or classes where new ones simply take over the old ones’s implementations and characteristics). (definitions and examples below from Webopedia and Wikipedia)
These are all part of the play in Yu-Gi-Oh:
“Fusion” (encapsulation): using 2 or more monsters cards to create a new monster;
“Defense” or “Attack” modes (polymorphism): the same card can be used in different ways depending on its position (vertical or horizontal);
“Equip” and “Field” “Magic Cards” (inheritance): allow you to modify the strength of your Monster cards.
After watching my grandson whip my butt, which I think embarasses him because it’s so easy, I asked if he might be interested in learning how to program, a suggestion which of course, he liked.
Anyway, I think it would be cool if someone writes a Master’s thesis about this some day.