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

Palet boş bir yer ile başlar ve sadece bir "Bir Blok Oluştur" dügmesi gösterir (bu "Değişkenler" paletindeki "Bir Değişken/Liste Yap" düğmesine benzer). Her "Tanımla" bloğu için, bir özel blok palette gösterilir. Bu özel blok sadece özel bloğun "Tanımla" bloğu olan kukla için vardır.[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