This is a survival simulator.
A bunch of food spawns in then black squares. The black squares will stop spawning after a few seconds. If a black square goes to long without food it will die. If it gets extra food it will create another square, with a chance that that square will be different. It could be smarter, dumber, faster, slower.
Controls: none. Just press flag with Java script extensions enabled
Will they go extinct. 😮
Use this project to make your own if you want, just credit me. We’re trying to get someone to the finish line. https://snap.berkeley.edu/project?user=asnapcoder&project=YOU%20VOTE%20WHO%20WILL%20WIN
All survival simulators are based off of primers videos please check out his channel especially if you like stuff like this.
https://www.youtube.com/c/PrimerLearning/videosdata:image/png;base64,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 is a survival simulator.
A bunch of food spawns in then black squares. The black squares will stop spawning after a few seconds. If a black square goes to long without food it will die. If it gets extra food it will create another square, with a chance that that square will be different. It could be smarter, dumber, faster, slower.
Controls: none. Just press flag with Java script extensions enabled
Will they go extinct. 😮
Use this project to make your own if you want, just credit me. We’re trying to get someone to the finish line. https://snap.berkeley.edu/project?user=asnapcoder&project=YOU%20VOTE%20WHO%20WILL%20WIN
All survival simulators are based off of primers videos please check out his channel especially if you like stuff like this.
https://www.youtube.com/c/PrimerLearning/videos doPasteOn doCutFromSwitches to costume “text” at a certain “size”
Snap’s block from the ‘text to costume’ pack in the library.de:Kostüm aus Text _ Größe _
pt:um traje com o texto _ de tamanho _
ca:vestit amb el text _ i mida _
A72Basically puts a square around a costume.
Edit this block for a how to use.§_costumesMenu2002Use this block to make "clickable" buttons:Switches to a costume created by a reporter.Switches to costume “text” at a certain “size”
A block version of snap’s block from the ‘text to costume’ pack in the library.Reverses the visibility.
If it is visible or shown it will hide.
If it is not visible or hidden it will show.de:fange _ _
ca:agafa _ _
es:atrapar _ _
fr:attrape _ _
pt:captura _ _
contde:wirf _ _
ca:llança _ _
es:lanzar _ _
fr:lance _ _
pt:lança _ _
catchtagThis is a breakpoint block, to be used in debugging.
The Boolean input specifies the condition under which
the program should pause. (Use True for an unconditional breakpoint.) The intent is that the script should have
SHOW VARIABLE blocks for the process's local variables.
After the pause, this block automatically hides all temporary variables.de:falls _ dann _ und pause $pause-1-255-220-0
ca:si _ fes _ i atura-ho tot $pause-1-255-220-0
es:si _ haz _ y páralo todo $pause-1-255-220-0
fr:si _ faire _ et mettre tout en pause $pause-1-255-220-0
pt:se _ , então _ e faz pausa em tudo $pause-1-255-220-0
This block does nothing.
Use it when you are calling a reporter
for its side effect and don't care about
its return value.de:ignoriere _
ca:ignora _
es:ignorar _
fr:ignore _
pt:ignora _
Call f(f(f(...(f(x))))) n times where the three input slots are n, f, and x from left to right. The # variable can be used inside f to represent how many times f has been called.pt:o resultado de _ invocações em cascata de _ com argumento inicial _ _
ca:en cascada _ vegades _ _ _
Call f(f(f(...(f(x))))) until condition is true, where the three input slots are condition, f, and x from left to right. The # variable can be used inside f or condition to indicate how many times f has been called.pt:o resultado da invocação em cascata até que _ de _ com argumento inicial _ _
ca:en cascada fins _ _ _ _
Returns the function x↦f(g(x)) where f and g are the two inputs.pt:a composição de _ com _
ca:composa _ _
Like the built-in REPEAT UNTIL block, except that the ending condition is not tested until the script has been run the first time. So the script is run at least once.pt:repete _ até que _ $loop-0.7
ca:repeteix _ fins _
Run the script repeatedly, as long as the given condition is true. Runs the script at least once before testing the condition.pt:repete _ enquanto _ $loop-0.7
ca:repeteix _ mentre _
Runs the script repeatedly, as long as the condition is true. Tests the condition before the first time the script is run. Like the built in REPEAT UNTIL except that in this block the condition must be true, not false.pt:enquanto _ , repete _ $loop-0.7
The primitive FOR block uses an implicit step of ±1 depending on which of the starting and ending values is larger. This version allows you to provide an explicit step value. If the sign of the step input is incompatible with the ordering of the starting and ending values, the script will not be run at all.pt:para _ de _ com passo _ a _ _ $loop-0.7
ca:per _ = _ incrementant _ fins _ _
1110Provides LOOP as a function of one input that runs
the body of the LET with A set to the function input,
so the body can run itself recursively.
See COPY block in Variables for an example of use.pt:tendo _ o valor inicial _ , executa _ definido como _
ca:fes que _ sigui _ al _ _
new valueAllows changing global settings programmatically.
This block is for Boolean (checkbox) settings; use
SET VALUE for numeric or text values.
Eisenberg's Law: Anything you can do from the user interface you should be able to do in your program, and vice versa. This library is just a beginning; there are many UI controls outside of the Settings menu.pt:altera o valor da configuração _ para _
ca:fixa el paràmetre _ a _
Presentation mode
Retina display support
Long form input dialog
Plain prototype labels
Input sliders
Execute on slider change
Clicking sound
Turbo mode
Flat design
Keyboard editing
Visible stepping
Thread safe scripts
Prefer smooth animations
Flat line ends
Codification support
Inheritance support
Hyper blocks supportAllows changing global settings programmatically.
This block is for numeric or text settings; use
SET FLAG for Boolean (checkbox) values.
Eisenberg's Law: Anything you can do from the user interface you should be able to do in your program, and vice versa. This library is just a beginning; there are many UI controls outside of the Settings menu.pt:altera o valor da configuração _ para _
ca:fixa el valor de _ a _
Project notes
Project name
Language
Zoom blocks
Stage size
Stage scale
Visible palettede:sprich _ mit _ Aussprache _ und Höhe _ Geschwindigkeit _
pt:fala _ na língua _ _ com tom _ e velocidade _
ca:digues _ amb accent _ _ to _ i velocitat _
Hello, World!en-USالعربية=ar
Български=bg
বাংলা=bn
Català=ca
Català - Valencià=ca-VA
Česky=cs
Deutsch=de
Dansk=dk
Ελληνικά=el
English-American=en-US
English-British=en-GB
Esperanto=eo
Español=es
Eesti=et
Euskara=eu
suomi=fi
Français=fr
Galego=gl
Hrvatski=hr
Magyar=hu
Interlingua=ia
Bahasa Indonesia=id
Italiano=it
日本語=ja
にほんご=ja-HIRA
ಕನ್ನಡ=kn
한국어=ko
Malayalam=ml
Nederlands=nl
Norsk=no
Polski=pl
Português=pt
Português do Brasil=pt-BR
Român=ro
Русский=ru
Slovenščina=si
svenska=sv
Tamil=ta
Telagu=te
Türkçe=tr
Українська=ua
简体中文=zh-CN
繁體中文=zh-TW11de:sprich _ mit _ Aussprache _ und Höhe _ Geschwindigkeit _ und warte
pt:fala _ na língua _ _ com tom _ e velocidade _ , e espera
ca:digues _ amb accent _ _ to _ velocitat _ i espera
Hello, World!en-USالعربية=ar
Български=bg
বাংলা=bn
Català=ca
Català - Valencià=ca-VA
Česky=cs
Deutsch=de
Dansk=dk
Ελληνικά=el
English-American=en-US
English-British=en-GB
Esperanto=eo
Español=es
Eesti=et
Euskara=eu
suomi=fi
Français=fr
Galego=gl
Hrvatski=hr
Magyar=hu
Interlingua=ia
Bahasa Indonesia=id
Italiano=it
日本語=ja
にほんご=ja-HIRA
ಕನ್ನಡ=kn
한국어=ko
Malayalam=ml
Nederlands=nl
Norsk=no
Polski=pl
Português=pt
Português do Brasil=pt-BR
Român=ro
Русский=ru
Slovenščina=si
svenska=sv
Tamil=ta
Telagu=te
Türkçe=tr
Українська=ua
简体中文=zh-CN
繁體中文=zh-TW11Takes a snapshot with the webcam and reports it as a new costume, or zero if the user cancels.pt:$camera a imagem actual do vídeo
Completes the action at turbo speed.pt:executa no modo turbo _
generate a list of samples representing a sine wave at the given frequency, duration and sample ratept:as amostras de som com _ Hz de _ s amostrado a _ Hz
ca:_ Hz durant _ segons amb mostreig de _ Hz
440a 55=55
a 110=110
a 220=220
a 440=440
a 880=880
a 1760=1760
a 3520=352014410022.05 kHz=22050
44.1 kHz=44100
88.2 kHz=88200
96 kHz=96000pt:π
pt:_ radianos em graus
ca:graus de _ radiants
->
<-0.5<-pt:o som _
ca:so de nom _
§_soundsMenuquickly plot the samples of a sound, a list of samples (single channel), or a list of lists (multiple channels) to the stage at a lower resolution.pt:desenha o gráfico do som _
ca:dibuixa el so _
§_soundsMenu1offset-2records an audio snippet and reports it as a new sound, or zero if the user cancelspt:$circleSolid-1-255-0-0 uma nova gravação
ca:$circleSolid-1-255-0-0 enregistra
pt:a nota com _ Hz
ca:nota de _ Hz
440pt:a frequência da nota _
ca:freqüència (hz) de la nota _
69pt:o nome da nota _
ca:nom de la nota _
69The data base vars are extremely important for moving variables and other values from scene to scene.
The key acts like the name of the variable.
Original blocks are from the library under database. All database vars are stored in the browser not cloud.ca:desa clau: _ amb valor: _ al navegador
The data base vars are extremely important for moving variables and other values from scene to scene.
Reports all saved vars in database.
Original blocks are from the library under database.
All database vars are stored in the browser not cloud.ca:dades desades al navegador
The data base vars are extremely important for moving variables and other values from scene to scene.
The key acts like the name of the variable. Removes that variable.
Original blocks are from the library under database. All database vars are stored in the browser not cloud.ca:esborra clau: _ del navegador
The data base vars are extremely important for moving variables and other values from scene to scene.
Clears all vars saved in database.
Original blocks are from the library under database. All database vars are stored in the browser not cloud.ca:esborra dades del navegador
The data base vars are extremely important for moving variables and other values from scene to scene.
The key acts like the name of the variable. Reports the database var with the key name. Reports false if key is not found.
Original blocks are from the library under database. All database vars are stored in the browser not cloud.ca:obté valor de clau: _ al navegador
Takes a text string as input, and reports TRUE if the string has no characters in it of any kind, otherwise false.pt:a palavra _ está vazia
ca:paraula buida? _
0Takes a text string as input, and reports TRUE if the input contains no characters other than spaces (therefore, no words when the string is considered as a sentence), otherwise FALSE.pt:a frase _ está vazia
ca:frase buida? _
Like JOIN, takes any number of words (text strings) and reports a sentence with its inputs concatenated, but inserts a blank space between the inputs.
Consider using SENTENCE (Lists palette) instead.de:füge Wörter zusammen _
ca:uneix les paraules _
es:unir las palabras _
fr:fusionne les mots _
pt:uma frase com as palavras _
firstbffirst111bfTakes a sentence in list form and reports the sentence as a text string.
Let me add to snap’s description and say that it adds spaces to each item
Example:
List:
(
hi
there
Bob
)
=
hi there Bob (see spaces)
de:Liste $arrowRight Satz _
ca:llista $arrowRight frase _
es:lista $arrowRight frase _
fr:liste $arrowRight phrase _
pt:uma frase com as palavras em _
Takes a sentence in text string form and reports the sentence as a list of its words.de:Satz $arrowRight Liste _
ca:frase $arrowRight llista _
es:frase $arrowRight lista _
fr:phrase $arrowRight liste _
pt:uma lista com as palavras da frase _
report a list in which each item is one letter from the input wordde:Wort $arrowRight Liste _
ca:paraula $arrowRight llista _
es:palabra $arrowRight lista _
fr:mot $arrowRight liste _
pt:uma lista com os caracteres da palavra _
join all the items of the input list
into a single word, and report itde:Liste $arrowRight Wort _
ca:llista $arrowRight paraula _
es:lista $arrowRight palabra _
fr:liste $arrowRight mot _
pt:uma palavra com os caracteres em _
SENTENCE is the main constructor for sentences, represented
as lists of words. It takes zero or more inputs, each of which can
be either a list or a text string. If a list, the input is assumed to be
a list of words. If a text string, it is converted to a list of words using
SENTENCE→LIST. Then all the lists of words are appended to form a new list of words.
If the inputs are lists of lists rather than lists of words, SENTENCE,
like APPEND, does only one level of flattening, reporting a list of
all the items of all the input lists.ca:frase _
Helper function for word/sentence library.
Reports its first input, unless that input is empty, in which case it gives its second input as an error message.Takes a text string as input, and reports the first character in the string.pt:a primeira palavra de _
ca:primera lletra de _
Reports the character position (starting from 1) of the beginning of the first input string inside the second input string.
If it's not found, reports 0.pt:a posição de _ em _
ca:posició de _ en _
Reports the portion of the first input (string) starting at the position given by the second input (counting from 1, like LETTER n OF) and ending at the position given by the third input (also counting from 1). If the third input is empty, reports the portion from the first position to the end of the string.
If a position number is negative, counts from the end backward, so -1 is the last character, -2 is the next to last, etc.pt:o texto de _ entre as posições _ e _ , inclusive
ca:part del text _ des de la posició _ fins _
Reports the input text with lower case letters instead of capital letters in the input. Uses the user's locale's rules for case conversion.pt:em minúsculas _
ca:_ a minúscules
ca:comparacions ignorant majúscules?
err_resetThe first input is a shape list as in
SHAPE OF. The output is an array with those dimensions containing the atomic items of the second input,
repeating values if more are needed.Reports the greater of its two inputs. Works on strings too.111Takes a multidimensional array, and
reports an array whose dimensions
are reversed (as reported by
SHAPE OF). In the case of a
two-dimensional array, does the usual transposition of rows and columns.Reverses the order of the (toplevel) items of the input.
If the input is a matrix, this means it reverses the order of the rows, which is a reflection through a horizontal axis, as the ⦵ symbol suggests.Computes a generalized matrix multiplication.
In normal matrix multiplication, each cell of the result
is computed by multiplying individual numbers within
a row of the left input and a column of the right input,
and then adding those products. In APL terms this is
+.× ("plus dot times")
Any dyadic functions can replace addition and multiplication in this algorithm; a common case is
∨.∧ ("or dot and")111111Reports the smaller of its two inputs.choicesindexchoicesReports 1 if the input is positive,
0 if the input is zero,
or -1 if the input is negative.0falseReports True if the left input is
less than or equal to the right input.
Reports a Snap! Boolean, not an integer 0 or 1.Reports True if the left input is
greater than than or equal to
the right input.
Reports a Snap! Boolean, not an integer 0 or 1.Reports False if its inputs are equal;
reports True if its inputs are not equal.
The inputs can have any non-list values.
(Lists are hyperized.) If the inputs are
Booleans (True/False or 1/0), this is
also the exclusive-or function.reports True iff the input is 0 or False.Reports a Snap! Boolean False if the input
is False or 0; reports True otherwise.0Turns list of list of ... a single scalar (e.g., ((((x)))) ) into just the scalar. Error if called with anything else.Make scalar called with non-singleton input If the input is a positive integer, reports a list of the numbers
from 1 to that input. (If the input is 0, reports an empty list.)
If the input is a list of positive integers, reports an array with
the shape specified by the input (as in ⍴ reshape) in which
each item is a list of the indices of that item in the array
(so technically the shape has one more dimension
than the input, whose size is the size of the input).
If the input is a list that includes 0, the result is an array whose shape is the part of the input list before the 0, in which every element is empty. If you'd like some other value in every element, MD-MAP a constant function over the result.
For list inputs, the size of the result grows very quickly, more or less the factorial of the size of the input. Snap! will not attempt to compute a result bigger than a few million atomic items.
⍳(⍳ 9) will work (≈ 3 million atoms) but ⍳(⍳ 10) will give an error.If the rank of the left input is one more than the rank of the right input,
reports the index of the right input in the left input, or if not found,
reports one more than the length of the left input.
If the rank of the left input is equal to the rank of the right input,
reports a vector of the indices of the items of the right input
in the left input (mapping this function over the right input).
If the rank of the left input is more than that of the right input by 2 or more,
reports a vector, the location of the right input in the left in each dimension.
It is an error if the rank of the left input is less than that of the right input.1resultThis isn't an APL function, although it's related to the outer product.
It takes any number of lists, and reports a list of all possible tuples with one item from each of the lists. The length of the result is the product of the lengths of the inputs.
The result gets very big very quickly. Snap! will refuse to do this computation if the result would be more than a few million atomic items. (crossproduct (⍳(⍳9))) makes about 3 million atomic items; (crossproduct (⍳(⍳10))) gives an error message.Reports an array of Booleans the same shape
as the left input, indicating which of the atoms
in the left input appear anywhere in the right
input.
(The structure of the right input doesn't matter.)Like append, but:
A scalar input is treated as an array the same shape as the other input except that the last item of the shape is 1.
If the two inputs are of different ranks,
the function is mapped over the larger ranked input.
Catenate adds new columns, by appending to each row.If the input is a nesting of length=1 lists, which
APL treats as a scalar (the innermost item)
for many purposes, report that innermost scalar.
Otherwise, report the input as is.
Exposing this block for users is important because Snap! /does not/ treat such a nesting
as a scalar, so you might need to use this in
translating an APL program to Snap!.
(But the functions in the APL library already use
this block as needed.)Reports a vector of indices of the items of the input, in order of the values of the items, so that
item (grade up (foo)) of (foo)
reports the items in sorted order, smallest to largest. For a matrix, sorts the rows based on their first items, or if those are equal, based on their second items, etc.Compares two vectors for sorting.
Compare first items; if those are equal compare second items; etc.1111Reports a vector of indices of the items of the input, in order of the values of the items, so that
item (grade down (foo)) of (foo)
reports the items in sorted order, largest to smallest. For a matrix, sorts the rows based on their first items, or if those are equal, based on their second items, etc.The left input must be a vector of Booleans
(either Snap! form or APL form); the right input must be an array whose first dimension is equal to the length of the left input. The block reports an array of the same rank as the right input, containing only those items (rows, for a matrix) for which the corresponding Boolean is True (or 1).The left input must be a vector of Booleans
(either Snap! form or APL form); the right input must be an array whose last dimension is equal to the length of the left input. The block reports an array of the same rank as the right input, containing only those items (columns, for a matrix) for which the corresponding Boolean is True (or 1).Turns a row-wise (in Lisp terminology) function
into a column-wise one.Reverses the order of the columns of the input, which is a reflection through a vertical axis, as the ⏀ symbol suggests.This function has two names because there are two ways
to understand it.
Lisp way: A matrix is a list of rows. This block turns it into a list of columns, and combines the numbers in each column, producing one value for the entire column.
APL way: A matrix is made of vectors. This block takes each row as a vector, and does vector arithmetic on the rows, producing one row as the result.Like append, but:
A scalar input is treated as a vector
of length 1.
If the two inputs are of different ranks,
the function is mapped over the larger ranked input.
Catenate vertically adds new rows, by appending to each column.A hyperblock version of JOIN. The regular JOIN isn't hyperized because it can accept a list as input, representing it as text.A positive left input selects the first n items of the right input.
A negative left input selects the last abs(n) items
of the right input.
If the right input is a matrix, a numeric left input selects rows;
the left input may also be a two-item vector, in which case
the first number is applied to the rows
and the second number is applied to the columns.
Similarly for higher-dimension arrays. 10valueindexA positive left input selects all but the first n items of the right input.
A negative left input selects all but the last abs(n) items
of the right input.
If the right input is a matrix, a numeric left input selects rows;
the left input may also be a two-item vector, in which case
the first number is applied to the rows
and the second number is applied to the columns.
Similarly for higher-dimension arrays. 0valueindex1Takes a (possibly deep) list as input,
and reports a human-readable text form
of the list (namely, Lisp notation).
Will not work on circular lists.()Takes as input a function of N inputs and N lists.
The function is called with item 1 of all the lists as its inputs, with item 2 of all the lists as its inputs, and so on. (The lists should all be the same length.)Computes logarithms in any base.
The base is the left input. It's usual in APL that if there's a main data input and some sort of control input, the latter comes on the left. This is because APL syntax, unless you use parentheses, groups computations from right to left.
APL has a monadic version of this function that computes natural logs (log to the base e).Computes the number of combinations of right-input things taken left-input at a time, otherwise known as the elements of Pascal's triangle. This block shares the ! symbol with the monadic factorial function, because the formula for computing this function uses factorials.The factorial of a positive integer n is the product of the integers from 1 to n.
In real APL, the domain of this function is extended beyond integers to compute the gamma function.Acts just like the function selected from
the pulldown menu, but hyperized, so
comparing two equal-sized lists reports
a list of the same length as the inputs,
with the results of item-by-item comparisons.﹦﹦
≠
identical to
and
or
is _ a _?Reports the greatest common divisor of its inputs.
If the inputs are values in {0,1} then this is equivalent to the logical OR of the values, with 0=False, 1=True. Hence the APL symbol ∨.
Also accepts Snap! Booleans as inputs.Reports the least common multiple of its inputs.
If the inputs are values in {0,1} then this is equivalent to the logical AND of the values, with 0=False, 1=True. Hence the APL symbol ∧.
Also accepts Snap! Booleans as inputs.Report a list with left-input random integers in the range 1 to right-input.
No number appears more than once
in the result. The left input must be less than or equal to the right input.Given two arrays A and B, reports an array whose dimensions are
APPEND(SHAPE OF (A), SHAPE OF (B))
in which each atomic item of the result is computed by applying the dyadic function input to an item of A and an item of B.11This block deletes all the variables with the names given (inside input list).
Each name will make only one variable deletion, and this will be the variable found following the scope order: 'script' -> 'sprite' -> 'global'.
If we have a "testing" sprite variable and also a "testing" global one, deleting "testing" will delete only the sprite one (Yes! we can also do "delete var (testing, testing)" to delete both.
If one variable does not exists (in any scope) an error happens, stopping block action in that point. You can check it before with the "does var (name) exists?"block. pt:remove as variáveis _
ca:esborra les variables _
es:borrar variables _
de:löschen var _
This block sets the given value (last input) to the variable named with the name givent (var input).
It looks for that variable following the scope order 'script' -> 'sprite' -> 'global' (the first match it finds).
If that variable does not exist (in any scope) an error happens, stopping their script. You can check it before using the "does var (name) exists?" block. ca:assigna a _ el valor _
es:asignar a _ el valor _
pt:altera _ para _
de:setze var _ auf _
§_getVarNamesDictThis block reports the value of the variable with the name given.
It looks for that variable following the scope order 'script' -> 'sprite' -> 'global' (the first match it finds).
If that variable does not exist (in any scope) an error happens, stopping their script. You can check it before using the "does var (name) exists?" block. pt:o valor de _
§_getVarNamesDictThis block turns on (show) the watcher view on stage (if it was not already activated) of the variable with the given name (slot input).
It can only access to the closest variable scope (if there different variables with the same name in different scopes) following the order 'script' -> 'sprite' -> 'global'.
No errors if that variable does not exist.ca:mostra la variable _
es:mostrar variable _
pt:mostra a variável _
de:zeige var _
§_getVarNamesDictThis block turns off (hide) the watcher view on stage (if it was not already activated) of the variable with the given name (slot input).
It can only access to the closest variable scope (if there different variables with the same name in different scopes) following the order 'script' -> 'sprite' -> 'global'.
No errors if that variable does not exist.ca:amaga la variable _
es:esconder variable _
pt:esconde a variável _
de:verstecke var _
§_getVarNamesDictReports the second x&y input list minus the first.
This is used for 2 item long lists.
Use this reporter with the point towards (list) block
Put the x&y location of the object that you want to look in a different direction in the first slot and the x&y of where you want it to look in the second input.Points towards the input witch must be a two item long list containing the x&y location you want to point towards.
Location must be from 0,0 so use the (list) -> (list) reporter in the slot.a,bab00Does multiple functions. Functions that do not use item 2 are adjusted by item 2.all but first letter of
all but first word of
all but last word of
all but last letter of
first word of
last letter of
last word of
first word of
position of __ in
text __ contains0text __ containsall but last word ofAll but last of empty sentence.all but first letter ofAll but first of empty word.all but first word ofq11q11all but last letter ofAll but first of empty word.first word oflast word ofLast of empty sentence.first letter oflast letter ofReports a stored value on the cloud.Old scriptStores a value on the cloud.Input duplicated (and joined) a certain number of times.
The values can be joined with a separator. Default is none.2.
,
:
;
/
-
(
)
€
SpaceSearch a lot of something.name
Id
Id-num
name&Idb1Set a hidden variable to a value.Reports the Hidden Variable.Runs the action at warp and turbo speed (don’t know if it actually makes it go faster than warp.pt:executa no modo turbo _
Experimental and does not work.Old scriptMakes a list using a clever system.Makes a list using a clever system.Does the same thing as “remove key” but with a list.db_remove(key)Does the same thing as “value from key” but for a list.
Note. The list key and normal key blocks are not interchangeable you cannot use a normal key block to change a list key.Used to convert true & false to text “true” & “false” and the other way around.
Designed to transport bools back and forth between database vars because they only accept text and numbers. But can be used for other applications.text to bool=TB
bool to text=BT
number to text=NT
text to number=TN
bool to number=BN
number to bool=NBBTTNNTBNNBUse this block as a guide to make your own different looking block. Press edit.trueUse this block to move objects at a “Speed” and if it touches a wall it will slowly move along the wall.
The first input is the speed.
The second input is the object used as the wall.
The third input is the costume to use as a hit box (leave blank if you are not using a hit box)
See code to see how it works it’s super easy.a§_objectsMenu§_costumesMenuReports the x&y of a object in a list
Leave blank for “myself” x&y§_objectsMenuInherit more than one thing.Location=L
Location and Direction=LD
Almost every thing=ELDEShows a pop up with a title and text.Item one of inputed list should be the new stage width and item 2 the new stage hight.Adds “input1”s costume to “input2”s costume list. Reports name of that costume to.§_objectsMenu§_objectsMenuCostumeNameLiterally all it does is changes that little logo in the upper left corner of the screen into the SciSnap one.
A lot of red gear and non red gear blocks came from the SciSnap2 pack in library.
WARNING THIS IS UNREVERSABLE THROUGH SCRIPTS
but it doesn’t really matter.Let me put it this way
Create a duplicate of “sprite(#)” and name the duplicate “name”§_objectsMenuActually deletes the specified sprite.§_objectsMenuThis should write to a file.
I have not tested it.Creates a new sprite with name:input1 (for info on the T/F toggle see bottom of page) costume:input3 rotation:input4
X&Y:input5(note. use the block input to tell it to go to a specific location) the last input is the draggable.
The first T/F toggle is input:2. If it is true: if there is any object with that name it will add (2) to it or (3),(4),(5) and so on. If input2 is false: you will end up with a bunch of objects with the same name and the block won’t function correctly.a,b,c,d,etruecostume§_costumesMenu§_directionDialMenuWhere I am=Here
Auto
Center
Mouse-Pointer=MP✅✅
⛔️
This object’s visibility=mine1ForFortrueHereForfalseForfalseForfalsemineSprite’s nameAdd a text to the server your currently in.
(Following all rules for the server)
Part of the “JGlobe Easy Server Blocks”aJoin in a server with a password as a rank. If you have already joined that server your rank will remain the same until promoted.
Part of the “JGlobe Easy Server Blocks”
Don’t look in here by the way, it’s so much code.aHost
Guest
MonitorEv|UserMonitorGuestServer joinedServer name: User I’d:User Rank:return Rank;1Guestreturn Rank;3Hostreturn Rank;2MonitorA error has occurred.StageThe name of the server you are currently in.
Part of the “JGlobe Easy Server Blocks”Creates a new server.
Note. This does not put you in the server or make you host. You still must use the “Join server” block to join it and become the host.
Part of the “JGlobe Easy Server Blocks”Lists the ABCs in different ways.
It actually turned out to be extremely useful in making this project.a,bLTUppercase={
List=UL
Text=UT
T e x t=U T
}
Lowercase={
List=LL
Text=LT
T e x t=L T
}UTU TLLLTL TAll this does is holds text.Change the rules for a server.
Currently this block changes these rules:
1.What will be next to a text when sent.
Part of the “JGlobe Easy Server Blocks”ClickThisUse user name before text=a
Use user name and time before text=b
Use time before text=c
Use user rank before text=d
Use user rank and time before text=e
Use user rank and user name before text=f
Use user rank and user name and time before text=g
Don’t use any thing before text=hThe number input is how many multilines the reporter will report.a,baCurrent rank on this server.
Part of the “JGlobe Easy Server Blocks”a,bbcdefgERROR: file does not existh:day10hour10minute10second10-MM -DD Time:::If you’re the host you can promote someone to something.
Part of the “JGlobe Easy Server Blocks”a,bHost=3
Monitor=2
Guest=1Gives a list of everyone who has joined the server.
Part of the “JGlobe Easy Server Blocks”The rank of “input” in the current server.
Part of the “JGlobe Easy Server Blocks”Clears something in a specific server.
Part of the “JGlobe Easy Server Blocks”Everything=1
People who have joined=2
Texts=323All the text in a server.
Part of the “JGlobe Easy Server Blocks”Bans someone from the server.
Part of the “JGlobe Easy Server Blocks”aBanedBaned|Gives a list of everyone who is banned from the server.
Part of the “JGlobe Easy Server Blocks”Adds “input1” to “input2”s costume list. Reports name of that costume to.a,b§_objectsMenuCostumeName§_costumesMenuStops half of an object from going off the screen. Basically a pixel of the object’s costume will never go off the screen.
The way it works is basically this: it finds the width of the object and subtracts half of that from the stage’s width (in a way) and picks random from that value to the same value but positive and repeats for the y.I was going to hide this block from you but I like it to much.
Make a duplicate of this block and change the coding of it, if you would like.
If the input name is already used by a sprite then it will add (2) if that is used then instead it will add (3) and so on.a,b1This block contains a bunch of functions.
Mostly made of blocks from snap’s library, so press edit on this block to get help on the individual blocks.
NOTE. Input 2 isn’t used sometimes.
NOTE. Input 3 is rarely used.aempty word?=1
join words=2
list -> sentence=3
sentence -> list=5
word -> list=6
list -> word=7
first letter of=8
substring of __ before __=9
substring of __ after __=10
position of __ in __=11
substring of __ from position __ to position __ inclusive=12
text __ contains __=13
to lowercase __=14
to uppercase __=15
__ scalar join __=16
__scalar (function) __={
equal=17a
not equal=17b
identical to=17c
and=17d
or=17e
is__a__=17f
}a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1bb1LTABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzb1LTABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzb1LTABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzb1LTABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzb1LTABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzb1LTABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzb1I don’t know about you but if there is one thing I absolutely hate it’s when I have a list that I want to be a number so I go get a join block but I haft to press the small arrow to turn it into a one slot join block. So I made this. A one slot join block. I am going to be using this block a lot.
Manly used for joining a list into one text.Not quite sure how to explain this block so just fiddle with it for a bit.
Reports “input1” min/max “input2”
Example: 5 min 3 = 5
Example2: 2 min 3 = 3 because it has to be a minimum of 3.MaxMin
MaxMinThe middle value must be in between the two outer values.
The middle value must be a minimum of value 1 and a maximum of value 2
Made using my min man max blocks put together.I created this block to “restructure” my “to uppercase” block because sometimes what the “to uppercase” reports is kinda messy this block organizes it.a,b,c§_objectsMenufalsetruetruefalsetrueThis block reports a number using binary code ( 1s and 0s )
Just like how a computer reads numbers using wires that have electricity or not ( true & false )
Feel free to look up “binary numbers” on the internet to learn more.
The first bool is 1 the second means 2 the third means 4 and the forth mean 8 and so on.
Example: If the first is false and the second is true and the third is true and the forth is false then that means the 2 & 4 are true so it will report 6.
Basically every bool is the last bool times 2. Here’s a chart.
B B B B B B B B
1 2 4 8 16 32 64 128
NOTE: The bools are backwards from actual binary.
Actual binary code:
B B B B B B B B
128 64 32 16 8 4 2 1
And every ‘true’ bool adds it’s value to the outcome
T=true F=false
My blocks:
FTTFTTFF or 01101100 = 54
Actual binary code:
FFTTFTTF or 00110110 = 54afalsefalsea,bfalsefalsea,bfalsefalse?falseJtruetrue§_getVarNamesDicta,bglobal
sprite
scriptvar_declare(scope, name)ALLVARStruefalseaClick the gear that is next to the cloud that is next to the file.
The gear up there yeah that one
📄☁️⚙️<-
Click it and press “Extension blocks”
then these primitives will appear in the variables section.
If you didn’t follow along just copy these. (Press edit to copy them)
Primitives are very helpful.§_objectsMenu§_objectsMenuALLBLOCKSMakes the computer perform long division.
Answer of long division Remainder
# R #b1s & 0s
true & false2.101s & 0s->->
<-ai1-><-Undoes long division.
Put the answer of a long division problem in input 1.
If you would like to find the numerator (the number that was divided) then put the divisor in input 2.
If you would like to find the divisor (the number the numerator was being divided by) then put the numerator in input 2.
Finally select what you want to find in input 3.
what’s a divisor and numerator? Example:
Numerator Divisor
5 ➗ 3Find divisor
Find NumeratorUndoes long division.
Put the answer of a long division problem in input 1.
If you would like to find the numerator (the number that was divided) then put the divisor in input 2.
If you would like to find the divisor (the number the numerator was being divided by) then put the numerator in input 2.
Finally select what you want to find in input 3.
what’s a divisor and numerator? Example:
Numerator Divisor
5 ➗ 3Find divisor
Find Numeratorasqrt=1
neg=2
ceiling=3
floor=4
abs=5
In=6
e^=7
10^=8
2^=9
id=10a1a1a1a1a1a1a1a1a1sin
cos
tan
aSin
aCos
aTancostanaSinaCosaTanSOH
CAH
TOA
Find Hypotenuse=FHCAHTOAFOLFHfalsea10a90§_directionDialMenuPoints towards the input witch must be a two item long list containing the x&y location you want to point towards.
Location must be from 0,0 so use the (list) -> (list) reporter in the slot.a,bab00Reports the second x&y input list minus the first.
This is used for 2 item long lists.
Use this reporter with the point towards (list) block
Put the x&y location of the object that you want to look in a different direction in the first slot and the x&y of where you want it to look in the second input.a00Use this block to move objects at a “Speed” and if it touches a wall it will slowly move along the wall.
The first input is the speed.
The second input is the object used as the wall.
The third input is the costume to use as a hit box (leave blank if you are not using a hit box)
See code to see how it works it’s super easy.a§_objectsMenu§_costumesMenua§_costumesMenushown?
sizesay
thinkJ-Bit2Absolute InfinityInfinity a,bwidth
height
name
pixels
#
width based on size=WS
height based on size=HScurrent§_costumesMenuheightnamepixels#WSHScurrent§_costumesMenu100100currentcurrentghostghost
saturation
brightness
color
fisheye
whirl
pixelate
mosaic
negative0colorsaturationbrightnessfisheyewhirlpixelatemosaicnegativeghostghost
saturation
brightness
color
fisheye
whirl
pixelate
mosaic
negativecolorsaturationbrightnessfisheyewhirlpixelatemosaicnegativea100Just a spacer for codes110aaEncodes the number into unrecognizable systematic scribble scrabble.
Place the unrecognizable seemingly random number into a unscrambler witch will turn it back to normal.Unscrambles a scrambled number.a,bLet’s the you change the inner lock variable.
This will affect all encoders. Don’t worry it won’t change the out come of encoders because they both use the same variable.a,ba,Ω1000Absolute InfinityInfinity Catch errors in a reporter.
Evaluates its first input. If that expression successfully reports a value, this block reports that value. If the expression causes a Snap! error,
then the final input slot is evaluated with the text of what would have
been the error message in variable ERROR. SAFELY TRY then reports the value of that final expression.
Sometimes you'll want to throw an error in the final expression. You
can put an ERROR block inside a CALL block to do that.ca:prova de forma segura reportant _ i si _ reportant _
errDoesn’t work correctly aa,b,cEquivelent of pressing the forward arrow next to the reload button on your browser.Equivelent of pressing the back arrow next to the forward button on your browser.Changes the title of the tab.Changes the image of the cursor.link = alias
auto
crosshair big = cell
context-menu
horizontal resize = col-resize
copy
crosshair
default
hand = grab
grabbing
help
move
vertical = n-resize
top-right resize = ne-resize
top left resize = nw-resize
hidden = none
not-allowed
pointer finger = pointer
loading = progress
vertical-text = text
horizintal text = vertical-text
zoom-in
zoom-out
pointer = initialLoads the project's XML code.Returns the current frames per second.Sets the font for writing text with pen. Also allows setting bold and italic.arialarial
monospace
cursivefalsefalseCreates a new category with a custom name and colour.Popup with text.Popup with 'Ok' or 'Cancel'Popup with an input.Catch errors.
Runs the first script. If it succeeds, nothing else happens.
But if it has an error (something that would otherwise result
in a red halo around the block), then the second script is run,
with the text of the error message that would have been shown in the variable ERROR.pt:tenta executar _ e, em caso de erro _ , executa _
err_resetSaves a file to your computer with a name, contents and an extension.txttxt
py
js
rtf
xml
html
sb2
plain
png
csvMakes a popup website.https://https://
http://google.comSimplified if (x = y){ }else{ } block.Gets the latest item from your clipboard.Deletes all of a sprites clonesWill make set hte pen to up if it is down or down if it is up.Creates a popup page with your HTML. <h1>Hello World!</h1>Reports whether the user is in the editor.Created by Mr_OwlsssSnap
----------------------------------------------------
Creates a block with the code you give it. It has two options: XML or blocks. If you are using blocks, make sure to put in a ring.
Requires JS.xml,block xmlothermotion
looks
sound
pen
control
sensing
operators
variables
othercommandcommand
booleen
reporterblocksblocks
xmlTells you if JavaScript is enabled with no error if it is not.error1Takes a text string as input, and reports a new text string containing all but the wanted letters of the input.pt:_ sem o último caractere
last
firstCatch errors.
Runs the first script. If it succeeds, nothing else happens.
But if it has an error (something that would otherwise result
in a red halo around the block), then the second script is run,
with the text of the error message that would have been shown in the variable ERROR.pt:tenta executar _ e, em caso de erro _ , executa _
returnThis block allows you to set the pen's color, transparency (on a scale from 0=opaque to 100=invisible), or size (in pixels). The color can be set in many ways, including RGB values, HSV values, HSL values, fair HSV or HSL (based on a modified spectrum that gives each spectral color equal space and promotes brown to a color), or X11/W3C color name.
See Appendix A in the Snap! Reference Manual for details.size
color
fair hue
transparency
X11/W3C name
(3D color spaces)={
fair HSL={
fair hue
fair saturation (HSL)
fair lightness
fair HSL vector
}
fair HSV={
fair hue
fair saturation (HSV)
fair value (brightness)
fair HSV vector
}
HSL={
hue
saturation (HSL)
lightness
HSL vector
}
HSV={
hue
saturation (HSV)
value (brightness)
HSV vector
}
RGB (0-255)={
red
green
blue
RGB vector
RGB hex
}
}255100We have to do this last test to rule out the vector options, which aren't numbers; their code makes three recursive calls and we catch range issues then.sizehueHSLHSV✐ fair?falsesaturation (HSV)value (brightness)transparencyred✐ last set asRGB✐ fair?falsegreen✐ last set asRGB✐ fair?falseblue✐ last set asRGB✐ fair?falsefair huevalue100color3.6index1index-1scale1fromtonewHSVHSL✐ fair?truefair huecolorColorcolor300index15scale15grayscalefromto✐ last set ascolor✐ fair?falsesaturation (HSL)lightnessfair saturation (HSV)22✐ last set asHSV✐ fair?truefair value (brightness)33✐ last set asHSV✐ fair?truefair saturation (HSL)✐ last set asHSL2222✐ fair?truefair lightness✐ last set asHSL3333✐ fair?truefair HSL vectorfair HSV vectorHSL vectorHSV vectorRGB vectorRGB hex01566red1612green1634blue1656X11/W3C nameX11/W3C namevaluetruex11w3c44partial matches4matchhead matchesSUBSET throws here if it handles a unique matchDon't ask.
Only for internal use by the SET PEN block.true§_getVarNamesDict110left-rightdon't rotate
all around
left-rightThis block carries out the given script for each item of the given list, like the primitive FOR EACH.
What's different is that it provides the # variable, which will contain the item number in the list of each item in turn, 1 while processing item 1, and so on.ca:_ per cada _ de _ _
ZIP takes any number of lists as inputs. The lists should all be the same length. ZIP reports a list of lists in which the first item is a list of all the first items, the second item is a list of all the second items, etc.
Viewing the inputs as the rows of a matrix, ZIP reports its transpose.1for use with the when <> hat block. it will have the effect of checking if the boolean is true, then waits until it is false.oldRuns the script the specified number of times, like the built-in REPEAT block, but this one provides the # variable that can be used inside the script. Try
REPEAT (200)
MOVE (#) STEPS
RIGHT 92
with the pen down.pt:repete _ vezes _ _ $loop-0.7
The inputs are a starting value and one or more monadic functions.
The first function is called with the starting value as its input.
The second function is called with the value reported by the first function as its input, and so on. PIPE reports the value reported by the last function. PIPE provides an alternative notation for function composition instead of the usual nesting.
nested acronym:
report (combine (keep items (capital-letter? ( )) from
(map (letter (1) of ( )) over
(sentence→list (phrase)))) using (join ( ) ( )))
piped acronym:
report (pipe (phrase) → (sentence→list ( ))
(map (letter (1) of ( )) over ( ))
(keep items (capital-letter? ( )) from ( ))
(combine ( ) using (join ( ) ( )))
Some people find PIPE easier to read because the functions are called in the same order in which you read them, whereas in nested composition the innermost function is called first. pt:a aplicação a _ de _
1§_costumesMenucreates a permanent clone or sprite with the same scripts as the parent, and reports it.clones={
changed clones={
permanent clone
deleted clone
}
temporary clone
}
duplicate spritehttps://snap.berkeley.edu§_objectsMenu#1Puts a block/value inside a specified input of another block.commandcommand
reporter
predicatecontrolmotion
looks
sound
pen
lists
control
sensing
operators
variables
othersinputs<block-definition s="-1" type="" category="">
<header/>
<code/>
<translations/>
</block-definition>general reporter that serves lots of purposes.sensing={
draggable?
name
rotation style
anchor
children
parent
parts
synchronous?
}
motion={
direction
positions={
x position
y position
}
}
looks={
costume attributes={
costume #
costume name
costumes
}
effects={
brightness effect
color effect
fisheye effect
ghost effect
mosaic effect
pixelate effect
negative effect
comic effect
confetti effect
duplicate effect
saturation effect
}
hidden?
layer #
size
}
sound={
instrument
tempo
volume
sounds
}
pen={
pen hue
pen saturation
pen brightness
pen transparency
pen size
pen down?
}
control={
clones={
a permanent clone of myself=permanent clone
a deleted clone of myself=deleted clone
a duplicate sprite of myself=duplicate sprite
a temporary clone of myself=temporary clone
}
message
}x positiony positioncostume #hidden?layer #sizeinstrumenttempovolumepen down?1pen2effectsynchronous?costume namemessageclonesprite2#1no
onlycareful with these effects!=
hue (out of 360)=hue
saturation
brightness
contrast
invert
blur
sepiaeverything normalReports all the current sprite's scripts in a list.clickedclicked
pressed
dropped
mouse-entered
mouse-departed
scrolled-up
scrolled-down
stopped§_messagesMenuspace0
1
2
3
4
5
6
7
8
9
any key
up arrow
down arrow
left arrow
right arrow
space
+
-
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z§_costumesMenucostumecostumedatanamedata.name = name;Snap! 6.9.0 Build Your Own Blockses:ejecutar función ( _ ) { _ } con _
es:llamar función ( _ ) { _ } con _
es:guadar proyecto
es:este proceso
es:¿esta secuencia tiene clic?
§_objectsMenuresulterrorcolornumber
text
Boolean
list
sprite
costume
sound
command
reporter
predicate
color2552552551002525§_costumesMenu§_costumesMenumotion
looks
sound
pen
control
sensing
operators
variablestrueVersion of mouse down? block with left, middle or rightel:είναι το _ ποντίκι κάτω;
de:_ Maustaste-gedrückt?
leftleft
middle
right§_costumesMenucurrent§_costumesMenuhorizontally
verticallytitleurl
hash
title
originInforms something AND waits until the user has pressed OK.This is some content!!Asks the user a yes/no question, then reports true or false based on whether they clicked yes.Are you sure??Waits for user input, then reports the thing they typed. If you press cancel, however, it reports false instead.What's your name?50titletitle
locationSnap!Pause a selected range of processes.allall
this script
all but this scriptUnpause each paused process.0all sprites
this sprite1datamapmany1data listsReports a sorted version of the list in its first input slot, using the comparison function in the second input slot. For a list of numbers, using < as the comparison function will sort from low to high; using > will sort from high to low.ca:ordena _ segons criteri _
copy of datasplitmerge11#1#2reports a JS string so you see all the didgits.1Reports a flat list of the maximum size of the input array along
each dimension: number of rows, number of columns, etc.
"Maximum" because it works even if the array isn't uniformly shaped.number1Reports a flat list of all the atomic elements
of sublists of the input list.Reports the number of dimensions of the input.Like MAP, but can take any number of lists
as inputs. The lists must all be the same size.
The function input must take a number of inputs
equal to the number of lists. MULTIMAP calls
the function with all the first items, then all the
second items, and so on.1This function has two names because there are two ways
to understand it.
Lisp way: A matrix is a list of rows. This block combines the numbers in each row, producing one value for the entire row.
APL way: A matrix is made of vectors. This block takes each column as a vector, and does vector arithmetic on the columns, producing one column as the result.Takes a dyadic scalar function as input, and
hyperizes it, so that it can take lists as inputs.abReports True if the input is an APL scalar,
i.e., either an atomic (non-list) value, or
an array (list of lists) of any depth with only
one atomic item, e.g., (list (list (list (3)))).1The input must be a value for which SCALAR? reports true, i.e., either an atom or a list of any depth but only one scalar item of item of... etc. This function returns the underlying scalar (number, etc.).10-1 force off
0 switch
1 force ontruecommand
reporter
predicatecommand
reporter
predicate1mouse-pointerfunction () {
var object = {
"random position" : "random position",
"mouse-pointer" : "mouse-pointer",
"center" : "center",
"~": "~",
};
var spritesObj = {
},
homeSprite = world.children[0].sprites.itemsArray().find(e => (e.scripts == this.parent.parent))
world.children[0].sprites.itemsArray().map(e=>e.name).forEach(
function (spriteName){
if (spriteName != (homeSprite||{name:null}).name){
spritesObj[spriteName] = spriteName;
}})
if (Object.keys(spritesObj).length < 1){
delete object["~"];
}
return Object.assign(object, spritesObj);
}12Creates a new XML tagnameCompiles an XML tag into its plain-text versionresult<>contentsitem</tag>Makes a pair from two valuesGetter for pair valuesfirstfirst
second
~
randomSetter for pair valuesfirstfirst
second
~
randomGet an attribute from an XML tag
empty -> children
tag -> tag name
contents -> contents of tagtag
contentsfindfindfirst5Set the value of an XML tag's attributes
tag -> tag name
contents -> contents of tag
Finds the index of an item within an array0Creates a new list from the range specified by the parameters
start empty -> 1
end empty -> #list110resultresultAdds a child to an XML tagSee [set XML attribute]
Messy form, designed for quick setting of attributesUsed in [new custom block]
Converts [variable parameter] to XML tags54Gets a section of a string based on its parameters
Negative values are offsets from the end of the string
start empty -> 1
last empty -> #string11000resultresult000100256256horizontallyhorizontally
vertically256256horizontallyhorizontally
verticallyCONTAINS = True if the 2nd string is included in the 1st one
STARTS WITH = True if the 1st string starts with the 2nd one
ENDS WITH = True if the 1st string ends with the 2nd oneraincoatcontainscontains
starts with
ends withcoatFinds the position of the the 1st string in the 2nd ones.el:εύρεση του _ στο _
de:_ finden in _
YourBuild Your Own BlocksFinds the position of the the 1st string in the 2nd ones.el:εύρεση του _ στο _ αρχίζοντας από το _
de:_ finden in _ ab _
lHello World31Returns letters from X to X from the wordel:γράμματα _ ως _ του _
de:Buchstaben _ bis _ von _
13WorldReturns a list with the items from X to Y from a listel:στοιχεία _ ως _ του _
de:Elementen _ bis _ von _
13Allows reading global settings programmatically.
Eisenberg's Law: Anything you can do from the user interface you should be able to do in your program, and vice versa. This library is just a beginning; there are many UI controls outside of the Settings menu.pt:o valor da configuração _
el:ρύθμιση _
de:Einstellung _
Project notes
Project name
User
Presentation mode
Language
Zoom blocks
Stage size
Stage scale
Retina display support
Long form input dialog
Plain prototype labels
Input sliders
Execute on slider change
Clicking sound
Turbo mode
Flat design
Keyboard editing
Visible stepping
Thread safe scripts
Prefer smooth animations
Flat line ends
Codification support
Inheritance support
Hyper blocks support
Visible paletteLET (FOO) BE (5)
is equivalent to
SCRIPT VARIABLES (FOO)
SET (FOO) TO (5)pt:cria a variável de guião _ com valor _
el:άφησε το _ να είναι _
de:lassen _ auf _
Returns the list as sentence without spacesel:_ ως αχώριστο κείμενο
de:_ als untrennen Text
§_getVarNamesDictRGBAR (red)=R
G (green)=G
B (blue)=B
A (alpha/transparency)=A
RGBA
RGB
nameThis block allows you to set the pen's color, transparency (on a scale from 0=opaque to 100=invisible), or size (in pixels). The color can be set in many ways, including RGB values, HSV values, HSL values, fair HSV or HSL (based on a modified spectrum that gives each spectral color equal space and promotes brown to a color), color number, crayon, or X11/W3C color name.
See Appendix A in the Snap! Reference Manual for details.color
color number
crayon
fair hue
~1
size
transparency
X11/W3C name
~2
(3D color spaces)={
fair HSL={
fair hue
fair saturation (HSL)
fair lightness
fair HSL vector
}
fair HSV={
fair hue
fair saturation (HSV)
fair value (brightness)
fair HSV vector
}
HSL={
hue
saturation (HSL)
lightness
HSL vector
}
HSV={
hue
saturation (HSV)
value (brightness)
HSV vector
}
RGB (0-255)={
red
green
blue
RGB(A) vector
RGB(A) hex
}
}function () {
// add/edit menus but don't forget to edit other slot manual menu options to match
var color_number=[
"0 black=0", "14 white=14",
"20 spectral red=20", "25 darkest red=25",
"30 saddle brown=30", "35 darkest brown=35",
"40 spectral orange=40", "45 darkest orange=45",
"50 spectral yellow=50", "55 darkest yellow=55",
"60 spectral green=60", "65 darkest green=65",
"70 spectral cyan=70", "75 darkest cyan=75",
"80 spectral blue=80", "85 darkest blue=85",
"90 spectral violet=90", "95 magenta=95"];
var fair_hue=[
"0 red=0", "12.5 brown=12.5", "25 orange=25", "37.5 yellow=37.5",
"50 green=50", "62.5 cyan=62.5", "75 blue=75", "87.5 violet=87.5"];
var crayon=[
"grays",[
"0 black #000000=0",
"1 gray7 #121212=1",
"2 gray14 #242424=2",
"3 gray21 #363636=3",
"4 gray28 #484848=4",
"5 gray36 #5c5c5c=5",
"6 gray43 #6d6d6d=6",
"7 gray50 #7f7f7f=7",
"8 gray57 #919191=8",
"9 gray64 #a3a3a3=9",
"10 gray71 #b5b5b5=10",
"11 gray78 #c8c8c8=11",
"12 gray85 #dadada=12",
"13 gray92 #ececec=13",
"14 white #ffffff=14"],
"pinks",[
"15 deep pink #ff1493=15",
"16 hot pink #ff69b4=16",
"17 bright pink #ff007f=17",
"18 raspberry #e30b5d=18",
"19 amaranth #e52b50=19"],
"reds",[
"20 red #ff0000=20",
"21 burgundy #900020=21",
"22 cherry #990000=22",
"23 dark candy apple red #a40000=23",
"24 sanguine #c00000=24",
"25 maroon #800000=25",
"26 crimson #c90016=26",
"27 Lists #d94d11=27",
"28 candy apple red #ff0800=28",
"29 coquelicot #ff3800=29"],
"browns",[
"30 saddle brown #8b4513=30",
"31 chocolate #7b3f00=31",
"32 kobicha #6b4423=32",
"33 sepia #704214=33",
"34 chestnut #954535=34",
"35 dark brown #654321=35",
"36 brown #964b00=36",
"37 golden brown #996515=37",
"38 cinnamon #b87333=38",
"39 copper #d2691e=39"],
"oranges",[
"40 orange #ff7f00=40",
"41 Pantone orange #ff5800=41",
"42 pumpkin #ff7518=42",
"43 Variables #f3761d=43",
"44 Spanish orange #e86100=44",
"45 burnt orange #cc5500=45",
"46 sinopia #cb410b=46",
"47 ochre #cc7722=47",
"48 carrot #ed9121=48",
"49 tangerine #f28500=49"],
"yellows",[
"50 yellow #ffff00=50",
"51 Control #e6a822=51",
"52 dark goldenrod #b8860b=52",
"53 goldenrod #daa520=53",
"54 saffron #f4c430=54",
"55 sandstorm #ecd540=55",
"56 mustard #ffdb58=56",
"57 gold #ffd700=57",
"58 egg yolk #fee33e=58",
"59 rubber duck #fbe108=59"],
"greens",[
"60 lime #00ff00=60",
"61 apple green #8db600=61",
"62 Operators #62c213=62",
"63 forest green #228b22=63",
"64 green #008000=64",
"65 dark green #006400=65",
"66 dark pastel green #03c03c=66",
"67 emerald #50c878=67",
"68 mint #3eb489=68",
"69 Pen #00a178=69"],
"cyans",[
"70 aqua (cyan) #00ffff=70",
"71 dark cyan #008b8b=71",
"72 cerulean #007ba7=72",
"73 iceberg #71a6d2=73",
"74 Sensing #0494dc=74",
"75 teal #008080=75",
"76 light sky blue #87cefa=76",
"77 deep sky blue #00bfff=77",
"78 dodger blue #1e90ff=78",
"79 azure #007fff=79"],
"blues",[
"80 blue #0000ff=80",
"81 midnight blue #191970=81",
"82 dark powder blue #003399=82",
"83 cobalt #0047ab=83",
"84 denim #1560bd=84",
"85 navy blue #000080=85",
"86 steel blue #4682b4=86",
"87 Motion #4a6cd4=87",
"88 cornflower #6495ed=88",
"89 slate blue #6a5acd=89"],
"purples",[
"90 violet #8000ff=90",
"91 Looks #8f56e3=91",
"92 grape #6f2da8=92",
"93 indigo #4b0082=93",
"94 x11 purple #a020f0=94",
"95 magenta (fuchia) #ff00ff=95",
"96 dark orchid #9932cc=96",
"97 Sound #cf4ad9=97",
"98 purple #7f007f=98",
"99 dark magenta #8b008b=99"]];
function makeMenuHelper(items, output) {
// in an array, walk through the items in pairs
var i = 0;
while (i < items.length) {
var label = items[i];
var possiblyNested = items[i+1];
// if possiblyNested is array, it is a nest under label
// if possiblyNested is string, it is just a sibling
if (possiblyNested === undefined) {
// label is actually the last element of the list
var hasEquals = label.split("=");
if (hasEquals.length == 2) {
output[hasEquals[0]] = hasEquals[1];
i += 1;
} else if (hasEquals.length == 3) {
output[hasEquals[0]+"\u00A0"+"="+"\u00A0"+hasEquals[2]] = hasEquals[0]+"\u00A0"+"="+"\u00A0"+hasEquals[2];
i += 1;
} else {
output[label] = label;
i += 1;
}
} else if (typeof possiblyNested == "string") {
var hasEquals = label.split("=");
if (hasEquals.length == 2) {
output[hasEquals[0]] = hasEquals[1];
i += 1;
} else if (hasEquals.length == 3) {
output[hasEquals[0]+"\u00A0"+"="+"\u00A0"+hasEquals[2]] = hasEquals[0]+"\u00A0"+"="+"\u00A0"+hasEquals[2];
i += 1;
} else {
output[label] = label;
i += 1;
}
} else if (Array.isArray(possiblyNested)) {
var nestingOutput = {};
makeMenuHelper(possiblyNested, nestingOutput);
output[label] = nestingOutput;
i += 2
} else {
throw new Error("Bad value at index " + i);
}
}
}
var ide = world.children[0];
var menuVarName = this.parent.blockSpec;
try {
menuVarName = this.parent.cachedInputs[0].children[0].text;
} catch(err) {
menuPoss = this.parent.children;
menuPoss = menuPoss.filter(function (e) { return (e instanceof InputSlotMorph)});
menuVarName = menuPoss[0].children[0].text;
}
menuVarName = menuVarName.replace(" ","_");
try {
var menu = eval(menuVarName);
var output = {};
makeMenuHelper(menu, output);
return output;
} catch(err) {
}
}Note to myself: When the user sets a fair dimension, say fair HSL, variable HSL contains the corresponding "unfair" values, and "raw HSL" contains the numbers the user actually gave. It has to be this way because in the case of HSV, there is no "HSV" variable; rather, we use the pen's actual remembered-by-Javascript color's HSV coordinates. So our HSL variable has to be analogous to that. In both cases "raw" means the numbers the user gave us.1HSV✐ raw HSL100HSV100This block reports the pen size, color, or transparency, in all the same ways that the SET PEN block allows you to set those pen properties. (It will also report the current crayon number, if the pen color was most recently set with SET PEN TO CRAYON.)
See Appendix A of the Snap! Reference Manual for details. color
color number
crayon
fair hue
~1
size
transparency
X11/W3C name
~2
(3D color spaces)={
fair HSL={
fair hue
fair saturation (HSL)
fair lightness
fair HSL vector
}
fair HSV={
fair hue
fair saturation (HSV)
fair value (brightness)
fair HSV vector
}
HSL={
hue
saturation (HSL)
lightness
HSL vector
}
HSV={
hue
saturation (HSV)
value (brightness)
HSV vector
}
RGB (0-255)={
red
green
blue
RGB vector
RGBA vector
RGB(A) hex
}
}huesaturation (HSV)value (brightness)transparencyRGB vectorRGBA vectorredgreenblueRGB(A) hex1616HSV vectorHSL vectorsaturation (HSL)lightnesscolor numbercolorfair huenot setfair saturation (HSL)not setfair lightnessnot setfair HSL vectornot setfair saturation (HSV)2not setfair value (brightness)3not setfair HSV vectornot setcrayonX11/W3C namept:lança o erro _
de:fange _ _
ca:agafa _ _
es:atrapar _ _
fr:attrape _ _
pt:captura _ _
cont3de:wirf _
ca:llança _
es:lanzar _
fr:lance _
pt:lança _
catchtagde:ignoriere _
ca:ignora _
es:ignorar _
fr:ignore _
pt:ignora _
This block reports "true" if there is a variable with this given name (input slot) in that context.
It can be a global, sprite or script variable.
Otherwise it reports "false".pt:a variável _ existe
ca:existeix la variable _ ?
es:existe la variable _ ?
de:existiert var _ ?
combines any number of colors, reporting the result of mixing them, either additively (like colored light beams) or subtractively (like paints). If the result is too bright (additive) or too dark (subtractive), try the "averaged" versions, which will make the brightness more like the brightnesses of the input colors.additive (light)
additive (averaged)
subtractive (ideal)
subtractive (averaged)
simulated paint
paint (sRGB corrected)waveformssum of weightscombined waveformweighted geometric mean of waveformssum of weightscombined waveformTback to RGBT5.47813E-05 0.000184722 0.000935514 0.003096265 0.009507714 0.017351596 0.022073595 0.016353161 0.002002407 -0.016177731 -0.033929391 -0.046158952 -0.06381706 -0.083911194 -0.091832385 -0.08258148 -0.052950086 -0.012727224 0.037413037 0.091701812 0.147964686 0.181542886 0.210684154 0.210058081 0.181312094 0.132064724 0.093723787 0.057159281 0.033469657 0.018235464 0.009298756 0.004023687 0.002068643 0.00109484 0.000454231 0.000255925-4.65552E-05 -0.000157894 -0.000806935 -0.002707449 -0.008477628 -0.016058258 -0.02200529 -0.020027434 -0.011137726 0.003784809 0.022138944 0.038965605 0.063361718 0.095981626 0.126280277 0.148575844 0.149044804 0.14239936 0.122084916 0.09544734 0.067421931 0.035691251 0.01313278 -0.002384996 -0.009409573 -0.009888983 -0.008379513 -0.005606153 -0.003444663 -0.001921041 -0.000995333 -0.000435322 -0.000224537 -0.000118838 -4.93038E-05 -2.77789E-050.00032594 0.001107914 0.005677477 0.01918448 0.060978641 0.121348231 0.184875618 0.208804428 0.197318551 0.147233899 0.091819086 0.046485543 0.022982618 0.00665036 -0.005816014 -0.012450334 -0.015524259 -0.016712927 -0.01570093 -0.013647887 -0.011317812 -0.008077223 -0.005863171 -0.003943485 -0.002490472 -0.001440876 -0.000852895 -0.000458929 -0.000248389 -0.000129773 -6.41985E-05 -2.71982E-05 -1.38913E-05 -7.35203E-06 -3.05024E-06 -1.71858E-06newsRGBRGB vector255addmax255RGB vectorpt:o texto multilinha _
Reports the part of the first string up to the first instance of the second string inside it. If the second string isn't found, reports the entire first string.pt:o texto de _ antes de _
Reports the portion of the first input string starting after the first occurrence of the second string. If the second string isn't found in the first string, reports an empty string.pt:o texto de _ depois de _
If input is TRUE, comparisons made by functions in the string library will be case-independent (so "FOO" = "foo"). This is the default.
If input is FALSE, comparisons will be exact.pt:altera comparações ignorando distinção minúsculas/maiúsculas para _
Reports True if the first input string contains the second input string, otherwise false.
Comparison is case-independent by default; use USE CASE-INDEPENDENT COMPARISONS to change that.pt:o texto de _ antes de _
This block reports a color. The color can be set in many ways, including RGB values, HSV values, HSL values, fair HSV or HSL (based on a modified spectrum that gives each spectral color equal space and promotes brown to a color), color number, crayon, or X11/W3C color name.
See Appendix A in the Snap! Reference Manual for details.color
color number
crayon
fair hue
X11/W3C name
~
fair HSL=fair HSL vector
fair HSV=fair HSV vector
HSL=HSL vector
HSV=HSV vector
RGB (0-255)=RGB vector
RGB hexfunction () {
// add/edit menus but don't forget to edit 2nd slot manual menu options as well to match
var color_number=[
"0 black=0", "14 white=14",
"20 spectral red=20", "25 darkest red=25",
"30 saddle brown=30", "35 darkest brown=35",
"40 spectral orange=40", "45 darkest orange=45",
"50 spectral yellow=50", "55 darkest yellow=55",
"60 spectral green=60", "65 darkest green=65",
"70 spectral cyan=70", "75 darkest cyan=75",
"80 spectral blue=80", "85 darkest blue=85",
"90 spectral violet=90", "95 magenta=95"];
var fair_hue=[
"0 red=0", "12.5 brown=12.5", "25 orange=25", "37.5 yellow=37.5",
"50 green=50", "62.5 cyan=62.5", "75 blue=75", "87.5 violet=87.5"];
var crayon=[
"grays",[
"0 black #000000=0",
"1 gray7 #121212=1",
"2 gray14 #242424=2",
"3 gray21 #363636=3",
"4 gray28 #484848=4",
"5 gray36 #5c5c5c=5",
"6 gray43 #6d6d6d=6",
"7 gray50 #7f7f7f=7",
"8 gray57 #919191=8",
"9 gray64 #a3a3a3=9",
"10 gray71 #b5b5b5=10",
"11 gray78 #c8c8c8=11",
"12 gray85 #dadada=12",
"13 gray92 #ececec=13",
"14 white #ffffff=14"],
"pinks",[
"15 deep pink #ff1493=15",
"16 hot pink #ff69b4=16",
"17 bright pink #ff007f=17",
"18 raspberry #e30b5d=18",
"19 amaranth #e52b50=19"],
"reds",[
"20 red #ff0000=20",
"21 burgundy #900020=21",
"22 cherry #990000=22",
"23 dark candy apple red #a40000=23",
"24 sanguine #c00000=24",
"25 maroon #800000=25",
"26 crimson #c90016=26",
"27 Lists #d94d11=27",
"28 candy apple red #ff0800=28",
"29 coquelicot #ff3800=29"],
"browns",[
"30 saddle brown #8b4513=30",
"31 chocolate #7b3f00=31",
"32 kobicha #6b4423=32",
"33 sepia #704214=33",
"34 chestnut #954535=34",
"35 dark brown #654321=35",
"36 brown #964b00=36",
"37 golden brown #996515=37",
"38 cinnamon #b87333=38",
"39 copper #d2691e=39"],
"oranges",[
"40 orange #ff7f00=40",
"41 Pantone orange #ff5800=41",
"42 pumpkin #ff7518=42",
"43 Variables #f3761d=43",
"44 Spanish orange #e86100=44",
"45 burnt orange #cc5500=45",
"46 sinopia #cb410b=46",
"47 ochre #cc7722=47",
"48 carrot #ed9121=48",
"49 tangerine #f28500=49"],
"yellows",[
"50 yellow #ffff00=50",
"51 Control #e6a822=51",
"52 dark goldenrod #b8860b=52",
"53 goldenrod #daa520=53",
"54 saffron #f4c430=54",
"55 sandstorm #ecd540=55",
"56 mustard #ffdb58=56",
"57 gold #ffd700=57",
"58 egg yolk #fee33e=58",
"59 rubber duck #fbe108=59"],
"greens",[
"60 lime #00ff00=60",
"61 apple green #8db600=61",
"62 Operators #62c213=62",
"63 forest green #228b22=63",
"64 green #008000=64",
"65 dark green #006400=65",
"66 dark pastel green #03c03c=66",
"67 emerald #50c878=67",
"68 mint #3eb489=68",
"69 Pen #00a178=69"],
"cyans",[
"70 aqua (cyan) #00ffff=70",
"71 dark cyan #008b8b=71",
"72 cerulean #007ba7=72",
"73 iceberg #71a6d2=73",
"74 Sensing #0494dc=74",
"75 teal #008080=75",
"76 light sky blue #87cefa=76",
"77 deep sky blue #00bfff=77",
"78 dodger blue #1e90ff=78",
"79 azure #007fff=79"],
"blues",[
"80 blue #0000ff=80",
"81 midnight blue #191970=81",
"82 dark powder blue #003399=82",
"83 cobalt #0047ab=83",
"84 denim #1560bd=84",
"85 navy blue #000080=85",
"86 steel blue #4682b4=86",
"87 Motion #4a6cd4=87",
"88 cornflower #6495ed=88",
"89 slate blue #6a5acd=89"],
"purples",[
"90 violet #8000ff=90",
"91 Looks #8f56e3=91",
"92 grape #6f2da8=92",
"93 indigo #4b0082=93",
"94 x11 purple #a020f0=94",
"95 magenta (fuchia) #ff00ff=95",
"96 dark orchid #9932cc=96",
"97 Sound #cf4ad9=97",
"98 purple #7f007f=98",
"99 dark magenta #8b008b=99"]];
function makeMenuHelper(items, output) {
// in an array, walk through the items in pairs
var i = 0;
while (i < items.length) {
var label = items[i];
var possiblyNested = items[i+1];
// if possiblyNested is array, it is a nest under label
// if possiblyNested is string, it is just a sibling
if (possiblyNested === undefined) {
// label is actually the last element of the list
var hasEquals = label.split("=");
if (hasEquals.length == 2) {
output[hasEquals[0]] = hasEquals[1];
i += 1;
} else if (hasEquals.length == 3) {
output[hasEquals[0]+"\u00A0"+"="+"\u00A0"+hasEquals[2]] = hasEquals[0]+"\u00A0"+"="+"\u00A0"+hasEquals[2];
i += 1;
} else {
output[label] = label;
i += 1;
}
} else if (typeof possiblyNested == "string") {
var hasEquals = label.split("=");
if (hasEquals.length == 2) {
output[hasEquals[0]] = hasEquals[1];
i += 1;
} else if (hasEquals.length == 3) {
output[hasEquals[0]+"\u00A0"+"="+"\u00A0"+hasEquals[2]] = hasEquals[0]+"\u00A0"+"="+"\u00A0"+hasEquals[2];
i += 1;
} else {
output[label] = label;
i += 1;
}
} else if (Array.isArray(possiblyNested)) {
var nestingOutput = {};
makeMenuHelper(possiblyNested, nestingOutput);
output[label] = nestingOutput;
i += 2
} else {
throw new Error("Bad value at index " + i);
}
}
}
var ide = world.children[0];
var menuVarName = this.parent.blockSpec;
try {
menuVarName = this.parent.cachedInputs[0].children[0].text;
} catch(err) {
menuPoss = this.parent.children;
menuPoss = menuPoss.filter(function (e) { return (e instanceof InputSlotMorph)});
menuVarName = menuPoss[0].children[0].text;
}
menuVarName = menuVarName.replace(" ","_");
try {
var menu = eval(menuVarName);
var output = {};
makeMenuHelper(menu, output);
return output;
} catch(err) {
}
}color numbercolor300index15scale1515255fromto122crayon132X11/W3C nameRGB hexcolorRGB vectorHSV vectorHSL vectorfair HSV vectorindex-1scale1index1color100fair HSL vectorindex-1scale1index1color110050nearest color number
crayon number
fair hue
~1
transparency
X11/W3C name
~2
(3D color spaces)={
fair HSL={
fair hue
fair saturation (HSL)
fair lightness
fair HSL vector
}
fair HSV={
fair hue
fair saturation (HSV)
fair value (brightness)
fair HSV vector
}
HSL={
hue
saturation (HSL)
lightness
HSL vector
}
HSV={
hue
saturation (HSV)
value (brightness)
HSV vector
}
RGB (0-255)={
red
green
blue
RGB vector
RGBA vector
RGB hex
}
}X11/W3C namenearest color numberrgbhslhsvrgbtransparencytransparencyRGB vectorRGBA vectorRGB hexredgreenbluehsvfalseHSV vectorhuesaturation (HSV)value (brightness)hsltrueHSL vectorsaturation (HSL)lightnessHSLlightnessfair lightness310030.9833.333333330.986.9444444516.944444451.96100fair lightnessfair saturation (HSL)210075.9493610075.949366.9444444516.944444451.96100fair saturation (HSL)fair HSL vectorfair lightness310030.9833.333333330.986.9444444516.944444458.823529100fair lightnessfair saturation (HSL)210075.9493610075.949366.9444444516.944444458.823529100fair saturation (HSL)fair HSL vectorfair hue11111111fair huefair saturation (HSL)fair lightnessfair HSL vectorbrownfair value (brightness)310054.5166.66666666754.516.9444444516.944444451.96100fair value (brightness)fair saturation (HSV)210086.3310086.336.9444444516.944444451.96100fair saturation (HSV)fair HSV vectorfair value (brightness)310054.5166.66666666754.516.9444444516.944444451.96100fair value (brightness)fair saturation (HSV)210086.3310086.336.9444444516.944444451.96100fair saturation (HSV)fair HSV vectorfair hue11111111fair huefair saturation (HSV)fair value (brightness)fair HSV vectorbrownfair somethingCan't get here -- please post project and screenshot to forum.This block reports the pen color
(as a color, not as a list of numbers).Sets the pen color
to one of 100 preselected colors, like a box of 100 crayons.
The colors have names that are meant to be evocative.
They are organized in families, more or less corresponding
to spectral (rainbow) colors; the input slot has a two-level menu
in which you can hover over a family name to see the colors
of that family, each including a crayon number and an RGB value.
See Appendix A of the Snap! Reference Manual for more details.grays={
0 black #000000=0
1 gray7 #121212=1
2 gray14 #242424=2
3 gray21 #363636=3
4 gray28 #484848=4
5 gray36 #5c5c5c=5
6 gray43 #6d6d6d=6
7 gray50 #7f7f7f=7
8 gray57 #919191=8
9 gray64 #a3a3a3=9
10 gray71 #b5b5b5=10
11 gray78 #c8c8c8=11
12 gray85 #dadada=12
13 gray92 #ececec=13
14 white #ffffff=14
}
pinks={
15 deep pink #ff1493=15
16 hot pink #ff69b4=16
17 bright pink #ff007f=17
18 raspberry #e30b5d=18
19 amaranth #e52b50=19
}
reds={
20 red #ff0000=20
21 burgundy #900020=21
22 cherry #990000=22
23 dark candy apple red #a40000=23
24 sanguine #c00000=24
25 maroon #800000=25
26 crimson #c90016=26
27 Lists #d94d11=27
28 candy apple red #ff0800=28
29 coquelicot #ff3800=29
}
browns={
30 saddle brown #8b4513=30
31 chocolate #7b3f00=31
32 kobicha #6b4423=32
33 sepia #704214=33
34 chestnut #954535=34
35 dark brown #654321=35
36 brown #964b00=36
37 golden brown #996515=37
38 cinnamon #b87333=38
39 copper #d2691e=39
}
oranges={
40 orange #ff7f00=40
41 Pantone orange #ff5800=41
42 pumpkin #ff7518=42
43 Variables #f3761d=43
44 Spanish orange #e86100=44
45 burnt orange #cc5500=45
46 sinopia #cb410b=46
47 ochre #cc7722=47
48 carrot #ed9121=48
49 tangerine #f28500=49
}
yellows={
50 yellow #ffff00=50
51 Control #e6a822=51
52 dark goldenrod #b8860b=52
53 goldenrod #daa520=53
54 saffron #f4c430=54
55 sandstorm #ecd540=55
56 mustard #ffdb58=56
57 gold #ffd700=57
58 egg yolk #fee33e=58
59 rubber duck #fbe108=59
}
greens={
60 lime #00ff00=60
61 apple green #8db600=61
62 Operators #62c213=62
63 forest green #228b22=63
64 green #008000=64
65 dark green #006400=65
66 dark pastel green #03c03c=66
67 emerald #50c878=67
68 mint #3eb489=68
69 Pen #00a178=69
}
cyans={
70 aqua (cyan) #00ffff=70
71 dark cyan #008b8b=71
72 cerulean #007ba7=72
73 iceberg #71a6d2=73
74 Sensing #0494dc=74
75 teal #008080=75
76 light sky blue #87cefa=76
77 deep sky blue #00bfff=77
78 dodger blue #1e90ff=78
79 azure #007fff=79
}
blues={
80 blue #0000ff=80
81 midnight blue #191970=81
82 dark powder blue #003399=82
83 cobalt #0047ab=83
84 denim #1560bd=84
85 navy blue #000080=85
86 steel blue #4682b4=86
87 Motion #4a6cd4=87
88 cornflower #6495ed=88
89 slate blue #6a5acd=89
}
purples={
90 violet #8000ff=90
91 Looks #8f56e3=91
92 grape #6f2da8=92
93 indigo #4b0082=93
94 x11 purple #a020f0=94
95 magenta (fuchia) #ff00ff=95
96 dark orchid #9932cc=96
97 Sound #cf4ad9=97
98 purple #7f007f=98
99 dark magenta #8b008b=99
}✐ last set ascrayon✐ fair?false1231Takes three inputs for red, green, and blue
values, each between 0 and 255. 0,0,0 is black; 255,255,255 is white. 255,255,0 is yellow, and so on.
The SET PEN block in this library lets you set individual red, green, or blue without changing the others, lets you provide a list of three RGB color components, and lets you provide a six-digit hexadecimal number, the form in which RGB color values are usually found online.
See Appendix A of the Snap! Reference Manual for details.pt:altera a cor da tua caneta para vermelho _ , verde _ e azul _ (0 a 255)
25500Takes three inputs for hue, saturation, and value ("brightness")
values, each between 0 and 1. 0,0,0 is black; 0,0,1 is white. 0.15,1,1 is yellow, and so on.
The SET PEN block in this library lets you set individual hue, saturation, or value without changing the others, lets you provide a list of three HSV color components, and lets you
use the very much superior HSL (hue, saturation, lightness)
color space.
See Appendix A of the Snap! Reference Manual for details.pt:altera a cor da caneta para matiz _ , saturação _ e brilho _ (0 a 1)
0.30.70.6Reports the current pen color as a list of three RGB values in the range 0-255. The PEN block in this library provides a large set of ways to examine the color.
See Appendix A in the Snap! Reference Manual for details.pt:a cor da caneta em RGB (vermelho, verde e azul; 0 a 255)
Reports the current pen color as a list of three HSV values
in the range 0-1.
See Appendix A in the Snap! Reference Manual for details.pt:a cor da caneta em HSV (matiz, saturação e brilho, 0 a 1)
Takes a value from 0 to 15 and reports
the corresponding hexadecimal digit.
For internal use of the color library.Don't ask.
Only for internal use by the SET PEN block.truetrueCreates a bunch of global variables.
For internal use by Color library.global✐ last set as✐ fair?✐ color scale✐ HSL✐ last crayon✐ last X11✐ raw HSL✐ raw HSV✐ X11✐ crayon colors✐ fair hue table✐ colors✐ brights✐ pivots✐ HSV brights✐ HSL brights✐ HSV colors✐ HSL colors✐ X11 catch✐ dimension names✐ dimension dispatch✐ last set asRGB✐ fair?false✐ raw HSV0100100✐ HSL010050✐ raw HSL010050not a crayonnot an X11 color111smallest componentrgb255smallest component2rgb2552Red family8.7Brown/orange family17yellow501427.7522.334green52cyan67blue83.33333333purple9550505left of blackfalsehue603.61001003.6100100hue mod 100, other components cut off at [0, 100]value100color3.6index1index-1scale1255fromto1newHSVHSL✐ fair?truecolor300index15scale15grayscale15255fromto121✐ last set ascolor number✐ fair?true✐ raw HSL10050✐ raw HSV100100015866161216341656✐ last set asRGB✐ fair?false144partial matchestrue4matchhead matchestrueSUBSET throws here if it handles a unique match144partial matchesfalse4matchhead matchesfalseSUBSET throws here if it handles a unique match2015866161216341656✐ last set asHSL33✐ fair?false1✐ last set asRGB✐ fair?false✐ last set asRGB✐ fair?false✐ last set asRGB✐ fair?false✐ last set asRGB✐ fair?false04value0255131✐ last set asRGB✐ fair?false✐ last set asHSL22✐ fair?false1✐ last set asHSL✐ HSL11000100✐ raw HSL✐ fair?false1✐ last set asHSV✐ fair?false✐ raw HSV1310031100if USED TO BE fairHSL✐ fair?false1✐ last set asHSL2222✐ fair?true1✐ last set asHSL3333✐ fair?true1231322✐ last set asHSV✐ fair?true133✐ last set asHSV✐ fair?true123131Hello!120.050.01–Gliding/Very Fast=0.01
0.05–Typewrite=0.05
0.1–Normal Writing/Slow Typewriting=0.1
0.5–Slow=0.5
1.01–Very Slowerror scriptxpxp#itemlistPen down?Pen down?This block carries out the given script for each item of the given list, like the primitive FOR EACH.
What's different is that it provides the # variable, which will contain the item number in the list of each item in turn, 1 while processing item 1, and so on.ca:_ per cada _ de _ _
Writes X to the clipboardel:εγγραφή του _ στο πρόχειρο
de:schreibe _ in die Zwischenablage
copy/pastemotionmotion
looks
sound
pen
control
sensing
operators
variablescommandcommand
reporter
predicateca:desa clau: _ amb valor: _ al navegador
The data base vars are extremely important for moving variables and other values from scene to scene.
The key acts like the name of the variable.
Original blocks are from the library under database. All database vars are stored in the browser not cloud.The data base vars are extremely important for moving variables and other values from scene to scene.
The key acts like the name of the variable. Reports the database var with the key name. Reports false if key is not found.
Original blocks are from the library under database. All database vars are stored in the browser not cloud.ca:obté valor de clau: _ al navegador
ΩAccepts any number of scripts as inputs. Launches a separate thread for each of them, so they are done in parallel, then waits for them all to complete.
This doesn't change how the Snap! scheduler works; the threads are not truly asynchronous. And there is no increase in speed. Rather, the point of this block is to allow starting synchronized but independent scripts.pt:executa _ em paralelo e espera
ca:executa en paral·lel _ i espera
each scripttestAccepts any number of scripts as inputs. Launches a separate thread for each of them, so they are done in parallel, then continues with the current script while they all run.
This doesn't change how the Snap! scheduler works; the threads are not truly asynchronous. And there is no increase in speed. Rather, the point of this block is to allow starting synchronized but independent scripts.pt:executa _ em paralelo
ca:executa en paral·lel _
trueatrue11truea,b,cusing 60 fps=1
using current fps=22Works like the ‘tell ??? to ???’ and the ‘ask ??? for ???’ blocks.a,b§_objectsMenugive
do ={
do
wait for completion=do and wait for completion
}dodo and wait for completionThis block creates new variables on the selected scope: global (for all sprites), sprite (for this sprite only) or script (only for that blocks stack) with the names given (in 'names' list).
If there is already a variable with that name in that scope, it does nothing: no errors and no overwrites.pt:cria as variáveis _ _
ca:crea les _ variables _
es:crear las _ variables _
de:erstellen _ var _
globalglobal
sprite
scripttrue§_messagesMenutruetrue§_objectsMenufdfdgffggf
Fxshbv
cfhjvfdfdgffggf
Fxshbv
cfhjvdata:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAB4KADAAQAAAABAAABaAAAAAAHwbojAAAL30lEQVR4Ae3QMQEAAADCoPVPbQwfiEBhwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGPgMDI3+AAEeFvcCAAAAAElFTkSuQmCC0001sip11RGBA2RGBA3RGBAerroree100erroreeex3s5p7i15exs10s51.4age41100e100100ePeopleSpriteEXTINCTION CHANCE10100%Death Rate100%ageage1age101010255,255,255,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0127,01671841791%0%17