# Bouncing Ball Exercises 1. **[Find the Bug](https://github.com/inancgumus/learngo/tree/master/18-project-bouncing-ball/exercises/01-find-the-bug)** There is a bug in the bouncing ball code. Test yourself that you really understand how the backing arrays work. 2. **[Adjust the width and height automatically](https://github.com/inancgumus/learngo/tree/master/18-project-bouncing-ball/exercises/02-width-and-height)** In this exercise, your goal is getting the width and height of the terminal screen from your operating system (instead of setting the width and height manually). 3. **[Previous positions](https://github.com/inancgumus/learngo/tree/master/18-project-bouncing-ball/exercises/03-previous-positions)** Let's optimize the program once more. This time you're going to optimize the clearing off the previous positions. 4. **[Use a single dimensional slice](https://github.com/inancgumus/learngo/tree/master/18-project-bouncing-ball/exercises/04-single-dimensional)** For the board slice, instead of using a multi-dimensional slice, let's use a single-dimensional slice. In this exercise, you'll understand and deeply internalize why I've used a multi-dimensional board slice. 5. **[Don't use a slice for the board](https://github.com/inancgumus/learngo/tree/master/18-project-bouncing-ball/exercises/05-no-slice)** Expand your horizon: Don't use a slice for the board. You only need a slice for the buffer, only that.