Game
├── Paddle
├── Ball
├── Block[]
└── Board
+ Board board
+ Paddle paddle
+ Ball ball
+ List<Block> blocks
+ bool isRunning
+ int score
+ int lives
+ Start()
+ Run()
+ HandleInput()
+ Update()
+ Render()
+ CheckGameOver()
+ int width
+ int height
+ Clear()
+ Draw(char[,] grid)
+ DrawObject(GameObject obj) // opcional
+ int x
+ int y
+ int length
+ MoveLeft()
+ MoveRight()
+ Draw(Board board)
+ int x
+ int y
+ int dx // dirección horizontal (-1, 1)
+ int dy // dirección vertical (-1, 1)
+ Move()
+ BounceX()
+ BounceY()
+ Draw(Board board)
+ int x
+ int y
+ bool isDestroyed
+ Destroy()
+ Draw(Board board)
Game.Start()
→ inicializa paddle, pelota, bloques y tablero.Game.Run()
ejecuta un bucle con:HandleInput()
→ mueve el paddle con teclas.Update()
→ mueve la pelota y gestiona colisiones.Render()
→ dibuja tablero y objetos.CheckGameOver()
→ revisa si pierdes o ganas.