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 _ A72
Basically 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 _ _ cont
de:wirf _ _ ca:llança _ _ es:lanzar _ _ fr:lance _ _ pt:lança _ _ catchtag
This 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 _ _ 1110
Provides 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 value
Allows 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 support
Allows 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 palette
de: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-TW11
de: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-TW11
Takes 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 rate
pt: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=96000
pt:π
pt:_ radianos em graus ca:graus de _ radiants -> <-0.5<-
pt:o som _ ca:so de nom _ §_soundsMenu
quickly 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-2
records an audio snippet and reports it as a new sound, or zero if the user cancels
pt:$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 440
pt:a frequência da nota _ ca:freqüència (hz) de la nota _ 69
pt:o nome da nota _ ca:nom de la nota _ 69
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.
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? _ 0
Takes 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 _ firstbffirst111bf
Takes 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 word
de: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 it
de: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_reset
The 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.
111
Takes 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")
111111
Reports the smaller of its two inputs.
choicesindexchoices
Reports 1 if the input is positive, 0 if the input is zero, or -1 if the input is negative.
0false
Reports 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.
0
Turns 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.
1result
This 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.
1111
Reports 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.
10valueindex
A 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.
0valueindex
1
Takes 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.
11
This 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 _ §_getVarNamesDict
This 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 _ §_getVarNamesDict
This 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 _ §_getVarNamesDict
This 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 _ §_getVarNamesDict
Reports 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,b
ab00
Does 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 of
Reports a stored value on the cloud.
Old script
Stores 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. , : ; / - ( ) € Space
Search a lot of something.
name Id Id-num name&Idb1
Set 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 script
Makes 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=NBBTTNNTBNNB
Use this block as a guide to make your own different looking block. Press edit.
true
Use 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§_costumesMenu
Reports the x&y of a object in a list Leave blank for “myself” x&y
§_objectsMenu
Inherit more than one thing.
Location=L Location and Direction=LD Almost every thing=ELDE
Shows 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§_objectsMenuCostumeName
Literally 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”
§_objectsMenu
Actually deletes the specified sprite.
§_objectsMenu
This 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,e
truecostume§_costumesMenu§_directionDialMenuWhere I am=Here Auto Center Mouse-Pointer=MP✅ ⛔️ This object’s visibility=mine1ForFortrueHereForfalseForfalseForfalsemineSprite’s name
Add a text to the server your currently in. (Following all rules for the server) Part of the “JGlobe Easy Server Blocks”a
Join 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.a
Host Guest MonitorEv|UserMonitorGuestServer joinedServer name: User I’d:User Rank:return Rank;1Guestreturn Rank;3Hostreturn Rank;2MonitorA error has occurred.Stage
The 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,b
LTUppercase={ List=UL Text=UT T e x t=U T } Lowercase={ List=LL Text=LT T e x t=L T }UTU TLLLTL T
All 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=h
The number input is how many multilines the reporter will report.a,b
a
Current rank on this server. Part of the “JGlobe Easy Server Blocks”
a,b
bcdefgERROR: 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,b
Host=3 Monitor=2 Guest=1
Gives 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=323
All the text in a server. Part of the “JGlobe Easy Server Blocks”
Bans someone from the server. Part of the “JGlobe Easy Server Blocks”a
BanedBaned|
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
§_costumesMenu
Stops 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,b
1
This 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.a
empty 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 }a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1bb1LTABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzb1LTABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzb1LTABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzb1LTABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzb1LTABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzb1LTABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzb1
I 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 MaxMin
The 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
§_objectsMenu
falsetrue
truefalse
true
This 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 = 54a
falsefalse
a,b
falsefalse
a,b
falsefalse
?false
Jtruetrue
§_getVarNamesDict
a,b
global sprite scriptvar_declare(scope, name)
ALLVARStruefalse
a
Click 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§_objectsMenu
ALLBLOCKS
Makes the computer perform long division. Answer of long division Remainder # R #
b
1s & 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 ➗ 3
Find divisor Find Numerator
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 ➗ 3
Find divisor Find Numerator
a
sqrt=1 neg=2 ceiling=3 floor=4 abs=5 In=6 e^=7 10^=8 2^=9 id=10a1a1a1a1a1a1a1a1a1
sin cos tan aSin aCos aTancostanaSinaCosaTan
SOH CAH TOA Find Hypotenuse=FHCAHTOAFOLFHfalse
a
10
a
90§_directionDialMenu
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,b
ab00
Reports 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.
a
00
Use 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§_costumesMenu
a
§_costumesMenu
shown? size
say thinkJ-Bit2
Absolute Infinity
Infinity
a,b
width height name pixels # width based on size=WS height based on size=HScurrent§_costumesMenuheightnamepixels#WSHS
current§_costumesMenu100100
currentcurrent
ghostghost saturation brightness color fisheye whirl pixelate mosaic negative0colorsaturationbrightnessfisheyewhirlpixelatemosaicnegative
ghostghost saturation brightness color fisheye whirl pixelate mosaic negativecolorsaturationbrightnessfisheyewhirlpixelatemosaicnegative
a
100
Just a spacer for codes
110
a
a
Encodes 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,b
Let’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,b
a,Ω
1000
Absolute Infinity
Infinity
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 _ err
Doesn’t work correctly a
a,b,c
Equivelent 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 = initial
Loads 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 cursivefalsefalse
Creates 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_reset
Saves a file to your computer with a name, contents and an extension.
txttxt py js rtf xml html sb2 plain png csv
Makes a popup website.
https://https:// http://google.com
Simplified if (x = y){ }else{ } block.
Gets the latest item from your clipboard.
Deletes all of a sprites clones
Will 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 xml
othermotion looks sound pen control sensing operators variables othercommandcommand booleen reporterblocksblocks xml
Tells you if JavaScript is enabled with no error if it is not.
error1
Takes 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 first
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 _ return
This 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 match
Don't ask. Only for internal use by the SET PEN block.
true
§_getVarNamesDict110
left-rightdon't rotate all around left-right
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 _ _
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.
1
for use with the when <> hat block. it will have the effect of checking if the boolean is true, then waits until it is false.old
Runs 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
§_costumesMenu
creates 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 sprite
https://snap.berkeley.edu
§_objectsMenu
#1
Puts 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?1 pen2 effectsynchronous?costume namemessageclonesprite2#1
no only
careful with these effects!= hue (out of 360)=hue saturation brightness contrast invert blur sepiaeverything normal
Reports all the current sprite's scripts in a list.
clickedclicked pressed dropped mouse-entered mouse-departed scrolled-up scrolled-down stopped
§_messagesMenu
space0 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 Blocks
es:ejecutar función ( _ ) { _ } con _
es:llamar función ( _ ) { _ } con _
es:guadar proyecto
es:este proceso
es:¿esta secuencia tiene clic?
§_objectsMenuresulterror
colornumber text Boolean list sprite costume sound command reporter predicate color
2552552551002525
§_costumesMenu§_costumesMenu
motion looks sound pen control sensing operators variables
true
Version of mouse down? block with left, middle or right
el:είναι το _ ποντίκι κάτω; de:_ Maustaste-gedrückt? leftleft middle right
§_costumesMenu
current§_costumesMenuhorizontally vertically
titleurl hash title origin
Informs 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?
50
titletitle locationSnap!
Pause a selected range of processes.
allall this script all but this script
Unpause each paused process.
0
all sprites this sprite
1datamapmany1data lists
Reports 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#2
reports a JS string so you see all the didgits.
1
Reports 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.
number1
Reports 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.
1
This 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.
ab
Reports 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)))).
1
The 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.).
1
0-1 force off 0 switch 1 force on
truecommand reporter predicatecommand reporter predicate
1mouse-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); }12
Creates a new XML tag
name
Compiles an XML tag into its plain-text version
result<>contentsitem</tag>
Makes a pair from two values
Getter for pair values
firstfirst second ~ random
Setter for pair values
firstfirst second ~ random
Get an attribute from an XML tag empty -> children tag -> tag name contents -> contents of tag
tag contentsfindfindfirst5
Set the value of an XML tag's attributes tag -> tag name contents -> contents of tag
Finds the index of an item within an array
0
Creates a new list from the range specified by the parameters start empty -> 1 end empty -> #list
110resultresult
Adds a child to an XML tag
See [set XML attribute] Messy form, designed for quick setting of attributes
Used in [new custom block] Converts [variable parameter] to XML tags
54
Gets a section of a string based on its parameters Negative values are offsets from the end of the string start empty -> 1 last empty -> #string
11000resultresult
000100
256256horizontallyhorizontally vertically
256256horizontallyhorizontally vertically
CONTAINS = 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 one
raincoatcontainscontains starts with ends withcoat
Finds the position of the the 1st string in the 2nd ones.
el:εύρεση του _ στο _ de:_ finden in _ YourBuild Your Own Blocks
Finds the position of the the 1st string in the 2nd ones.
el:εύρεση του _ στο _ αρχίζοντας από το _ de:_ finden in _ ab _ lHello World31
Returns letters from X to X from the word
el:γράμματα _ ως _ του _ de:Buchstaben _ bis _ von _ 13World
Returns a list with the items from X to Y from a list
el:στοιχεία _ ως _ του _ de:Elementen _ bis _ von _ 13
Allows 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 palette
LET (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 spaces
el:_ ως αχώριστο κείμενο de:_ als untrennen Text §_getVarNamesDict
RGBAR (red)=R G (green)=G B (blue)=B A (alpha/transparency)=A RGBA RGB name
This 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.
1
HSV✐ raw HSL100HSV100
This 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 name
pt:lança o erro _
de:fange _ _ ca:agafa _ _ es:atrapar _ _ fr:attrape _ _ pt:captura _ _ cont3
de:wirf _ ca:llança _ es:lanzar _ fr:lance _ pt:lança _ catchtag
de: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 vector
pt: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-1scale1index1color110050
nearest 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?false1231
Takes 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) 25500
Takes 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.6
Reports 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.
truetrue
Creates 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 HSL010050
not a crayon
not an X11 color
11
1
smallest componentrgb255
smallest component2rgb255
2Red family8.7Brown/orange family17yellow501427.7522.334green52cyan67blue83.33333333purple9550505left of black
falsehue603.61001003.6100100
hue mod 100, other components cut off at [0, 100]
value100color3.6index1index-1scale1255fromto1newHSVHSL✐ fair?true
color300index15scale15grayscale15255fromto121✐ last set ascolor number✐ fair?true✐ raw HSL10050✐ raw HSV100100
015866161216341656✐ last set asRGB✐ fair?false1
44partial matchestrue4matchhead matchestrueSUBSET throws here if it handles a unique match1
44partial matchesfalse4matchhead matchesfalseSUBSET throws here if it handles a unique match2
015866161216341656
✐ last set asHSL33✐ fair?false1
✐ last set asRGB✐ fair?false
✐ last set asRGB✐ fair?false
✐ last set asRGB✐ fair?false
✐ last set asRGB✐ fair?false
0
4value0255131✐ last set asRGB✐ fair?false
✐ last set asHSL22✐ fair?false1
✐ last set asHSL✐ HSL11000100✐ raw HSL✐ fair?false1
✐ last set asHSV✐ fair?false✐ raw HSV1310031
100if USED TO BE fairHSL✐ fair?false1
✐ last set asHSL2222✐ fair?true1
✐ last set asHSL3333✐ fair?true1
2313
22✐ last set asHSV✐ fair?true1
33✐ last set asHSV✐ fair?true1
23131
Hello!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 clipboard
el:εγγραφή του _ στο πρόχειρο de:schreibe _ in die Zwischenablage copy/paste
motionmotion looks sound pen control sensing operators variablescommandcommand reporter predicate
ca: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 scripttest
Accepts 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 _
true
a
true
1
1true
a,b,c
using 60 fps=1 using current fps=22
Works 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 completion
This 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 script
true
§_messagesMenu
truetrue
§_objectsMenu
fdfdgffggf Fxshbv cfhjv
fdfdgffggf Fxshbv cfhjv
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAB4KADAAQAAAABAAABaAAAAAAHwbojAAAL30lEQVR4Ae3QMQEAAADCoPVPbQwfiEBhwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGPgMDI3+AAEeFvcCAAAAAElFTkSuQmCC255,255,255,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0127,01671841791%0%17