# PyGamer Marble Labyrinth in MakeCode Arcade

## Overview

https://youtu.be/ipUCKPLFp74

You can relive the excitement of a good marble maze game -- such as **_Labyrinth_** or **_Marble Madness_** -- right on your PyBadge or PyGamer, thanks to the built-in accelerometer! Use MakeCode Arcade to code it and then you can build your own challenging levels to test your skills!

![](https://cdn-learn.adafruit.com/assets/assets/000/078/127/medium800/gaming_level3.jpg?1562896283)

## Parts
### Adafruit PyGamer for MakeCode Arcade, CircuitPython or Arduino

[Adafruit PyGamer for MakeCode Arcade, CircuitPython or Arduino](https://www.adafruit.com/product/4242)
What&nbsp;fits in your pocket, is fully Open Source, and can run CircuitPython, MakeCode Arcade or Arduino games you write yourself? That's right, it's the **Adafruit PyGamer!** We wanted to make an entry-level gaming handheld for DIY gaming, and maybe a little...

Out of Stock
[Buy Now](https://www.adafruit.com/product/4242)
[Related Guides to the Product](https://learn.adafruit.com/products/4242/guides)
![Angled shot of Adafruit PyGamer for MakeCode Arcade, CircuitPython or Arduino.](https://cdn-shop.adafruit.com/640x480/4242-00.jpg)

### Adafruit PyBadge for MakeCode Arcade, CircuitPython, or Arduino

[Adafruit PyBadge for MakeCode Arcade, CircuitPython, or Arduino](https://www.adafruit.com/product/4200)
What's the size of a credit card and can run CircuitPython, MakeCode Arcade or Arduino? That's right, its the **Adafruit PyBadge!** We wanted to see how much we could cram into a ​3 3⁄8 × ​2 1⁄8 inch rounded rectangle, to make an all-in-one dev board with...

Out of Stock
[Buy Now](https://www.adafruit.com/product/4200)
[Related Guides to the Product](https://learn.adafruit.com/products/4200/guides)
![Angled shot of a Adafruit PyBadge for MakeCode Arcade, CircuitPython, or Arduino. ](https://cdn-shop.adafruit.com/640x480/4200-01.jpg)

### Adafruit PyBadge LC - MakeCode Arcade, CircuitPython, or Arduino

[Adafruit PyBadge LC - MakeCode Arcade, CircuitPython, or Arduino](https://www.adafruit.com/product/3939)
What's the size of a credit card and can run CircuitPython, MakeCode Arcade or Arduino even when you're on a budget? That's right, it's the&nbsp; **Adafruit PyBadge LC!** &nbsp;We wanted to see how much we could cram into a ​3 3⁄8 × ​2 1⁄8 inch...

Out of Stock
[Buy Now](https://www.adafruit.com/product/3939)
[Related Guides to the Product](https://learn.adafruit.com/products/3939/guides)
![Angled Shot of Adafruit PyBadge - Low Cost. ](https://cdn-shop.adafruit.com/640x480/3939-05.jpg)

### Mini Oval Speaker with Short Wires - 8 Ohm 1 Watt

[Mini Oval Speaker with Short Wires - 8 Ohm 1 Watt](https://www.adafruit.com/product/4227)
Hear the good news! This wee speaker&nbsp;is&nbsp;a&nbsp;great addition to any audio project where you need 8 ohm impedance and 1W or less of power. We particularly like this&nbsp;speaker&nbsp;as it is&nbsp;small and comes with nice skinny wires with a connector on the end. It has a handy...

In Stock
[Buy Now](https://www.adafruit.com/product/4227)
[Related Guides to the Product](https://learn.adafruit.com/products/4227/guides)
![Mini Oval Speaker with Short Wires ](https://cdn-shop.adafruit.com/640x480/4227-06.jpg)

# PyGamer Marble Labyrinth in MakeCode Arcade

## Code Marble Labyrinth in MakeCode Arcade

https://youtu.be/ipUCKPLFp74

## MakeCode Arcade

MakeCode Arcade is a free Microsoft block programming environment designed specifically to make games. Learning to use MakeCode is easy & fun.

If you're not already familiar with the basics of MakeCode Arcade, [check out this guide](https://learn.adafruit.com/makecode-arcade-pixel-art-sprites/creating-sprites-in-makecode-arcade) on creating a character sprite and moving it with controls.

To start, open a new Chrome browser window (Chrome works best) and go to [MakeCode Arcade](https://arcade.makecode.com/).

These MakeCode Arcade guides are designed to take you through the fundamentals before tackling more complex games:

- [Pixel Art](https://learn.adafruit.com/makecode-arcade-pixel-art-sprites)
- [Animation](https://learn.adafruit.com/makecode-arcade-pixel-animation)
- [Level Design](https://learn.adafruit.com/makecode-arcade-platform-level)
- _[Sparky Invaders](https://learn.adafruit.com/makecode-arcade-sparky-invaders)_
- [Next Level Game Techniques](https://learn.adafruit.com/next-level-makecode-arcade-games)

For intermediate-level techniques, check out:

- [Re-MakeCode the Classics: _Arkanoid_](https://learn.adafruit.com/re-makecode-the-classics-arkanoid/overview)
- [Re-MakeCode the Classics: _Py Hunter_](https://learn.adafruit.com/re-makecode-the-classics-spy-hunter/overview)

Info: 

_ **Marble Labyrinth** _

To start with, let's load the completed version of _ **Marble&nbsp;**** Labyrinth**_ and try it out.

![](https://cdn-learn.adafruit.com/assets/assets/000/078/174/medium800/gaming_arcade-Marble-Labyrinth.png?1562960784)

Start by launching [MakeCode Arcade](https://arcade.makecode.com/) using the Google Chrome web browser. Then, download the **arcade-Marble-Labyrinth.png** image cartridge file above by right-clicking on the image and saving it to your computer.

## Load the Code

This is a special .png file that contains not only an image, but the entire game is embedded in it as well!

Simply drag it from the location to which you saved the image on your computer (such as the desktop as shown here) onto the Chrome browser window that is already running MakeCode Arcade (MCA). Note that the image in this graphic is of a different game, but you'll be dragging the _Marble Labyrinth ._png file.

This will open the code into the MCA editor.

![gaming_MakeCode_Arcade_2.jpg](https://cdn-learn.adafruit.com/assets/assets/000/078/129/medium640/gaming_MakeCode_Arcade_2.jpg?1562896688)

![gaming_MakeCode_Arcade_3.jpg](https://cdn-learn.adafruit.com/assets/assets/000/078/130/medium640/gaming_MakeCode_Arcade_3.jpg?1562896735)

Primary: 

## Play the Game

Try out the game before we look at how it works. You can simply hover the mouse over the simulator window to "tilt" the game console around to play.

https://youtu.be/6Siewq7yv7c

## Use the Accelerometer

In order to use the accelerometer built into the PyGamer (or PyBadge) with MakeCode Arcade, we need to add the **Controller** extension.

To add the extension, click on **Advanced** and then **+**  **Extensions.**

From the next screen, click on the **Controller** extension.

Then, you'll be able to use extended controller features, as shown here, including the readings from the accelerometer in milli-gravities on x, y, and z axes.

![gaming_MakeCode_Arcade_4.jpg](https://cdn-learn.adafruit.com/assets/assets/000/078/131/medium640/gaming_MakeCode_Arcade_4.jpg?1562902566)

![gaming_MakeCode_Arcade_5.jpg](https://cdn-learn.adafruit.com/assets/assets/000/078/132/medium640/gaming_MakeCode_Arcade_5.jpg?1562902572)

![gaming_MakeCode_Arcade_6.jpg](https://cdn-learn.adafruit.com/assets/assets/000/078/133/medium640/gaming_MakeCode_Arcade_6.jpg?1562902586)

Here's a minimum viable example of using the accelerometer to move a ball around the screen:

![](https://cdn-learn.adafruit.com/assets/assets/000/078/135/medium800/gaming_MakeCode_Arcade_7.jpg?1562945123)

## Intro Tutorial

One popular concept in game design is the notion of teaching the player how to play the game by doing, rather than including step-by-step instructions, or requiring a manual.

We'll use this method to get the player used to the tilting mechanic, and so that they have a feel for how much to tilt the PyGamer before the stakes are high.

In the intro to the game, the title "Marble Labyrinth" is pinned to the ball using the **sprite say " "** block, and there are no hazards. So, players will naturally tilt the ball around with the controller and eventually try crossing over the green "F" for "Finish" block, which advances them to the first real level.

## Intro Tutorial

One popular concept in game design is the notion of teaching the player how to play the game by doing, rather than including step-by-step instructions, or requiring a manual.

We'll use this method to get the player used to the tilting mechanic, and so that they have a feel for how much to tilt the PyGamer before the stakes are high.

In the intro to the game, the title "Marble Labyrinth" is pinned to the ball using the **sprite say " "** block, and there are no hazards. So, players will naturally tilt the ball around with the controller and eventually try crossing over the green "F" for "Finish" block, which advances them to the first real level.

Note also, we've set up a variable to indicate the state when the ball has **touched** a hole tile. So long as that remains false, the **on game update** loop will use the accelerometer to guide the **ball** sprite's velocity on x and y **(****vx, vy).**

We'll also use the **on sprite of kind Player hits wall (purple)** loop to end the intro level and start the first real level, which is index 0, by calling the function with **call makeLevel levelNumber.**

![gaming_MakeCode_Arcade_8.jpg](https://cdn-learn.adafruit.com/assets/assets/000/078/141/medium640/gaming_MakeCode_Arcade_8.jpg?1562945663)

![gaming_MakeCode_Arcade_9.jpg](https://cdn-learn.adafruit.com/assets/assets/000/078/142/medium640/gaming_MakeCode_Arcade_9.jpg?1562945760)

![gaming_MakeCode_Arcade_00.jpg](https://cdn-learn.adafruit.com/assets/assets/000/078/173/medium640/gaming_MakeCode_Arcade_00.jpg?1562959536)

## Make Levels

Once the player initiates the start of the level, here's what the **makeLevel** function does (note the function type used here accepts an integer number argument that we'll use to pick different level maps):

- set the background image
- create the array of tile maps, in this case there are three possible levels (later, you can design your own levels by simply clicking the **+** sign in the list array and adding another image. A good way to start is to **RMB-click** an existing one to copy it and place it in the new empty value.
- set the tile map to the index chosen with the **num** argument when the function was called, as an 8x8 pixel tile map
- place the **start** image on the red tile
- place the brown walls on the black tiles, with wall **on**
- place the hole hazards on the pink tiles, with wall **on**
- place the **finish** image on the green tile, with wall **on**
- place the player's **ball** sprite on the red tile
- pause for half a second, then set the **touched** variable to **false** so the accelerometer values will be used again to set the ball's velocity on x and y

Click on the first tile map so it opens in the sprite editor and you can see how this easy difficulty level is designed. This one is meant to give the player an early success while introducing the hole hazard element.

![gaming_MakeCode_Arcade_10.jpg](https://cdn-learn.adafruit.com/assets/assets/000/078/143/medium640/gaming_MakeCode_Arcade_10.jpg?1562946137)

![gaming_MakeCode_Arcade_11.jpg](https://cdn-learn.adafruit.com/assets/assets/000/078/144/medium640/gaming_MakeCode_Arcade_11.jpg?1562946150)

## Fall in a Hole

Just like the original, real-world game, _ **Marble&nbsp;**** Labyrinth**_ is hard! When the player over-corrects and steers the ball right into a hole, here's what happens:

- **on sprite of kind Player hits wall (pink)** loop runs
- We set the **touched** variable to **true** to disengage the accelerometer control
- **set sprite image to** blank so that it appears that the ball has fallen into the hole
- **set dropped to true** which will call the **game over lose with bubbles effect** in the **forever loop**

![](https://cdn-learn.adafruit.com/assets/assets/000/078/145/medium800/gaming_MakeCode_Arcade_12.jpg?1562947399)

## Completing a Level/Winning the Game

When the player gets the ball to the Finish tile, here's what happens:

- **on sprite of kind Player hits wall (green)** lets us know the ball has reached the finish
- disengage the accelerometer control over the ball with **set touched to true**
- **change levelNumber by 1** increases the integer value that's used to call the **makeLevel** function with the proper next level number
- **if levelNumber \< length of array list** conditional loop checks to see that we have additional levels left for the player. If so:
  - pause half a second, then call the **makeLevel** function with the next level number

- If there are no levels left to play:
  - **game over win with smiles effect**!

![](https://cdn-learn.adafruit.com/assets/assets/000/078/146/medium800/gaming_MakeCode_Arcade_13.jpg?1562947794)

Now, load the game onto your PyGamer or PyBadge as shown in the following pages and have some fun! Any time you like, you can create new levels to create new challenges!

# PyGamer Marble Labyrinth in MakeCode Arcade

## Update the PyBadge/PyGamer Bootloader

You are at the bleeding edge of handheld, open source, game playing hardware and software, what with your PyBadge/PyBadge LC or PyGamer! Congratulations! It's fun and exciting! It is also changing and improving all the time, so please update your bootloaders before proceeding to put your MakeCode Arcade games on the board!!

Info: 

## PyBadge/PyBadge LC Bootloader

If you have a **PyBadge** or **PyBadge LC** , [please go to this page for instructions on updating the bootloader.](https://learn.adafruit.com/adafruit-pybadge/updating-the-bootloader)

![gaming_pyb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/076/276/medium640/gaming_pyb.jpg?1559330072)

## PyGamer Bootloader

If you have a **PyGamer** , [please go to this page for instructions on updating the bootloader.](https://learn.adafruit.com/adafruit-pygamer/updating-the-bootloader)

![gaming_pyg.jpg](https://cdn-learn.adafruit.com/assets/assets/000/076/277/medium640/gaming_pyg.jpg?1559330110)

Danger: 

## Hardware Checks

If, after updating your board's bootloader, you still think you may have a hardware problem, here's a great way to test out all of the functions. From buttons, to the light sensor, thumbstick (PyGamer only), accelerometer (PyGamer and PyBadge only, not the LC), and more, we've got a super nifty set of hardware test .UF2 files you can use.

Click on the link for your board below for more info and a link to the appropriate UF2 file.

[PyBadge/PyBadge LC Hardware Check](https://learn.adafruit.com/adafruit-pybadge/arduino-test)
[PyGamer Hardware Check](https://learn.adafruit.com/adafruit-pygamer/arduino-test)
Another way to do a hardware check is with the handy, dandy MakeCode Arcade Basic Hardware Test. This was created with MakeCode Arcade and you can use it to check that your d-pad buttons or thumb joystick can move the yellow face around the screen, and that the A and B buttons work to play a sound (just make sure you have a speaker plugged in to the PyGamer first).

You can [open this link](https://makecode.com/_icwXcg4PWRYW) to get to it, or download the UF2 file below and drag it onto your board's USB drive in bootloader mode.

[arcade-Basic-Hardware-Test.UF2](https://cdn-learn.adafruit.com/assets/assets/000/076/316/original/arcade-Basic-Hardware-Test-PyBadge_and_PyGamer.uf2?1559345409)
![](https://cdn-learn.adafruit.com/assets/assets/000/076/317/medium800/gaming_hwtest.png?1559345457)

# PyGamer Marble Labyrinth in MakeCode Arcade

## Load a MakeCode Game on PyGamer/PyBadge

Let's load a game! For example, here's a link to **Run, Blinka, Run!&nbsp;** To open the game in the MakeCode Arcade editor, first, click the share link below. This will allow you to play the game in the browser right away.

[Makecode Arcade Game: Run, Blinka, Run!](https://makecode.com/_Y90aTaiHfh41)
Then, click on the&nbsp;Show Code&nbsp;button in the upper left corner. The shows the code for the game, and by clicking the&nbsp;Edit&nbsp;button in the upper right corner, it'll open into the editor where you can upload it to your PyGamer/PyBadge.

Once you have a game working on the MakeCode Arcade web editor, it's time to download it and flash it onto your board.

![adafruit_products_Run_Blinka_Run__-_Microsoft_MakeCode_2.jpg](https://cdn-learn.adafruit.com/assets/assets/000/078/777/medium640/adafruit_products_Run_Blinka_Run__-_Microsoft_MakeCode_2.jpg?1564457638)

![adafruit_products_Run_Blinka_Run__-_Microsoft_MakeCode_3.jpg](https://cdn-learn.adafruit.com/assets/assets/000/078/778/medium640/adafruit_products_Run_Blinka_Run__-_Microsoft_MakeCode_3.jpg?1564457679)

Primary: 

## Board Definition

In order to load a game made in MakeCode Arcade onto the PyBadge, first choose the proper board definition inside of MakeCode. Click the ellipsis (...) next to DOWNLOAD and then the **Choose Hardware** item.

![adafruit_products_MakeCode_choose_hardware.jpg](https://cdn-learn.adafruit.com/assets/assets/000/108/981/medium640/adafruit_products_MakeCode_choose_hardware.jpg?1644859647)

## Change Board screen

Click on the image of your board, either the PyBadge/PyBadge LC or the PyGamer

![adafruit_products_MakeCode_Arcade.jpg](https://cdn-learn.adafruit.com/assets/assets/000/078/781/medium640/adafruit_products_MakeCode_Arcade.jpg?1564458209)

This will cause the game .uf2 file for your particular board to be saved to your hard drive. You only need to do this the first time you use a new board. Thereafter you can simply click the **Download** button on the MakeCode Arcade editor page.

![](https://cdn-learn.adafruit.com/assets/assets/000/074/943/medium800/gaming_downloaded.png?1556169879)

Danger: 

## Bootloader Mode

Now, we'll put the board into bootloader mode so we can drag on the saved .uf2 file. On the back side of the board you'll see a reset button at the top. Make sure the board is plugged into your computer via USB with a USB micro B to A data cable. Also, be sure the board is turned on.

&nbsp;

Then, press the reset button. This will initiate bootloader mode.

&nbsp;

When the board is in bootloader mode you'll see a screen similar to this one show up.

![gaming_IMG_5427.jpg](https://cdn-learn.adafruit.com/assets/assets/000/074/945/medium640/gaming_IMG_5427.jpg?1556170490)

![gaming_IMG_5428.jpg](https://cdn-learn.adafruit.com/assets/assets/000/074/991/medium640/gaming_IMG_5428.jpg?1556308393)

![gaming_IMG_5429.jpg](https://cdn-learn.adafruit.com/assets/assets/000/074/992/medium640/gaming_IMG_5429.jpg?1556308428)

## Drag and Drop

Now that the board is in bootloader mode, you should see a **BADGEBOOT** drive show up on your computer as a USB flash drive. Simply drag the arcade game .uf2 file onto the drive.

![gaming_dragtoPyBadge.jpg](https://cdn-learn.adafruit.com/assets/assets/000/074/944/medium640/gaming_dragtoPyBadge.jpg?1556308458)

## Play!

That's all there is to it! Once the file is copied over the board will restart and launch the game!

![](https://cdn-learn.adafruit.com/assets/assets/000/074/948/medium800/gaming_IMG_5430.jpg?1556170587)

https://youtu.be/au5w1sLjsaU

Keep an eye on Adafruit.com for additional game related content.

# PyGamer Marble Labyrinth in MakeCode Arcade

## Troubleshooting MakeCode Arcade

If you run into trouble with MakeCode Arcade, here are some resources for getting help:

- [Microsoft MakeCode Arcade Forum](https://forum.makecode.com/c/Share-your-Arcade-projects-here)
- [Adafruit MakeCode Forum](https://forums.adafruit.com/viewforum.php?f=64)
- [Microsoft MakeCode Arcade Discord](https://aka.ms/makecodecommunity) -- look for the #arcade channel
- [Adafruit MakeCode Discord](https://adafru.it/discord) -- look for the #makecode channel

Primary: 


## Featured Products

### Adafruit PyGamer for MakeCode Arcade, CircuitPython or Arduino

[Adafruit PyGamer for MakeCode Arcade, CircuitPython or Arduino](https://www.adafruit.com/product/4242)
What&nbsp;fits in your pocket, is fully Open Source, and can run CircuitPython, MakeCode Arcade or Arduino games you write yourself? That's right, it's the **Adafruit PyGamer!** We wanted to make an entry-level gaming handheld for DIY gaming, and maybe a little...

Out of Stock
[Buy Now](https://www.adafruit.com/product/4242)
[Related Guides to the Product](https://learn.adafruit.com/products/4242/guides)
### Adafruit PyGamer Acrylic Enclosure Kit

[Adafruit PyGamer Acrylic Enclosure Kit](https://www.adafruit.com/product/4238)
You've got your PyGamer, and you're ready to start jammin' on your favorite arcade games. You gaze adoringly at the charming silkscreen designed by Ada-friend PaintYourDragon.&nbsp;The nostalgia is palpable!

Cradling the PCB in your hands, you realize there's something...

In Stock
[Buy Now](https://www.adafruit.com/product/4238)
[Related Guides to the Product](https://learn.adafruit.com/products/4238/guides)
### Adafruit PyGamer Starter Kit

[Adafruit PyGamer Starter Kit](https://www.adafruit.com/product/4277)
**Please note: you may get a royal blue _or_ purple case with your starter kit (they're both lovely colors)**

What&nbsp;fits in your pocket, is fully Open Source, and can run CircuitPython, MakeCode Arcade or Arduino games you write yourself? That's right,...

Out of Stock
[Buy Now](https://www.adafruit.com/product/4277)
[Related Guides to the Product](https://learn.adafruit.com/products/4277/guides)
### Lithium Ion Polymer Battery with Short Cable - 3.7V 350mAh

[Lithium Ion Polymer Battery with Short Cable - 3.7V 350mAh](https://www.adafruit.com/product/4237)
Lithium-ion polymer (also known as 'lipo' or 'lipoly') batteries are thin, light, and powerful. The output ranges from 4.2V when completely charged to 3.7V. This battery has a capacity of 350mAh for a total of about 1.3 Wh. If you need a larger (or smaller!) battery, <a...></a...>

Out of Stock
[Buy Now](https://www.adafruit.com/product/4237)
[Related Guides to the Product](https://learn.adafruit.com/products/4237/guides)
### Mini Oval Speaker with Short Wires - 8 Ohm 1 Watt

[Mini Oval Speaker with Short Wires - 8 Ohm 1 Watt](https://www.adafruit.com/product/4227)
Hear the good news! This wee speaker&nbsp;is&nbsp;a&nbsp;great addition to any audio project where you need 8 ohm impedance and 1W or less of power. We particularly like this&nbsp;speaker&nbsp;as it is&nbsp;small and comes with nice skinny wires with a connector on the end. It has a handy...

In Stock
[Buy Now](https://www.adafruit.com/product/4227)
[Related Guides to the Product](https://learn.adafruit.com/products/4227/guides)
### Adafruit PyBadge for MakeCode Arcade, CircuitPython, or Arduino

[Adafruit PyBadge for MakeCode Arcade, CircuitPython, or Arduino](https://www.adafruit.com/product/4200)
What's the size of a credit card and can run CircuitPython, MakeCode Arcade or Arduino? That's right, its the **Adafruit PyBadge!** We wanted to see how much we could cram into a ​3 3⁄8 × ​2 1⁄8 inch rounded rectangle, to make an all-in-one dev board with...

Out of Stock
[Buy Now](https://www.adafruit.com/product/4200)
[Related Guides to the Product](https://learn.adafruit.com/products/4200/guides)
### Adafruit PyBadge LC - MakeCode Arcade, CircuitPython, or Arduino

[Adafruit PyBadge LC - MakeCode Arcade, CircuitPython, or Arduino](https://www.adafruit.com/product/3939)
What's the size of a credit card and can run CircuitPython, MakeCode Arcade or Arduino even when you're on a budget? That's right, it's the&nbsp; **Adafruit PyBadge LC!** &nbsp;We wanted to see how much we could cram into a ​3 3⁄8 × ​2 1⁄8 inch...

Out of Stock
[Buy Now](https://www.adafruit.com/product/3939)
[Related Guides to the Product](https://learn.adafruit.com/products/3939/guides)

## Related Guides

- [Adafruit PyBadge and PyBadge LC](https://learn.adafruit.com/adafruit-pybadge.md)
- [Introducing Adafruit PyGamer](https://learn.adafruit.com/adafruit-pygamer.md)
- [Trash Panda 2: Garbage Day](https://learn.adafruit.com/trash-panda-2-dumpster-dive.md)
- [PyGamer NeoPixel Controller](https://learn.adafruit.com/pygamer-neopixel-controller.md)
- [Bounce - an accelerometer game in Arduino for PyGamer and PyBadge](https://learn.adafruit.com/bounce-an-accelerometer-game-in-arduino-for-pygamer-and-pybadge.md)
- [Next Level MakeCode Arcade Games](https://learn.adafruit.com/next-level-makecode-arcade-games.md)
- [PYOA for PyGamer/PyBadge - Adding Cursor Support to CircuitPython](https://learn.adafruit.com/cursor-for-circuitpython.md)
- [PyBadger Event Badge](https://learn.adafruit.com/pybadger-event-badge.md)
- [Trash Panda: The Game](https://learn.adafruit.com/trash-panda-the-game.md)
- [Re-MakeCode the Classics: Py Hunter](https://learn.adafruit.com/re-makecode-the-classics-spy-hunter.md)
- [CircuitPython Turtle Graphics](https://learn.adafruit.com/circuitpython-turtle-graphics.md)
- [Re-MakeCode the Classics: Arkanoid](https://learn.adafruit.com/re-makecode-the-classics-arkanoid.md)
- [MLX90640 Thermal Camera with Image Recording](https://learn.adafruit.com/mlx90640-thermal-image-recording.md)
- [Making a Name Tag in MakeCode Arcade](https://learn.adafruit.com/making-a-name-tag-in-makecode-arcade.md)
- [No-Touch Hand Wash Timer for Circuit Playground Express and CLUE](https://learn.adafruit.com/no-touch-hand-wash-timer-for-cpx-and-clue.md)
- [USB SNES Gamepad](https://learn.adafruit.com/usb-snes-gamepad.md)
- [Cupcade: the Raspberry Pi Micro Arcade Cabinet](https://learn.adafruit.com/cupcade-raspberry-pi-micro-mini-arcade-game-cabinet.md)
