# 22.6. Exercises¶

For exercises, you can expand the Tamagotchi game even further. Try these out.

Here’s all the code we just saw for our new and improved game, with a few additions. You can run this and play the game again.

1. Change the above code to allow you to adopt a Tiger pet (that you’re about to create). HINT: look at the whichtype function, and think about what’s happening in the code for that function.

2. Now, modify the code to define a new class, Tiger. The Tiger class should inherit from the Cat class, but its default meow count should be 5, not 3, and it should have an extra instance method, roar, that prints out the string ROOOOOAR!.

3. Next, modify the code so that when the hi method is called for the Tiger class, the roar method is called. HINT: You’ll have to call one instance method inside another, and you’ll have to redefine a method for the Tiger class. See the overriding methods section.

4. Now, modify the code to define another new class, Retriever. This class should inherit from Lab. It should be exactly like Lab, except instead of printing just I found the tennis ball! when the fetch method is called, it should say I found the tennis ball! I can fetch anything!.

5. Add your own new pets and modifications as you like – remember, to use them in the game, you’ll also have to alter the whichtype function so they can be used in game play. Otherwise, you’ll have different classes that may work just fine, but you won’t see the effects in the game, since the code that actually makes the game play is found in the second half of the provided code (look for the while loop!).

## 22.6.1. Contributed Exercises¶

If this is a homework problem instead of an example in the text then the assignment text should go here. The assignment text ends with the line containing four tilde ~

Copy and paste all the code from the wvu_inheritance_car question.

In the Car class, override the __str()__ class. The new version of the function should return the make, model, and year along with the engine size like “2015 Dodge Journey with 3.6L engine”.

For the car instance you created, set the engine_size property to the size of the car’s engine.

Copy and paste all the code from the wvu_inheritance_override question.

Create a constructor (__init__()) function for the Car class. It should accept the year, make, model, and engine size as parameters. Have your function store the engine size, and then call the Vehicle class’s constructor store the year, make, and model.

Update your code to specify the engine size for your car using its constructor rather than setting it separately afterwards.

Create a new class called Car that inherits from the existing Vehicle class. Add a class variable named engine_size to your new class with a value of None.

Create an instance of the new Car class to represent a car with the year, make, and model of your choice.

Think about cases where you might want to use classes with inheritance, like if you have a generic type (beverage) and then a more specific type (pop). Write a parent class, one or more subclasses, and the variables and methods you need to represent and use your items.