<snapdata remixID="14966758"><project name="U4L2-Cesar Cipher Project" app="Snap! 11.0.8, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="U4L2-Cesar Cipher Project"><notes></notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="Encode %&apos;text&apos; %&apos;shift&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%n"></input></inputs><script><block s="doDeclareVariables"><list><l>encodedText</l></list></block><block s="doSetVar"><l>encodedText</l><l></l></block><custom-block s="for %upvar = %n to %n %cs"><l>i</l><l>1</l><block s="reportTextAttribute"><l><option>length</option></l><block var="text"/></block><script><block s="doSetVar"><l>encodedText</l><block s="reportJoinWords"><list><block var="encodedText"/><custom-block s="Encode One Character %s %n"><block s="reportLetter"><block var="i"/><block var="text"/></block><block var="shift"/></custom-block></list></block></block></script></custom-block><block s="doReport"><block var="encodedText"/></block></script><scripts><script x="17.599999999999984" y="257.8"><block s="doReport"><custom-block s="list $arrowRight word %l"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="Encode One Character %s %n"><l></l><block var="shift"/></custom-block></autolambda><list></list></block><block s="reportTextSplit"><block var="text"/><l><option>letter</option></l></block></block></custom-block><comment w="90" collapsed="false">A more clever approach to this problem can be achieved using the higher order function (HOF) map.  Courtesy of Christopher Archie of teacher cohort 17-18. </comment></block></script></scripts></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>step</l><l>tester</l></list></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="start"/><block var="end"/></list></block><script><block s="doSetVar"><l>step</l><l>-1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportVariadicLessThan"><list><block var="i"/><block var="end"/></list></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>step</l><l>1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportVariadicGreaterThan"><list><block var="i"/><block var="end"/></list></block></autolambda><list></list></block></block></script></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doUntil"><block s="evaluate"><block var="tester"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doChangeVar"><l>i</l><block var="step"/></block></script></block></script></block-definition><block-definition s="list $arrowRight word %&apos;list&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportJoinWords"><block var="list"/></block></block></script></block></script></block-definition><block-definition s="Encode One Character %&apos;char&apos; %&apos;shift&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportUnicodeAsLetter"><block s="reportVariadicSum"><list><block s="reportUnicode"><block var="char"/></block><block var="shift"/></list></block></block></block></script></block-definition><block-definition s="Encode One Character (TIF A version) %&apos;char&apos; %&apos;shift&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%n"></input></inputs><script><block s="doDeclareVariables"><list><l>new character</l></list></block><block s="doSetVar"><l>new character</l><block s="reportVariadicSum"><list><block s="reportUnicode"><block var="char"/></block><block var="shift"/></list></block></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="new character"/><l>126</l></list></block><script><block s="doChangeVar"><l>new character</l><block s="reportDifference"><l>32</l><l>127</l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="new character"/><l>32</l></list></block><script><block s="doChangeVar"><l>new character</l><block s="reportDifference"><l>127</l><l>32</l></block></block></script><list></list></block><block s="doReport"><block s="reportUnicodeAsLetter"><block var="new character"/></block></block></script></block-definition><block-definition s="Encode (TIF A version) %&apos;text&apos; %&apos;shift&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%n"></input></inputs><script><block s="doDeclareVariables"><list><l>encodedText</l></list></block><block s="doSetVar"><l>encodedText</l><l></l></block><custom-block s="for %upvar = %n to %n %cs"><l>i</l><l>1</l><block s="reportTextAttribute"><l><option>length</option></l><block var="text"/></block><script><block s="doSetVar"><l>encodedText</l><block s="reportJoinWords"><list><block var="encodedText"/><custom-block s="Encode One Character (TIF A version) %s %n"><block s="reportLetter"><block var="i"/><block var="text"/></block><block var="shift"/></custom-block></list></block></block></script></custom-block><block s="doReport"><block var="encodedText"/></block></script><scripts><script x="17.599999999999984" y="257.8"><block s="doReport"><custom-block s="list $arrowRight word %l"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="Encode One Character %s %n"><l></l><block var="shift"/></custom-block></autolambda><list></list></block><block s="reportTextSplit"><block var="text"/><l><option>letter</option></l></block></block></custom-block><comment w="90" collapsed="false">A more clever approach to this problem can be achieved using the higher order function (HOF) map.  Courtesy of Christopher Archie of teacher cohort 17-18. </comment></block></script></scripts></block-definition><block-definition s="initials from name %&apos;name&apos;" type="reporter" category="operators"><comment x="0" y="0" w="79.33333333333333" collapsed="true">4.2.2 ITIT 5</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportCombine"><block s="reportKeep"><block s="reifyPredicate"><autolambda><custom-block s="is %s between %s and %s ?"><block s="reportUnicode"><l></l></block><block s="reportUnicode"><l>A</l></block><block s="reportUnicode"><l>Z</l></block></custom-block></autolambda><list></list></block><block s="reportTextSplit"><block var="name"/><l><option>letter</option></l></block></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l></l></list></block></autolambda><list></list></block></block><comment w="238" collapsed="false">Version using UNICODE block.&#xD;Treats the name as just a string of characters and searches for capital letters in it.  So if the name were &quot;BeAuTy and jOy of computiNg&quot; the block would report BATON. </comment></block></script><scripts><script x="14.666666666666666" y="190.88888888888889"><block s="doReport"><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportLetter"><l>1</l><l></l></block></autolambda><list></list></block><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportTextSplit"><l></l><l>-</l></block></autolambda><list></list></block><block s="reportTextSplit"><block var="name"/><l><option>word</option></l></block></block><block s="reifyReporter"><autolambda><block s="reportConcatenatedLists"><list><l/><l/></list></block></autolambda><list></list></block></block></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l></l></list></block></autolambda><list></list></block><comment w="243.33333333333334" collapsed="false">Version using an additional SPLIT block.&#xD;This version respects the abstraction that text is made up of words, not characters.  It introduces hyphens as another word delimiter (in addition to spaces).  It has an unfortunately hairy structure of higher order function calls. because the split by hyphens has to be done in each word separately (that&apos;s the inner MAP) and then the result has to be flattened (the APPEND).  The ideal solution would split into words based on spaces and hyphens together, but Snap! doesn&apos;t have that capability (yet).</comment></block></block></script></scripts></block-definition><block-definition s="%&apos;a&apos; ≤ %&apos;b&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportVariadicOr"><list><block s="reportVariadicLessThan"><list><block var="a"/><block var="b"/></list></block><block s="reportVariadicEquals"><list><block var="a"/><block var="b"/></list></block></list></block></block></script></block-definition><block-definition s="%&apos;a&apos; ≥ %&apos;b&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportVariadicOr"><list><block s="reportVariadicGreaterThan"><list><block var="a"/><block var="b"/></list></block><block s="reportVariadicEquals"><list><block var="a"/><block var="b"/></list></block></list></block></block></script></block-definition><block-definition s="is %&apos;mid&apos; between %&apos;low&apos; and %&apos;high&apos; ?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportVariadicAnd"><list><custom-block s="%s ≥ %s"><block var="mid"/><block var="low"/></custom-block><custom-block s="%s ≤ %s"><block var="mid"/><block var="high"/></custom-block></list></block></block></script><scripts><comment x="14.666666666666666" y="88.8" w="304.6666666666667" collapsed="false">As the lab says, it&apos;s okay to use &quot;&gt;&quot; and &quot;&lt;&quot; instead of &quot;≥&quot; and &quot;≤.&quot;</comment></scripts></block-definition></blocks><primitives></primitives><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="true" hyperops="true" codify="false" inheritance="false" sublistIDs="false" id="399"><pentrails>data:image/png;base64,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</pentrails><costumes><list struct="atomic" id="400"></list></costumes><sounds><list struct="atomic" id="401"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="150" y="50" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="406"><costumes><list struct="atomic" id="407"></list></costumes><sounds><list struct="atomic" id="408"></list></sounds><blocks></blocks><variables></variables><scripts><script x="42" y="30"><block s="receiveGo"></block><block s="doSetVar"><l>inputText</l><l></l></block><block s="doSetVar"><l>shiftValue</l><l></l></block><block s="doSetVar"><l>outputText</l><l></l></block><block s="gotoXY"><l>150</l><l>50</l></block><block s="doAsk"><l>Enter your text:</l></block><block s="doSetVar"><l>inputText</l><block s="getLastAnswer"></block></block><block s="doUntil"><block s="reportIsA"><block s="getLastAnswer"></block><l><option>number</option></l></block><script><block s="doAsk"><l>What is the Shift Value?  Enter a even number.</l></block><block s="doSetVar"><l>shiftValue</l><block s="getLastAnswer"></block></block></script></block><block s="doAsk"><l>Encrypt or Decrypt?</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportLetter"><l>1</l><block s="getLastAnswer"></block></block><l>D</l></list></block><script><block s="doSetVar"><l>shiftValue</l><block s="reportDifference"><l>0</l><block var="shiftValue"/></block></block></script><list></list></block><block s="doSetVar"><l>outputText</l><block s="reportNewList"><list><custom-block s="Encode %txt %n"><block var="inputText"/><block var="shiftValue"/></custom-block></list></block></block></script></scripts></sprite><watcher var="shiftValue" style="normal" x="1" y="50.99999999999997" color="243,118,29"/><watcher var="inputText" style="normal" x="1.3333333333332575" y="6.611111111111114" color="243,118,29"/><watcher var="outputText" style="normal" x="8.361111111111086" y="98.61111161111114" color="243,118,29"/></sprites></stage><variables><variable name="outputText"><l></l></variable><variable name="inputText"><l></l></variable><variable name="shiftValue"><l></l></variable></variables></scene></scenes></project><media name="U4L2-Cesar Cipher Project" app="Snap! 11.0.8, https://snap.berkeley.edu" version="2"></media></snapdata>