<snapdata remixID="9323517"><project name="Caesar Cipher" app="Snap! 5.4, http://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" codify="false" inheritance="true" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,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</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><watcher var="message" style="normal" x="11.687500000001478" y="11.687499999999993" color="243,118,29" hidden="true"/><watcher var="number of places shifted" style="normal" x="10" y="10" color="243,118,29" hidden="true"/><watcher var="shift" style="normal" x="10" y="31.000001999999995" color="243,118,29" hidden="true"/><watcher var="shifted message" style="normal" x="10" y="52.00000399999999" color="243,118,29" hidden="true"/><sprite name="Sprite" idx="1" x="12.000000000000078" y="12.000000000000005" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="0,153,44,1" pen="tip" id="12"><costumes><list struct="atomic" id="13"></list></costumes><sounds><list struct="atomic" id="14"></list></sounds><blocks></blocks><variables></variables><scripts><script x="10" y="10"><block s="receiveGo"></block><block s="doWait"><l>.5</l></block><block s="doAsk"><l>Do you want to encode or decode a message?</l></block><custom-block s="endoded message"></custom-block><custom-block s="decoded message"></custom-block></script><script x="382" y="36.00000000000023"><block s="receiveGo"></block><block s="clear"></block><block s="gotoXY"><l>0</l><l>0</l></block></script><script x="401.5263681875002" y="130.00000200000034"><custom-block s="decode one letter: %s shift: %s"><l>C</l><l>2</l></custom-block></script><script x="394.00000000000034" y="235.00000000000006"><custom-block s="encode one letter: %s shift: %s"><l>a</l><l>7</l></custom-block></script><script x="39" y="172.00000000000028"><block s="doIf"><block s="reportEquals"><block s="getLastAnswer"></block><l>encode</l></block><script><block s="doAsk"><l>What is your message?</l></block><block s="doSetVar"><l>message</l><block s="getLastAnswer"></block></block><block s="doAsk"><l>How many places would you like to shift the message?</l></block><block s="doSetVar"><l>shift</l><block s="getLastAnswer"></block></block><block s="doSetVar"><l>shifted message</l><custom-block s="encode a message: %s shift: %s"><block var="message"/><block var="shift"/></custom-block></block><block s="gotoXY"><l>-124</l><l>100</l></block><block s="setColor"><color>0,153,44,1</color></block><block s="write"><block s="reportJoinWords"><list><l>Shifted Message: </l><block var="shifted message"/></list></block><l>12</l></block><block s="gotoXY"><l>12</l><l>12</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="getLastAnswer"></block><l>decode</l></block><script><block s="doAsk"><l>What is your message?</l></block><block s="doSetVar"><l>message</l><block s="getLastAnswer"></block></block><block s="doAsk"><l>How many places would you like to shift the message?</l></block><block s="doSetVar"><l>shift</l><block s="getLastAnswer"></block></block><block s="doSetVar"><l>shifted message</l><custom-block s="decode a message: %s shift: %s"><block var="message"/><block var="shift"/></custom-block></block><block s="gotoXY"><l>-124</l><l>100</l></block><block s="setColor"><color>0,153,44,1</color></block><block s="write"><block s="reportJoinWords"><list><l>Shifted Message: </l><block var="shifted message"/></list></block><l>12</l></block><block s="gotoXY"><l>12</l><l>12</l></block></script></block></script></scripts></sprite></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="encode one letter:shift:" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="all but first letter of %&apos;string&apos;" type="reporter" category="operators"><comment x="0" y="0" w="199" collapsed="false">Takes a text string as input, and reports a new text string containing all but the first character of the input.</comment><header></header><code></code><translations>pt:_ sem o primeiro caractere&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>i</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="string"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportSum"><l>0</l><l>0</l></block></block></block></script></block><block s="doSetVar"><l>result</l><l></l></block><block s="doSetVar"><l>i</l><l>2</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block s="reportStringSize"><block var="string"/></block></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportLetter"><block var="i"/><block var="string"/></block></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="all but first word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="223.000001" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing all but the first word, with one space between words and no spaces at the beginning or end. (Note: consider using SENTENCE-&gt;LIST and processing the resulting list instead of doing recursion on sentences in text string form.  List operations are faster.)</comment><header></header><code></code><translations>pt:_ sem a primeira palavra&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l><l>bf</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>bf</l><l></l></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="sentence"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><script><block s="doReport"><l></l></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><l></l></block></script></block><block s="doUntil"><block s="reportGreaterThan"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><script><block s="doSetVar"><l>bf</l><block s="reportJoinWords"><list><block var="bf"/><block s="reportLetter"><block var="index"/><block var="sentence"/></block></list></block></block><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doReport"><block var="bf"/></block></script></block></script></block-definition><block-definition s="all but last letter of %&apos;string&apos;" type="reporter" category="operators"><comment x="0" y="0" w="218" collapsed="false">Takes a text string as input, and reports a new text string containing all but the last letter of the input.</comment><header></header><code></code><translations>pt:_ sem o último caractere&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>i</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="string"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportSum"><l>0</l><l>0</l></block></block></block></script></block><block s="doSetVar"><l>result</l><l></l></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportEquals"><block var="i"/><block s="reportStringSize"><block var="string"/></block></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportLetter"><block var="i"/><block var="string"/></block></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="all but last word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="211.99999999999997" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing all but the last word, with one space between words and no spaces at the beginning or end.  (Note: consider using SENTENCE-&gt;LIST and processing the resulting list instead of doing recursion on sentences in text string form.  List operations are faster.)</comment><header></header><code></code><translations>pt:_ sem a última palavra&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l><l>bl</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>bl</l><l></l></block><block s="doSetVar"><l>index</l><block s="reportStringSize"><block var="sentence"/></block></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="sentence"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><l>1</l></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><l>1</l></block><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="index"/><l>1</l></block><script><block s="doReport"><l></l></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><l>1</l></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><l></l></block></script></block><block s="doUntil"><block s="reportLessThan"><block var="index"/><l>1</l></block><script><block s="doSetVar"><l>bl</l><block s="reportJoinWords"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><block var="bl"/></list></block></block><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doReport"><block var="bl"/></block></script></block></script></block-definition><block-definition s="first word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="236" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing only the first word, with no spaces before or after it.</comment><header></header><code></code><translations>pt:a primeira palavra de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l><l>first</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>first</l><l></l></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="sentence"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doSetVar"><l>first</l><block s="reportJoinWords"><list><block var="first"/><block s="reportLetter"><block var="index"/><block var="sentence"/></block></list></block></block><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doSetVar"><l>first</l><block s="reportJoinWords"><list><block var="first"/><block s="reportLetter"><block var="index"/><block var="sentence"/></block></list></block></block></script></block><block s="doReport"><block var="first"/></block></script></block></script></block-definition><block-definition s="last letter of %&apos;word&apos;" type="reporter" category="operators"><comment x="0" y="0" w="260" collapsed="false">Takes a text string as input, and reports the last character in the string.</comment><header></header><code></code><translations>pt:o último caractere de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportLetter"><block s="reportStringSize"><block var="word"/></block><block var="word"/></block></block></script></block-definition><block-definition s="last word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="262" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing only the last word of the input, with no spaces before or after it.</comment><header></header><code></code><translations>pt:a última palavra de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l><l>last</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>last</l><l></l></block><block s="doSetVar"><l>index</l><block s="reportStringSize"><block var="sentence"/></block></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="sentence"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><l>1</l></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><l>1</l></block><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doSetVar"><l>last</l><block s="reportJoinWords"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><block var="last"/></list></block></block><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doSetVar"><l>last</l><block s="reportJoinWords"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><block var="last"/></list></block></block></script></block><block s="doReport"><block var="last"/></block></script></block></script></block-definition><block-definition s="empty word? %&apos;word&apos;" type="predicate" category="operators"><comment x="0" y="0" w="208" collapsed="false">Takes a text string as input, and reports TRUE if the string has no characters in it of any kind, otherwise false.</comment><header></header><code></code><translations>pt:a palavra _ está vazia&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportEquals"><block s="reportStringSize"><block var="word"/></block><l>0</l></block></block></script></block-definition><block-definition s="empty sentence? %&apos;sentence&apos;" type="predicate" category="operators"><comment x="0" y="0" w="221" collapsed="false">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.</comment><header></header><code></code><translations>pt:a frase _ está vazia&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l></list></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="sentence"/></block><l>0</l></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doReport"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></script></block-definition><block-definition s="join words %&apos;words&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:füge Wörter zusammen _&#xD;ca:uneix les paraules _&#xD;es:unir las palabras _&#xD;fr:fusionne les mots _&#xD;pt:uma frase com as palavras _&#xD;</translations><inputs><input type="%mult%txt"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block s="reportCDR"><block var="words"/></block></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="words"/></block></block></script></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>1</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>2</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="words"/></block><block s="reportCDR"><block s="reportCDR"><block var="words"/></block></block></block></custom-block></block></script></block><block s="doReport"><block s="reportJoinWords"><list><block s="reportListItem"><l>1</l><block var="words"/></block><l> </l><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></list></block></block></script></block-definition><block-definition s="list $arrowRight sentence %&apos;data&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Liste $arrowRight Satz _&#xD;ca:llista $arrowRight frase _&#xD;es:lista $arrowRight frase _&#xD;fr:liste $arrowRight phrase _&#xD;pt:uma frase com as palavras em _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="join words %mult%txt"><block var="data"/></custom-block></block></script></block-definition><block-definition s="sentence $arrowRight list %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Satz $arrowRight Liste _&#xD;ca:frase $arrowRight llista _&#xD;es:frase $arrowRight lista _&#xD;fr:phrase $arrowRight liste _&#xD;pt:uma lista com as palavras da frase _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></block></script></block-definition><block-definition s="word $arrowRight list %&apos;word&apos;" type="reporter" category="operators"><comment x="0" y="0" w="146.42857142857144" collapsed="false">report a list in which each item is one letter from the input word</comment><header></header><code></code><translations>de:Wort $arrowRight Liste _&#xD;ca:paraula $arrowRight llista _&#xD;es:palabra $arrowRight lista _&#xD;fr:mot $arrowRight liste _&#xD;pt:uma lista com os caracteres da palavra _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportTextSplit"><block var="word"/><l><option>letter</option></l></block></block></script></block-definition><block-definition s="list $arrowRight word %&apos;list&apos;" type="reporter" category="operators"><comment x="0" y="0" w="158.57142857142858" collapsed="false">join all the items of the input list&#xD;into a single word, and report it</comment><header></header><code></code><translations>de:Liste $arrowRight Wort _&#xD;ca:llista $arrowRight paraula _&#xD;es:lista $arrowRight palabra _&#xD;fr:liste $arrowRight mot _&#xD;pt:uma palavra com os caracteres em _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><block var="list"/></block></block></script></block-definition><block-definition s="encode one letter: %&apos;letter&apos; shift: %&apos;shift&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportUnicodeAsLetter"><block s="reportSum"><block s="reportUnicode"><block var="letter"/></block><block var="shift"/></block></block></block></script></block-definition><block-definition s="decode one letter: %&apos;letter&apos; shift: %&apos;shift&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportUnicodeAsLetter"><block s="reportDifference"><block s="reportUnicode"><block var="letter"/></block><block var="shift"/></block></block></block></script></block-definition><block-definition s="encode a message" type="command" category="operators"><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="encode a message: %&apos;message&apos; shift: %&apos;shift&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="list $arrowRight word %l"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="encode one letter: %s shift: %s"><l></l><block var="shift"/></custom-block></autolambda><list></list></block><custom-block s="word $arrowRight list %txt"><block var="message"/></custom-block></block></custom-block></block></script></block-definition><block-definition s="decode a message: %&apos;message&apos; shift: %&apos;shift&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="list $arrowRight word %l"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="decode one letter: %s shift: %s"><l></l><block var="shift"/></custom-block></autolambda><list></list></block><custom-block s="word $arrowRight list %txt"><block var="message"/></custom-block></block></custom-block></block></script></block-definition><block-definition s="message shift" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="endoded message" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportEquals"><block s="getLastAnswer"></block><l>encode</l></block><script><block s="doAsk"><l>What is your message?</l></block><block s="doSetVar"><l>message</l><block s="getLastAnswer"></block></block><block s="doAsk"><l>How many places would you like to shift the message?</l></block><block s="doSetVar"><l>shift</l><block s="getLastAnswer"></block></block><block s="doSetVar"><l>shifted message</l><custom-block s="encode a message: %s shift: %s"><block var="message"/><block var="shift"/></custom-block></block><block s="gotoXY"><l>-124</l><l>100</l></block><block s="setColor"><color>0,153,44,1</color></block><block s="write"><block s="reportJoinWords"><list><l>Shifted Message: </l><block var="shifted message"/></list></block><l>12</l></block><block s="gotoXY"><l>12</l><l>12</l></block></script></block></script></block-definition><block-definition s="decoded message" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportEquals"><block s="getLastAnswer"></block><l>decode</l></block><script><block s="doAsk"><l>What is your message?</l></block><block s="doSetVar"><l>message</l><block s="getLastAnswer"></block></block><block s="doAsk"><l>How many places would you like to shift the message?</l></block><block s="doSetVar"><l>shift</l><block s="getLastAnswer"></block></block><block s="doSetVar"><l>shifted message</l><custom-block s="decode a message: %s shift: %s"><block var="message"/><block var="shift"/></custom-block></block><block s="gotoXY"><l>-124</l><l>100</l></block><block s="setColor"><color>0,153,44,1</color></block><block s="write"><block s="reportJoinWords"><list><l>Shifted Message: </l><block var="shifted message"/></list></block><l>12</l></block><block s="gotoXY"><l>12</l><l>12</l></block></script></block></script></block-definition></blocks><variables><variable name="message"><l>hello</l></variable><variable name="number of places shifted"><l>0</l></variable><variable name="shift"><l>2</l></variable><variable name="shifted message"><l>fcjjm</l></variable></variables></project><media name="Caesar Cipher" app="Snap! 5.4, http://snap.berkeley.edu" version="1"></media></snapdata>