Understanding how protocols work in combination with classes
We have to work with two different types of characters: comic and game characters. A comic character has a nickname and must be able to draw speech balloons and thought balloons. The speech balloon might have another comic character as a destination.
A game character has a full name and must be able to perform the following tasks:
Draw itself at a specific 2D position indicated by the x and y coordinates
Move itself to a specific 2D position indicated by the x and y coordinates
Check whether it intersects with another game character
We will work with objects that can be both a comic character and a game character. However, we will also work with objects that will just be either a comic or game character. Neither the game character nor the comic character has a generic way of performing the previously described tasks. Thus, each object that declares itself as a comic character must define the tasks related to speech and thought balloons...