<snapdata remixID="8880604"><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,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAOhUlEQVR4Xu3VwQkAAAjEMN1/abewn7jAQRC64wgQIECAAIF3gX1fNEiAAAECBAiMAHsCAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQIHLFxAWmhEwHPAAAAAElFTkSuQmCC</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="68.000001" y="68.83333433333331"><block s="receiveKey"><l><option>space</option></l></block><custom-block s="greet player"></custom-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><block-definition s="player list" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><l>nyla</l><l>naomi</l><l>amy</l><l>matthew</l><l>layla</l><l>katie</l><l>evan</l></list></block></block></script></block-definition></blocks><variables><variable name="player list"><list struct="atomic" id="922">naomi,evan,nyla</list></variable></variables></project><media name="U1L2-GreetPlayer" app="Snap! 5.1, http://snap.berkeley.edu" version="1"></media></snapdata>