# 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.