# digital pet challenges Coding challenges for the digital pet tutorial. ## Before we get started Complete the following guided tutorial: * [tutorial](/lessons/digital-pet/tutorial) At the end of the tutorial, click `keep editing`. Your code should look like this: ``` basic.forever(() => { if (input.buttonIsPressed("A")) { setSleep() basic.pause(5000) } else { setAwake() } }) ``` ### Challenge 1 Now let's feed the pet! Add an **ELSE IF** statement that checks if button `B` is pressed. Click on the **ELSE** and type **IF** next to it to get the **ELSE IF**. ``` basic.forever(() => { if (input.buttonIsPressed("A")) { setSleep() basic.pause(5000) } else if (input.buttonIsPressed("B")) { } else { setAwake() } }) ``` ### Challenge 2 Now we want to show your eating pet! Let's create a function called `set eat` that will do create an image. Store that image in a variable and then show it. ``` export function setEat() { let img = images.createImage(` . # . # . . . # . . . . # . . . # . # . . . # . . `) img.showImage(0) } ``` Once you create the function `set eat`, call it in the **ELSE IF** statement that checks if button `B` is pressed. ``` basic.forever(() => { if (input.buttonIsPressed("A")) { setSleep() basic.pause(5000) } else if (input.buttonIsPressed("B")) { setEat() } else { setAwake() } }) ``` ### Challenge 3 Have your pet tell you when it is going to sleep! Do this inside of the **IF** statement that checks if button `A` is pressed before you call the function `set sleep`. ``` basic.forever(() => { if (input.buttonIsPressed("A")) { basic.showString("I am going to sleep.", 150) // *** setSleep() basic.pause(5000) } else if (input.buttonIsPressed("B")) { setEat() } else { setAwake() } }) ``` ### Challenge 4 Now, how about we keep track of how many times our pet eats? Add a global variable called `feed` that keeps track of how many times you feed your pet. If button `B` is pressed, increment `feed` by one. Add a condition `on shake` to check your total. ``` feed = 0 // *** basic.forever(() => { if (input.buttonIsPressed("A")) { basic.showString("I am going to sleep.", 150) setSleep() basic.pause(5000) } else if (input.buttonIsPressed("B")) { feed = feed + 1 // *** setEat() } else { setAwake() } }) input.onGesture(Gesture.Shake, () => { basic.showNumber(feed, 150) // *** }) // *** ``` ### Challenge 5 Program your pet to say that it is hungry after 60 seconds. **Hint**: use `input->running time`