# Scratch

It’s time to choose your own adventure! Your assignment, quite simply, is to implement in Scratch, at scratch.mit.edu, any project of your choice, be it an interactive story, game, animation, or anything else, subject only to the following requirements:

• Your project must use at least two sprites, at least one of which must not be a cat.
• Your project must have at least three scripts total (i.e., not necessarily three per sprite).
• Your project must use at least one conditional, at least one loop, and at least one variable.
• Your project must use at least one custom block that you have made yourself (via Make a Block), which must take at least one input.
• Your project should be more complex than most of those demonstrated in lecture (many of which, though instructive, were quite short) but it can be less complex than Oscartime and Ivy’s Hardest Game.

To meet these requirements, your project should probably use a few dozen puzzle pieces overall. And your code should ideally be not only correct but also well-designed. If one of your scripts is getting a bit long, try to break it up into multiple scripts (each of which does something specific). And try to leverage “abstraction” where possible: if you can imagine giving a descriptive name to a sequence of blocks (e.g., meow), those could probably be moved to a custom block!

If you’d like some inspiration from past students, here are just a few:

You might find these tutorials or starter projects helpful. And you’re welcome to explore scratch.mit.edu for inspiration. But try to think of an idea on your own, and then set out to implement it. However, don’t try to implement the entirety of your project all at once: tackle one piece at a time, just as we did in lecture. In other words, take baby steps: write a bit of code (i.e., drag and drop a few puzzle pieces), test, write a bit more, test, and so forth. And select File > Save now every few minutes so that you don’t lose any work!

If, along the way, you find it too difficult to implement some feature, try not to fret; alter your design or work around the problem. If you set out to implement an idea that you find fun, odds are you won’t find it too hard to satisfy the above requirements.

Alright, off you go. Make us proud!

## How to Submit

### Step 1 of 2

Submit this form. Note that you will not be able to complete Step 2 until you do, so be sure to do this first!

### Step 2 of 2

This step assumes that you’ve downloaded your project as a file whose name ends in .sb3.

1. Go to CS50’s Gradescope page. If you get a message that says “You are not authorized to access this page,” be sure you completed the Gradescope part of the setup form in Step 1!
2. Click “Problem Set 0: Scratch”.
3. Drag and drop your .sb3 file to the area that says “Drag & Drop”. (Be sure that your file ends with .sb3! If you upload a file with a different extension, the autograder likely will fail when trying to run it, and ensuring you have uploaded files with the correct filename is your responsibility!)