The Model-View-Controller (MVC) pattern is a software architecture that tries to separate the data (Model) from the displays (Views) and actions that change that data (Controller).
In this recipe, we use the MVC pattern to implement a feature of many games—a visual health bar representing the Player's numeric health value (in this case, a float number from 0.0 - 1.0). As the user presses the Up/Down arrow keys (simulating healing and damage), the value of the player's heath changes. With the health-change events, the visual display and a Console log are updated to present the new health values to the user:
