<snapdata remixID="8865566"><project name="***U2L2p1DrawShape (answer file)" app="Snap! 5.4, http://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAADXklEQVR4Xu3SvWpUYRSF4Z2EId3cgDDTabAaMyPmHGHwJ0FlECdIkNhobys2qYJ1Or2VFN5B8CLmGtIJQo5gl2JSzgtnvV/9wd57rWer67qufCbAJHC+JUAmeaf+T0CAQkATECAav8MFqAE0AQGi8TtcgBpAExAgGr/DBagBNAEBovE7XIAaQBMQIBq/wwWoATQBAaLxO1yAGkATECAav8MFqAE0AQGi8TtcgBpAExAgGr/DBagBNAEBovE7XIAaQBMQIBq/wwWoATQBAaLxO1yAGkATECAav8MFqAE0AQGi8TtcgBpAExAgGr/DBagBNAEBovE7XIAaQBMQIBq/wwWoATQBAaLxO1yAGkATECAav8MFqAE0AQGi8TtcgBpAExAgGr/DBagBNAEBovE7XIAaQBMQIBq/wwWoATQBAaLxO1yAGkATECAav8MFqAE0AQGi8TtcgBpAExAgGr/DBagBNAEBrov/+bNFzWZt7U/v12LxqobDIdpUT4cLcF2xq9Wqpo/e1fX139revqkHe/fq+Ph1HR4dVNs2NRgMempio2cJ8K64r65+V9ucVnW3se3udtU+ndR8vl+fPn+o8Xi80dZ6NEyAd5V5cfGzvn39cevLzs6fOv24rOlsr5bLNzUajXrkYeOnCHBd5JeXv+rt4ktV3dSLl09qPn9ch0dNNc3Bxlvq8UABriv37Ox7TSYP6+TkfY/7x08TIF5B9gICzO4fv16AeAXZCwgwu3/8egHiFWQvIMDs/vHrBYhXkL2AALP7x68XIF5B9gICzO4fv16AeAXZCwgwu3/8egHiFWQvIMDs/vHrBYhXkL2AALP7x68XIF5B9gICzO4fv16AeAXZCwgwu3/8egHiFWQvIMDs/vHrBYhXkL2AALP7x68XIF5B9gICzO4fv16AeAXZCwgwu3/8egHiFWQvIMDs/vHrBYhXkL2AALP7x68XIF5B9gICzO4fv16AeAXZCwgwu3/8egHiFWQvIMDs/vHrBYhXkL2AALP7x68XIF5B9gICzO4fv16AeAXZCwgwu3/8egHiFWQvIMDs/vHrBYhXkL2AALP7x68XIF5B9gICzO4fv16AeAXZCwgwu3/8egHiFWQvIMDs/vHrBYhXkL2AALP7x68XIF5B9gLn/wAa3UEvi2TbUAAAAABJRU5ErkJggg==</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="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.15544041450777202" y="0.46632124352331605" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="2,0,40,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><comment x="8.742857142857149" y="396.4761904761898" w="440.66666666666663" collapsed="false">TIF A.  The problem is that an outline A like this has two disconnected parts, so we can&apos;t just add points to the list A.  The simplest solution is to have a second list of points for the inside part. Students may experiment to find coordinates they find satisfying.  Here are some that work.  </comment><script x="8.742857142857149" y="469.80952380952294"><block s="doSetVar"><l>A2</l><block s="reportNewList"><list><block s="reportNewList"><list><l>-10</l><l>70</l></list></block><block s="reportNewList"><list><l>0</l><l>100</l></list></block><block s="reportNewList"><list><l>10</l><l>70</l></list></block></list><comment w="189" collapsed="false">You must initialize the list before you run the script below.&quot;</comment></block></block></script><script x="8.742857142857149" y="1059.8095238095243"><block s="doSetVar"><l>A</l><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportNewList"><list><l>-50</l><l>20</l></list></block><block s="reportNewList"><list><l>-10</l><l>120</l></list></block><block s="reportNewList"><list><l>10</l><l>120</l></list></block><block s="reportNewList"><list><l>50</l><l>20</l></list></block><block s="reportNewList"><list><l>30</l><l>20</l></list></block><block s="reportNewList"><list><l>20</l><l>50</l></list></block><block s="reportNewList"><list><l>-20</l><l>50</l></list></block><block s="reportNewList"><list><l>-30</l><l>20</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-10</l><l>70</l></list></block><block s="reportNewList"><list><l>0</l><l>100</l></list></block><block s="reportNewList"><list><l>10</l><l>70</l></list></block></list></block></list></block><comment w="140" collapsed="false">You must initialize the list before you run the script below.&quot;</comment></block></script><script x="41.542857142857166" y="635.1428571428573"><block s="clear"><comment w="169.33333333333334" collapsed="true">It starts just as it did before.</comment></block><block s="up"></block><custom-block s="for each %upvar of %l %cs"><l>point</l><block var="A"/><script><custom-block s="go to point %l"><block var="point"/></custom-block><block s="down"></block></script></custom-block><custom-block s="go to point %l"><block s="reportListItem"><l>1</l><block var="A"/></block></custom-block><block s="up"><comment w="279.3333333333333" collapsed="true">This repeats the script above w/o CLEARing first...</comment></block><custom-block s="go to point %l"><block s="reportListItem"><l>1</l><block var="A2"/></block></custom-block><custom-block s="for each %upvar of %l %cs"><l>point</l><block var="A2"/><script><custom-block s="go to point %l"><block var="point"/></custom-block><block s="down"></block></script></custom-block><custom-block s="go to point %l"><block s="reportListItem"><l>1</l><block var="A2"/></block></custom-block></script><comment x="7.142857142857143" y="955.2761904761907" w="475.3333333333333" collapsed="false">That approach wouldn&apos;t be generalizable.  Some letters, such as T, have only one closed path.  B, on the other hand, requires three separate closed paths.  So another approach would be to use a /list of paths/ to represent a letter, and a single script that lifts the pen between paths, however many there are. Here is an alternative that works for any letter. The list for A is used as an example:</comment><script x="20.742857142857158" y="1174.6761904761918"><block s="clear"></block><custom-block s="for each %upvar of %l %cs"><l>path</l><block var="A"/><script><block s="up"></block><custom-block s="for each %upvar of %l %cs"><l>point</l><block var="path"/><script><custom-block s="go to point %l"><block var="point"/></custom-block><block s="down"></block></script></custom-block><custom-block s="go to point %l"><block s="reportListItem"><l>1</l><block var="path"/></block></custom-block></script></custom-block><block s="up"></block><block s="doGlide"><l>1</l><l>0</l><l>0</l></block></script><comment x="8.742857142857149" y="530.809523809523" w="449.3333333333333" collapsed="false">(Students who are studying slope in their mathematics class may try computing slopes for the sides of the triangle in order to match the slopes of the lines in the A, but will notice that the points defining the A shape /don&apos;t/ define consistent slopes for the lines! For the purposes of this activity, formal computations are not as important as figuring out how to decide on &quot;good enough&quot; points and how to attack the programming challenge of integrating the second list.)</comment><comment x="11.028571428571428" y="361.1428571428571" w="426" collapsed="true">FYTD#5:&#xD;a)For what purposes might you not want to connect the first and last points? &#xD;If the shape we are drawing is not a closed polygon.&#xD;b)For what purposes might you want to have the pen down only when the sprite marks each point, but never when the sprite moves from one point to another?&#xD;If we only want to mark the vertices but not the edges.&#xD;c)For what purposes might you prefer go to over glide&#xD;If you want the drawing to happen fast rather than step by step.</comment><comment x="520.5428571428572" y="170.14285714285714" w="90" collapsed="true">This ordering of pen up and pen down does the trick.</comment><script x="24.6" y="145.82857142857165"><block s="clear"></block><block s="up"></block><custom-block s="for each %upvar of %l %cs"><l>point</l><block var="A"/><script><custom-block s="go to point %l"><block var="point"/></custom-block><block s="down"></block></script></custom-block><custom-block s="go to point %l"><block s="reportListItem"><l>1</l><block var="A"/></block></custom-block></script><script x="11.600000000000007" y="32.85714285714286"><block s="doSetVar"><l>A</l><block s="reportNewList"><list><block s="reportNewList"><list><l>-50</l><l>20</l></list></block><block s="reportNewList"><list><l>-10</l><l>120</l></list></block><block s="reportNewList"><list><l>10</l><l>120</l></list></block><block s="reportNewList"><list><l>50</l><l>20</l></list></block><block s="reportNewList"><list><l>30</l><l>20</l></list></block><block s="reportNewList"><list><l>20</l><l>50</l></list></block><block s="reportNewList"><list><l>-20</l><l>50</l></list></block><block s="reportNewList"><list><l>-30</l><l>20</l></list></block></list><comment w="158" collapsed="false">You must initialize the list before you run the script below.&quot;</comment></block></block></script></scripts></sprite><watcher var="A" style="normal" x="2.0104166666677656" y="0" color="243,118,29" hidden="true"/><watcher var="A2" style="normal" x="8.041666666667766" y="8.041666666666686" color="243,118,29" hidden="true"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><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="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="go to point %&apos;point&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doGlide"><l>.5</l><block s="reportListItem"><l>1</l><block var="point"/></block><block s="reportListItem"><l>2</l><block var="point"/></block></block></script></block-definition></blocks><variables><variable name="A"><list id="299"><item><list id="300"><item><list struct="atomic" id="301">-50,20</list></item><item><list struct="atomic" id="302">-10,120</list></item><item><list struct="atomic" id="303">10,120</list></item><item><list struct="atomic" id="304">50,20</list></item><item><list struct="atomic" id="305">30,20</list></item><item><list struct="atomic" id="306">20,50</list></item><item><list struct="atomic" id="307">-20,50</list></item><item><list struct="atomic" id="308">-30,20</list></item></list></item><item><list id="309"><item><list struct="atomic" id="310">-10,70</list></item><item><list struct="atomic" id="311">0,100</list></item><item><list struct="atomic" id="312">10,70</list></item></list></item></list></variable><variable name="A2"><list id="313"><item><list struct="atomic" id="314">-10,70</list></item><item><list struct="atomic" id="315">0,100</list></item><item><list struct="atomic" id="316">10,70</list></item></list></variable></variables></project><media name="***U2L2p1DrawShape (answer file)" app="Snap! 5.4, http://snap.berkeley.edu" version="1"></media></snapdata>