<snapdata remixID="8880662"><project name="U1L2 GreetPlayer" app="Snap! 5.1, 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" volume="100" pan="0" lines="round" ternary="true" codify="false" inheritance="false" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAACtUlEQVR4nO3BMQEAAADCoPVPbQwfoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+Bo3+AAF/RMkcAAAAAElFTkSuQmCC</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><sprite name="Sprite" idx="1" x="0.2702702702702027" y="-0.8108108108093575" heading="90.00000000000023" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="8"><costumes><list struct="atomic" id="9"></list></costumes><sounds><list struct="atomic" id="10"></list></sounds><blocks></blocks><variables></variables><scripts><script x="321" y="111"><block s="receiveGo"></block><custom-block s="greet player"></custom-block></script><script x="317" y="61"><block s="doSetVar"><l>player list</l><block s="reportNewList"><list></list></block></block></script></scripts></sprite><watcher var="player list" style="normal" x="10" y="10" color="243,118,29" extX="80" extY="70"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="greet player" type="command" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doAsk"><l>What&apos;s your name?</l></block><block s="doIfElse"><block s="reportListContainsItem"><block var="player list"/><block s="getLastAnswer"></block></block><script><block s="doSayFor"><block s="reportJoinWords"><list><l>Nice to see you again, </l><block s="getLastAnswer"></block><l>.</l></list></block><l>2</l></block></script><script><block s="doSayFor"><block s="reportJoinWords"><list><l>Hi, </l><block s="getLastAnswer"></block><l>! Nice to meet you!</l></list></block><l>2</l></block><block s="doAddToList"><block s="getLastAnswer"></block><block var="player list"/></block></script></block></script></block-definition><block-definition s="greet player (TIF version 1)" type="command" category="sensing"><comment x="0" y="0" w="190" collapsed="false">It&apos;s not surprising if students find this hard -- they need techniques we haven&apos;t taught yet.  The KEEP block is part of the tool library (File menu, Import Tools).</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>found</l><l>name</l><l>pet</l></list></block><block s="doAsk"><l>What&apos;s your name?</l></block><block s="doSetVar"><l>name</l><block s="getLastAnswer"></block></block><block s="doSetVar"><l>found</l><custom-block s="keep items such that %predRing from %l"><block s="reifyPredicate"><autolambda><block s="reportEquals"><block s="reportListItem"><l>1</l><l/></block><block var="name"/></block></autolambda><list></list></block><block var="player list"/></custom-block></block><block s="doIfElse"><custom-block s="empty? %l"><block var="found"/></custom-block><script><block s="doSayFor"><block s="reportJoinWords"><list><l>Hi, </l><block var="name"/><l>! Nice to meet you!</l></list></block><l>2</l></block><block s="doAsk"><l>Do you have a pet?</l></block><block s="doSetVar"><l>pet</l><block s="getLastAnswer"></block></block><block s="doIfElse"><block s="reportEquals"><block var="pet"/><l>no</l></block><script><block s="doAddToList"><block s="reportNewList"><list><block var="name"/><l>NONE</l></list></block><block var="player list"/></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="pet"/><l>yes</l></block><script><block s="doAsk"><l>What kind?</l></block><block s="doAddToList"><block s="reportNewList"><list><block var="name"/><block s="getLastAnswer"></block></list></block><block var="player list"/></block></script><script><block s="doAddToList"><block s="reportNewList"><list><block var="name"/><block var="pet"/></list></block><block var="player list"/><comment w="161.9999980000001" collapsed="false">If neither yes nor no, assume it&apos;s a pet name.</comment></block></script></block></script></block></script><script><block s="doSetVar"><l>name</l><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="found"/></block></block></block><block s="doSetVar"><l>pet</l><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="found"/></block></block></block><block s="doSayFor"><block s="reportJoinWords"><list><l>Nice to see you again, </l><block var="name"/><l>.</l></list></block><l>2</l></block><block s="doIf"><block s="reportNot"><block s="reportEquals"><block var="pet"/><l>NONE</l></block></block><script><block s="doAsk"><block s="reportJoinWords"><list><l>How&apos;s your </l><block var="pet"/><l>?</l></list></block><comment w="148" collapsed="false">We ignore the answer, just as in real life.  :-)</comment></block></script></block></script></block></script></block-definition><block-definition s="label %&apos;text&apos; of size %&apos;size&apos;" type="command" category="pen"><comment x="0" y="0" w="90" collapsed="false">LABEL will stamp text on the stage at the given font size. The direction of the text is the direction the sprite is facing, and color will match the pen color.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">Hello!</input><input type="%n">12</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>text</l><l>size</l></list><l>var stage = this.parentThatIsA(StageMorph),&#xD;    context = stage.penTrails().getContext(&apos;2d&apos;),&#xD;    rotation = radians(this.direction() - 90),&#xD;    trans = new Point(&#xD;      this.center().x - stage.left(),&#xD;      this.center().y - stage.top()&#xD;    ),&#xD;    isWarped = this.Warped,&#xD;    len,&#xD;    pos;&#xD;&#xD;if (isWarped) {endWarp(); }&#xD;context.save();&#xD;context.font = size + &apos;px monospace&apos;;&#xD;context.textAlign = &apos;left&apos;;&#xD;context.textBaseline = &apos;alphabetic&apos;;&#xD;context.fillStyle = this.color.toString();&#xD;len = context.measureText(text).width;&#xD;trans = trans.multiplyBy(1 / stage.scale);&#xD;context.translate(trans.x, trans.y);&#xD;context.rotate(rotation);&#xD;context.fillText(text, 0, 0);&#xD;context.translate(-trans.x, -trans.y);&#xD;context.restore();&#xD;pos = new Point(&#xD;  len * Math.sin(radians(this.direction())),&#xD;  len * Math.cos(radians(this.direction())));&#xD;pos = pos.add(new Point(this.xPosition(), this.yPosition()));&#xD;this.gotoXY(pos.x, pos.y, false);&#xD;this.changed();&#xD;if (isWarped) {this.startWarp(); }&#xD;stage.changed();</l></block><list><block var="text"/><block var="size"/></list></block></script></block-definition><block-definition s="map %&apos;function&apos; over %&apos;lists&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%mult%l"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>mapone</l><l>mapmany</l></list></block><block s="doSetVar"><l>mapone</l><block s="reifyScript"><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="evaluate"><block var="mapone"/><list><block s="reportCDR"><block var="data"/></block></list></block></block></block></script><list><l>data</l></list></block></block><block s="doSetVar"><l>mapmany</l><block s="reifyScript"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportListItem"><l>1</l><block var="data lists"/></block></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block></block><block s="evaluate"><block var="mapmany"/><list><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportCDR"><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block></list></block></block></block></script><list><l>data lists</l></list></block></block><block s="doIfElse"><custom-block s="empty? %l"><block s="reportCDR"><block var="lists"/></block></custom-block><script><block s="doReport"><block s="evaluate"><block var="mapone"/><list><block s="reportListItem"><l>1</l><block var="lists"/></block></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="mapmany"/><list><block var="lists"/></list></block></block></script></block></script></block></script></block-definition><block-definition s="empty? %&apos;data&apos;" type="predicate" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block></block></script></block-definition><block-definition s="keep items such that %&apos;pred&apos; from %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%predRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIfElse"><block s="evaluate"><block var="pred"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script><script><block s="doReport"><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></script></block></script></block></script></block-definition><block-definition s="combine with %&apos;function&apos; items of %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="data"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="data"/></block></block></script></block><block s="doReport"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="combine with %repRing items of %l"><block var="function"/><block s="reportCDR"><block var="data"/></block></custom-block></list></block></block></script></block></script></block-definition><block-definition s="if %&apos;test&apos; then %&apos;true&apos; else %&apos;false&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%anyUE"></input><input type="%anyUE"></input></inputs><script><block s="doIfElse"><block var="test"/><script><block s="doReport"><block s="evaluate"><block var="true"/><list></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="false"/><list></list></block></block></script></block></script></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="reportGreaterThan"><block var="start"/><block var="end"/></block><script><block s="doSetVar"><l>step</l><l>-1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportLessThan"><block var="i"/><block var="end"/></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="reportGreaterThan"><block var="i"/><block var="end"/></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="join words %&apos;words&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="words"/></block></custom-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></script><scripts><script x="229.000003" y="196.77778077777774"><block s="reportJoinWords"><list><l></l><l></l></list></block></script></scripts></block-definition><block-definition s="list $arrowRight sentence %&apos;data&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"><custom-block s="join words %mult%txt"><block var="data"/></custom-block></block></script></block></script></block-definition><block-definition s="sentence $arrowRight list %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></block></script></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doRun"><block var="action"/><list></list></block></script><list><l>cont</l></list></block></block><custom-block s="ignore %s"><l>3</l></custom-block></script></block-definition><block-definition s="throw %&apos;cont&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">catchtag</input></inputs><script><block s="doRun"><block var="cont"/><list></list></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;value&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doReport"><block s="evaluate"><block var="value"/><list></list></block></block></script><list><l>cont</l></list></block></block></script></block-definition><block-definition s="throw %&apos;tag&apos; %&apos;value&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">catchtag</input><input type="%s"></input></inputs><script><block s="doRun"><block var="tag"/><list><block var="value"/></list></block></script></block-definition><block-definition s="for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%l"></input><input type="%cs"></input></inputs><script><block s="doUntil"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doSetVar"><l>item</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><block s="doRun"><block var="action"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="doSetVar"><l>data</l><block s="reportCDR"><block var="data"/></block></block></script></block></script></block-definition><block-definition s="if %&apos;test&apos; do %&apos;action&apos; and pause all $pause-1-255-220-0" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>breakpoint</l></list></block><block s="doIf"><block s="evaluate"><block var="test"/><list></list></block><script><block s="doSetVar"><l>breakpoint</l><block var="test"/></block><block s="doShowVar"><l>breakpoint</l></block><block s="doRun"><block var="action"/><list></list></block><block s="doPauseAll"></block><block s="doHideVar"><l></l></block></script></block></script></block-definition><block-definition s="word $arrowRight list %&apos;word&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportTextSplit"><block var="word"/><l><option>letter</option></l></block></block></script></block></script></block-definition><block-definition s="ignore %&apos;x&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="tell %&apos;sprite&apos; to %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">Sprite</input><input type="%cs"></input></inputs><script><block s="doRun"><block s="reportAttributeOf"><block var="action"/><block var="sprite"/></block><list></list></block></script></block-definition><block-definition s="ask %&apos;sprite&apos; for %&apos;expression&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">Sprite</input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportAttributeOf"><block var="expression"/><block var="sprite"/></block><list></list></block></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="greet player (TIF version 2)" type="command" category="sensing"><comment x="0" y="0" w="148" collapsed="false">This version also requires Import Tools, for the FOR EACH block.</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>found</l><l>name</l><l>pet</l></list></block><block s="doAsk"><l>What&apos;s your name?</l></block><block s="doSetVar"><l>name</l><block s="getLastAnswer"></block></block><custom-block s="for each %upvar of %l %cs"><l>name-and-pet</l><block var="player list"/><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="name-and-pet"/></block><block var="name"/></block><script><block s="doSetVar"><l>found</l><block var="name-and-pet"/></block><block s="doSetVar"><l>name</l><block s="reportListItem"><l>1</l><block var="found"/></block></block><block s="doSetVar"><l>pet</l><block s="reportListItem"><l>2</l><block var="found"/></block></block><block s="doSayFor"><block s="reportJoinWords"><list><l>Nice to see you again, </l><block var="name"/><l>.</l></list></block><l>2</l></block><block s="doIf"><block s="reportNot"><block s="reportEquals"><block var="pet"/><l>NONE</l></block></block><script><block s="doAsk"><block s="reportJoinWords"><list><l>How&apos;s your </l><block var="pet"/><l>?</l></list></block><comment w="148" collapsed="false">We ignore the answer, just as in real life.  :-)</comment></block></script></block><block s="doStopThis"><l><option>this block</option></l></block></script></block></script></custom-block><block s="doSayFor"><block s="reportJoinWords"><list><l>Hi, </l><block var="name"/><l>! Nice to meet you!</l></list></block><l>2</l><comment w="90" collapsed="false">Not found.</comment></block><block s="doAsk"><l>Do you have a pet?</l></block><block s="doSetVar"><l>pet</l><block s="getLastAnswer"></block></block><block s="doIfElse"><block s="reportEquals"><block var="pet"/><l>no</l></block><script><block s="doAddToList"><block s="reportNewList"><list><block var="name"/><l>NONE</l></list></block><block var="player list"/></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="pet"/><l>yes</l></block><script><block s="doAsk"><l>What kind?</l></block><block s="doAddToList"><block s="reportNewList"><list><block var="name"/><block s="getLastAnswer"></block></list></block><block var="player list"/></block></script><script><block s="doAddToList"><block s="reportNewList"><list><block var="name"/><block var="pet"/></list></block><block var="player list"/><comment w="161.9999980000001" collapsed="false">If neither yes nor no, assume it&apos;s a pet name.</comment></block></script></block></script></block></script></block-definition></blocks><variables><variable name="player list"><list struct="atomic" id="913">Justin,Ricard</list></variable></variables></project><media name="U1L2 GreetPlayer" app="Snap! 5.1, http://snap.berkeley.edu" version="1"></media></snapdata>