Suppose you're building a game that involves creating different types of enemies such as knights, wizards, and archers. Each enemy has different attributes such as health, attack power, and defense. Here's an example of an Enemy class:
Your game also has "spawn points" that spawn new enemies. There are three types of spawn points:
a) Create a Python application that uses the Abstract Factory pattern to create enemies based on the type of spawn point (easy, medium, or hard). The application should print the attributes of the enemies that are created.
b) What would be a more functional way to create enemies based on the type of spawn point? Update your application to use this approach.
Compatible Python Versions: 3.11+