10UMLClass30260300120Controller bg=red - - get_and_handle_events() exit_if_time_to_quit(events) key_was_pressed_on_this_cycle(key, events) -> bool UMLPackage32010360170main -- bg=orange halign=left 1. Initializes pygame, a screen, and a Clock (for the frame rate). Implements a Model-View-Controller (MVC) architecture: 1. Constructs the Game, View and Controller. 2. Enters the game loop, which repeatedly (per frame rate): -- Asks the Controller object to get and respond to events. -- Asks the Game object to run one cycle. -- Asks the View object to draw everything.UMLClass77010190120View bg=red - - draw_everything() -- Draws the background. -- Asks the Game to ask its objects to draw themselves.UMLClass390230380150Game bg=red - - run_one_cycle() -- Called to do whatever actions need to happen (independently of events / user-input) during this cycle of the game loop. draw_game() -- Asks the Game objects to draw themselves. UMLPackage83017023080screen -- bg=yellow The pygame.Surface object returned by pygame.display.set_mode().Relation41017014080lt=<- constructs m1=1 110;60;110;40;10;40;10;10Relation230170160110lt=<- constructs m1=110;90;10;50;120;50;140;10Relation6705012050lt=<- constructs m1=1100;20;10;20Relation9301204090lt=<-12;70;10;13Relation56017029060lt=<- m2=constructs m1=1 m2pos=10,-12 270;30;10;30;10;10Relation72012090130lt=<-10;110;70;13UMLNote201024060Model-View-Controller (MVC) architecture. PUT THE NAME OF YOUR GAME HERE. bg=blueRelation7602209050lt=<- m2=1 m2pos=10,0 70;20;10;20Relation3202909060lt=<- m1=1 70;23;10;23