From Test-Scratch-Wiki

Translate: - English - Türkçe - 中文 

Özel Bloklar birinin kendi proglamlama bloklarını yapmasını sağlar. Özel bloklar kullanılarak, büyük, benzer kodlar bir yeniden kullanılabilir blok olur. Bazı diğer programlama dillerinde, özel bloklara "prosedürler," "fonksiyonlar," veya "metodlar" denir. Bu blok aynı blok sırasını farklı kod bölümlerinde tekrar etmeden tekrar kullanmak için kullanışlıdır.

Recursive factorial procedure — Scratch 2.0 alpha.

Scratch'te Özel Bloklar

Özel bloklar "Bloklarım(Scratch 2.0'da Özel Bloklar)" paletinde bulunur.[1] Bu bir "atlama" bloğu örneğidir:

tanımla atla (ne kadar uzak :: custom-arg)
y'yi (ne kadar uzak :: custom-arg) arttır :: motion
(.5) saniye bekle :: control
y'yi ((0) - (ne kadar uzak :: custom-arg) :: operators) arttır :: motion

yeşil bayrak tıklandığında
atla (10) :: custom
(20) adım git :: motion
atla (20) :: custom

The palette starts off empty and just shows a "Make a Block" button (similar to the "Make a Variable/List" buttons in the data palette). For each Define block (whether from the make a block button, or by dragging in from the backpack or another sprite), a custom block is shown in the palette. The custom block is only available to the sprite that has the Define block.[2]

Custom blocks can only be stack blocks, not reporters or booleans (though they may be added in the future).[3] They support recursion, so blocks can call themselves (This does not stop the current block executing, unlike broadcasts). This allows for things like creating fractals and finding the factorial of a number.

Creating a Custom Block

To create a custom block, open the "More Blocks" category and press the "Make a Block" button. A new block menu will open, where you can name your custom block. By pressing "Options", you can add string, number, and boolean inputs. You can also add more label text to the block, or make it run without screen refresh. After naming and adding arguments, a Define block is created. A custom block's settings can later be changed by right-clicking on its Define block or the custom block itself and selecting "edit". You can define what your custom block does by snapping a script to its Define block, as shown below.

(360) derece sağa dön :: custom

tanımla  (miktar :: custom-arg) derece sağa dön
(miktar :: custom-arg) defa tekrarla 
  _ derece saat yönünde dön :: control
end

Scratch 1.x Workaround

yeşil bayrak tıklandığında
[ne kadar uzak v] , [50] olsun :: variables
[atlama v] haberini sal ve bekle :: events

[atlama v] haberi gelince :: events
y'yi (ne kadar uzak) arttır :: motion
(.5) saniye bekle :: control
y'yi ((0) - (ne kadar uzak) :: operators) arttır :: motion

Procedures in BYOB/Snap!

Snap!, previously called BYOB (Build Your Own Blocks), is a Scratch modification that allows procedures. Snap!'s procedures allow all 3 types of blocks, with arguments, and also recursion.

See Also

References

  1. http://blog.scratch.mit.edu/2012/02/scratch-20-project-page-and-project.html
  2. http://scratchforums.blob8108.net/forums/viewtopic.php?id=59483&p=4#p719181
  3. http://scratched.media.mit.edu/discussions/scratch-20/custom-block-types