# New Ideas and Help with Getting used to Blocks

I have just started using Snap! and I need some help combining blocks. I was never an excellent programmer on Scratch (I was relatively good at vector art) but here, it actually looks more simple because there is less emphasis on using variables, unlike Scratch, where there is no clone block that can fit in equations, and there is no "url: " block. (I love the url block update, by the way.) I just need a little more help getting used to Snap! and it's blocks.
Another short thing I need help with is finding Snappers (people on Snap!) and how to search for them.

most blocks have a right-click>help menu that tells you more about the block.

What exactly do you need help with?

Id be happy to assist!

I am also quite new from Scratch. Snap has additional blocks compared to Scratch. And there are more blocks on Snap. My Advice is to get used to the blocks you already know, then, when you are ready, you can move on to more blocks you can get used to. I hope this advice helps!

Well, first of all, welcome to Snap!, @roboticisaac and @puppetia!

From the examples you give, I'm going to read your mind (that's what good teachers do) and guess that what you really need is not so much learning specific blocks as more practice using functions (the round reporters and the hexagonal predicates ). You'll find the specific blocks as you need them, or just read the Reference Manual.

Because you speak of the "clone block that can fit in equations," I'm sure you know the idea, but I'm going to say it anyway:

The way to build complex behavior with commands is to put one underneath another to make a script (also called a stack). Instead, the way to build complex behavior with functions is to use one as input to another. I'm pretty sure you're comfortable doing that with arithmetic functions:

You can do the same with any functions:

So you just need to practice building expressions using composition of functions, which is the name for using one function as input to another.

You might not know that in Snap! you can search for blocks in the palette by typing control-F and then some characters in the block name you're looking for:

One of the central features of Snap! is that you can make your own custom function blocks using the button:

Okay, I have more to say, but it's time for lunch...

another major thing is that lists are first-class.
this means reporters can report them, and there are no dedicated lists like scratch lists.
you can also put lists inside of other lists to make a n-dimensional array.

if you want something like scratch lists, you can just set a variable to a list

oh yeah, and to generate pictures like this, right-click a script/block and select "script pic" or "result pic"

Okay in particular what things are you confused about, just name them

Yes, this helped a lot! If you have anything else to tell me, I'm all ears! I'm more familiar with the Scratch functions, so getting used to these blocks is quite a bit different and more complex, but you don't have to make as many variables like Scratch. Example: There is no "clone" block that can fit in a function (by equations, I meant functions) in Scratch, so this feature in Snap! is much better. Oh, and by the way, do I call you Professor BH?

Well, I'm more confused about how all of these function blocks work (forgive my rushed discussion). They are a bit more complex than that of Scratch.

Oh sure I can help.
I’m making a tutorial project rn but if you have anything like a specific block then lmk and I can answer it now

Yes, this is a good idea! I'm thinking about moving away from Scratch in order to get more used to coding (I overall like the layout of Snap! a bit better) and use my "amazing" art skills on Scratch to Snap! My most active account on Scratch is @DrawsScratch, where I am here too.

Well, some of the newer functions blocks (by newer, I mean different from Scratch). And do I know you on Scratch?

So already existing scratch blocks that work diffrent in snap?

if you see an arrow next to a block that means you can add inputs to it like so

You can broadcast messages with data

If you see a thing that’s like that “data” part, that’s actually a script variable. If you want I could give you more info about those but just know they act like a sprite only variable that doesn’t exist past the script it’s in

Okay, I understand. When will your tutorial come out?

When it’s done. Hopefully soon

Okay! I'll see it if you alert me about it! Now, back to learning! How do I use the "clone" function block effectively? And by the way, I love people's grammar here much better than Scratch where they talk like this "ho r u?"

First off be wanted clones in snap can be somewhat iffy and laggy.

I also forgot to mention you use the warp block to do run without screen refresh

The “a new clone of (sprite)” block is a little advanced but I’ll try my best to explain it in the tutorial but it requires knowledge of other blocks to use it

Okay. . . I've never took computer engineering before, so I'm a little knew to everything.

I just tried making a project with music in it, and it completely shut down my computer! I don't know what happened, but it wouldn't work.

Here’s the tutorial Snap! Build Your Own Blocks

If you want one for lists or make a block lmk

Make a block will be interactive so it will be more educational