Level

Is it level?

Is your table flat? Use the micro:bit as a level!

{Step 1}

Make a variable `||variables:x||` and store the `||input:acceleration x||` value in the `||basic:forever||` loop.

``````basic.forever(function() {
// @highlight
let x = input.acceleration(Dimension.X);
})``````

{Step 2}

Make another variable `||variables:y||` and store the `||input:acceleration y||` value.

``````basic.forever(function() {
let x = input.acceleration(Dimension.X);
// @highlight
let y = input.acceleration(Dimension.Y);
})``````

{Step 3}

Add a code to test `||logic:if||` the `||Math:absolute value||` of `||variables:x||` is `||logic:greater than||` `32`. If it is true, `||basic:show an icon||` to tell you that the micro:bit is not flat, `||logic:else||` show nothing, for now.

``````basic.forever(function() {
let x = input.acceleration(Dimension.X);
let y = input.acceleration(Dimension.Y);
if (Math.abs(x) > 32) {
// @highlight
} else {

}
})``````

{Step 4}

Add an `||logic:else if||` to check that the `||Math:absolute value||` of `||variables:y||` is `||logic:greater than||` `32`. If it is true, `||basic:show an icon||` that tells you the micro:bit is not flat.

``````basic.forever(function() {
let x = input.acceleration(Dimension.X);
let y = input.acceleration(Dimension.Y);
if (Math.abs(x) > 32) {
} else if (Math.abs(y) > 32) {
// @highlight
basic.showIcon(IconNames.Angry)
} else {

}
})``````

{Step 5}

The code under the `||logic:else||` will run if both acceleration `x` and `y` are small, which happens when the micro:bit is laying flat. Add code to `||basic:show a happy image||`.

``````basic.forever(function() {
let x = input.acceleration(Dimension.X);
let y = input.acceleration(Dimension.Y);
if (Math.abs(x) > 32) {
If you have a micro:bit connected, click `|Download|` to transfer your code! Try it out on a table, counter, or window sill in your house!
``basic.forever(function() {})``