If you get 3 points...
Scratch allows new user-defined blocks that consist of a sequence of instructions. These abstractions allow you to create simple programs to read, program and maintain. Here's an example:
when green flag clicked
clear
go to x:(-200) y:(40)
set pen color to [#FFA500]
pen down
move (100) steps
pen up
wait (1) secs
go to x:(-200) y:(0)
set pen color to [#FFA500]
pen down
move (200) steps
pen up
This Scratch project draws two orange lines of different length on the screen. Rather than repeat the code 2 times, as shown in the example, you can define a 'DrawOrange' block consisting of blocks that paint an orange line on the screen and that you can tell what is the length of the line. For this you go to the category 'More Blocks' and press the Create button a block:
define PaintOrange(length)
set pen color to [#FFA500]
pen down
move (length) steps
pen up
Having defined the block 'PaintOrange' it can be used in any program of the project, as we see below:
when green flag clicked
clear
go to x:(-200) y:(40)
PaintOrange(100):: custom
wait (1) secs
go to x:(-200) y:(0)
PaintOrange(200):: custom
In this way, we avoid repeating code, which makes our projects easier to program and maintain. As can be seen, the first time the block is used DrawOrange prompted a length of 100 steps, whereas the second time length is 200 steps.