Python Jumpstart by Building 10 Apps Transcripts
Chapter: App 7: Wizard Battle App
Lecture: Introduction to the Wizard Battle App
Login or
purchase this course
to watch this video and the rest of the course contents.
0:00
It's time for app number 7,
0:03
and this time we are going to build a really fun wizard game
0:05
it's kind of a role playing dungeons and dragons sort of thing.
0:09
So what is that going to look like?
0:12
Well, it's going to be a text based game
0:14
and here you can see a standard ground of game play.
0:16
Of course, like all of our apps we start with a little header that says what the app is,
0:19
and then right off bat we have our hero in the game, the wizard Gandolf.
0:23
And he sees an Evil Wizard.
0:25
It turn out that one is super strong
0:27
and so he is like... I am not going to battle this, he could attack it,
0:30
he could look around, but he is just going to run away as quick as he can.
0:33
So he does, and then next he finds a Bat, and decides
0:37
hey, I can probably attack and kill this Bat, so he does,
0:40
but just barely he roles a 22, the bat roles at 22
0:44
and I guess because the element of surprise
0:46
the wizard was triumphant over the Bat.
0:48
After that, the wizard Gandolf decides to have a look around
0:52
and he sees that there is a wimpy toad, a tiger, a dragon
0:55
and that very strong evil wizard hanging around.
0:58
The game goes around and around like this,
1:00
until either all the creatures are defeated or the wizard is gone.
1:04
While building this game we are going to learn
1:06
one of the most important concepts in all of computer programming
1:10
and that is the concept of object oriented programming.
1:14
This starts with defining classes
1:16
and classes defined how data and behavior
1:18
are bundled into one concept in programming
1:21
maybe this is a wizard or a dragon
1:24
or the general concept of a creature
1:26
or even the concept of a game itself.
1:29
When we create these classes, these are called objects,
1:31
we want to initialize them,
1:32
have them come into existence immediately with the data they need,
1:35
we'll do that through initializers
1:37
and when we are talking about inheritance
1:39
we have to chain those initializers through the inheritance tree,
1:41
so we are going to talk about initializer chaining.
1:44
Speaking of inheritance, that lets us model our concepts
1:47
in our program with different levels of specialization.
1:51
So we can model all of the actors, the dragon, the toad, the wizard
1:55
as something maybe we'll call the creature in the game
1:58
and then we have a specialized version of the creature
2:00
that has other data and other features called the wizard
2:03
and it knows how to battle creatures
2:05
and then we can also have different types of creatures
2:07
that may themselves have special features
2:09
like a dragon that has a special attack or something like that.
2:12
So this is called inheritance and it's a very powerful feature, when use judiciously.
2:16
When we talk about inheritance,
2:18
we are also going to talk about polymorphism and duck typing.
2:21
Some languages have very strict rules
2:23
about how you can use the more general what you call a base class
2:26
or the specialized derived class,
2:29
like how you can use a creature versus how to use a wizard,
2:32
the compiler checks all these things and so on,
2:34
Python doesn't have compiling or this concept of strong typing
2:37
instead we are going to use something called duck typing
2:40
we'll talk about that near the end of our app.
2:43
Let's get onto build a super fun dungeons and dragon style wizard game.