<snapdata remixID="10256196"><project name="Tic Tac Toe game" app="Snap! 6, https://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="true" hyperops="true" codify="false" inheritance="false" 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><sprite name="Square" idx="1" x="0" y="-150" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="1" color="80,80,80,1" pen="tip" id="8"><costumes><list id="9"><item><costume name="Empty" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAACL0lEQVRoQ91aS3LCMAx1LkG3TE/CVUonPRRtzpIttNNFT0QnDLSOsfF7sqTQZgmy9D7+KJ504d6eLoRwzIAq/Z6ETmGbEMJoyosBCQLP4V2vHz9PhLbP/Ti87Uw5nZJPyk8VDZ794SO89P2XDSFD4CUtbAghRJAY1sFjCPv31KHXnd50sABdIWnjUFwUIYXEgG7ZE8oBUSSQpl+GEKi2JIwjZKjsD/hLDaZWFFsmxCSUSKk95ox3Tmjbj8NgeLA6iMRNOW1VDfL9EurCZjs5pNn6ODjC7XKtgC7dMtO3Ndb8G1OOIOlLKAeMAIssuTqhWsHa/wgKxW4iT8gKZOu7UA1Xttu+tcvVEkrdaBmXdBb1KccUQ3c1Q2F4QoZgGO1Kr/LXhNAXvHsiFinBO0TLmAzQEqKQR04oTqgFkt0FM3UxQg4Hosj4FBe9bbN3BSlKTScLCmAOieRbZpAfIdQdySv4orucYt+WS1U/h9DTn11fqGPkzPWbciSwWThB3r/bbiF2GXuDoI9DhMKtfOWEHEEyJOWEmCqOsfNrrKfMRaOHE2yNG2cV5hDTiKJ9H0sCdNn3KhgE1RKGOQRsly0gpGcO1iloXgWjLJkpXclpc7AarQ9EH27KGTeWV+kFwvhsCjVgtf8Ra84x7Q4RxYqh/44QI0qFvM2mwABUXpf3MeVaBYjG2xFC1wUaBzqJ7XItRRXVR1LJHWq8nUHASWJmhMy/aJQgjL9sBL9yXK0eDt9Me/+GZ423sQAAAABJRU5ErkJggg==" id="10"/></item><item><costume name="X" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAADrUlEQVRoQ82aPW8TQRCGx12sSCS1FaJ0mB8QJWWqCCU2UgTENsRREMYtnwVl4OiQ4F8Ep0pJCXQBpNBg3EKwBJShiyiMztzZe3f78c7uXpyr/LE7O8+8s7O3e1cgooVqdePJ9PTUFMVXgYgGo2/JD7r/ZF247RXDIj+fnv79Eg63sri49GZ75/YYKOwdAonOhJ/P8fX710/6fHT0fQhUqzUOOp29WWd/4yA4G+IbOPzwiZ4HgWcgrh+cAMjaCr9lgV7vzQ5TDL04zqA241QX5zLYdzIKIUFA2qQhB0SHH3UpFxk9/tGn+YtzYIzOptlxv0/zc1mfIIXutNpUKpUoeLbrx1sx+hZKdL/2qLpeoRcvX9G1jasJnyCgk5M/1LrbpnK57A/KMjRDmEqFbm01pb5AQOHYI6hLZQoCT0rFUKBKJpjQXBJos3HQ2RfWodRAE1Eq8gGByQIBC6sWCow0N9u63R5Vq+o0E+3BKSd2clKKCW1UJmWPByR0doICJcrAAMGQAwEdE4VCrH5gXxOTURlFQeEpJHoROZ6HUsM5E5bmprw0K4NhvFMwhTH63ydUQpmnu/+3LrIrnQnRd3uFUoP4gILTTBNo97ttwbgLlA8Y9Tqku9dSSB1z2UD5grFaWBNqKyraEKrVpvLlMgXiPJC018JYVEynsq2rGYhSvmHcFTJUQR0UXM3AShs381blVONmoAZE3Z6wBdCVZpVR1TyWrkPcMwUggiJUvV7T7mcAc9omuSskVr+t5ja9f/eW7t1/kNycWUx+1WILnSm4Ri3sH86Z9bU1KhaLdP3Gpnrn6wg3VqhAK7Vwg+f7oDE1Zx4/ejjezpvmj8XZQ+4pJyvNSEk3ZoVCyVyBdOsMC4qRhmoghhFZNJFtMwTF9EOvENNYDMbZz0BQxvwbN/CectI0kwUmp+08BgQq5XLXbKWU5I5Bvw4xpHaBcdl6jFz0uWNFCgAam8TWQ3aWbsgWLOXS3ghGfSiTNm+VfpERO6CosxEGnHsy9WyhrIGMMGiOie1SATBCSQJmBeQVxqCiESoVOAyIM2cc0gzeJGrUx4B0c8YWgNkPVQq+l2OdATCdRaeb8aEbehTMgom9yxtK8XgUSrnV1Su0tLw8ueeriupXb9y0e2h8Hh/rh+k3M3Mhk63qg8awKeeNEnQiaNad9H2Z0qQmnaGUs/E11z5nCuS7GDDtnU+FmBBiNiSApC8AcnLHwRFoGMC++ALgAhHtGA37fG3TOJjQgPeK57d/Z1HYQu2KGjYAAAAASUVORK5CYII=" id="11"/></item><item><costume name="O" center-x="26" center-y="26" image="data:image/png;base64,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" id="12"/></item></list></costumes><sounds><list struct="atomic" id="13"></list></sounds><blocks></blocks><variables><variable name="square number"><l>9</l></variable></variables><scripts><script x="268" y="10"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doIf"><block s="reportEquals"><block s="reportAttributeOf"><l><option>costume name</option></l><block s="reportGet"><l><option>self</option></l></block></block><l>Empty</l></block><script><block s="doIfElse"><block var="X&apos;s turn?"/><script><block s="doSwitchToCostume"><l>X</l></block><block s="doReplaceInList"><block var="square number"/><block var="board"/><l>X</l></block><block s="doIfElse"><custom-block s="Won? %txt"><l>X</l></custom-block><script><block s="doBroadcast"><l>X is the winner</l></block></script><script><block s="doChangeVar"><l>counter</l><l>1</l></block><block s="doIfElse"><block s="reportEquals"><block var="counter"/><l>9</l></block><script><block s="doBroadcast"><l>tie game</l></block></script><script><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block></script><script><block s="doSwitchToCostume"><l>O</l></block><block s="doReplaceInList"><block var="square number"/><block var="board"/><l>O</l></block><block s="doIfElse"><custom-block s="Won? %txt"><l>O</l></custom-block><script><block s="doBroadcast"><l>O is the winner</l></block></script><script><block s="doChangeVar"><l>counter</l><l>1</l></block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block></script></block></script><script x="371" y="600"><block s="receiveGo"></block><block s="doWait"><l>1</l></block><block s="doSwitchToCostume"><l>Empty</l></block><block s="gotoXY"><l>0</l><l>0</l></block><custom-block s="makeBoard"></custom-block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSetVar"><l>board</l><block s="reportNewList"><list><l>Empty</l><l>Empty</l><l>Empty</l><l>Empty</l><l>Empty</l><l>Empty</l><l>Empty</l><l>Empty</l><l>Empty</l></list></block></block><block s="doSetVar"><l>counter</l><l>0</l></block></script><script x="64" y="567.0000000000002"><block s="receiveMessage"><l>X is the winner</l></block><block s="hide"></block></script><script x="46" y="436.9999999999996"><block s="receiveMessage"><l>tie game</l></block><block s="hide"></block></script><script x="22" y="659.9999999999995"><block s="receiveMessage"><l>O is the winner</l></block><block s="hide"></block></script><script x="100" y="724.9999999999993"><block s="receiveGo"></block><block s="removeClone"></block></script></scripts></sprite><sprite name="Sprite" idx="2" x="0" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="135.15,0,40.5450000000001,1" pen="tip" id="139"><costumes><list id="140"><item><costume name="alonzo" center-x="45" center-y="60" image="data:image/png;base64,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" id="141"/></item></list></costumes><sounds><list struct="atomic" id="142"></list></sounds><blocks></blocks><variables></variables><scripts><script x="66" y="48"><block s="receiveGo"></block><block s="hide"></block><block s="gotoXY"><l>0</l><l>0</l></block></script><script x="60" y="149"><block s="receiveMessage"><l>X is the winner</l></block><block s="show"></block><block s="doSayFor"><l>Game Over X is the winner</l><l>10</l></block></script><script x="61" y="250.99999999999991"><block s="receiveMessage"><l>O is the winner</l></block><block s="show"></block><block s="doSayFor"><l>Game Over O is the winner</l><l>10</l></block></script><script x="64" y="352.9999999999999"><block s="receiveMessage"><l>tie game</l></block><block s="show"></block><block s="doSayFor"><l>tie game</l><l>10</l></block></script></scripts></sprite><watcher var="X&apos;s turn?" style="normal" x="3.40625" y="3.406250000000007" color="243,118,29" hidden="true"/><watcher scope="Square" var="square number" style="normal" x="8.054187192118206" y="8.054187192118228" color="243,118,29" hidden="true"/><watcher var="board" style="normal" x="7.518170071873101" y="13.129007510296361" color="243,118,29" extX="80" extY="70"/><watcher var="counter" style="normal" x="10" y="10" color="243,118,29" hidden="true"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><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.00000300000002" 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="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="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="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="makeBoard" type="command" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSetVar"><l>square number</l><l>0</l></block><block s="show"></block><custom-block s="for %upvar = %n to %n %cs"><l>row</l><l>1</l><l>3</l><script><custom-block s="for %upvar = %n to %n %cs"><l>column</l><l>1</l><l>3</l><script><block s="doChangeVar"><l>square number</l><l>1</l></block><block s="createClone"><l><option>myself</option></l></block><block s="changeXPosition"><l>50</l></block></script></custom-block><block s="changeXPosition"><l>-150</l></block><block s="changeYPosition"><l>-50</l></block></script></custom-block><block s="hide"></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations>de:fange _ _&#xD;ca:agafa _ _&#xD;es:atrapar _ _&#xD;fr:attrape _ _&#xD;pt:captura _ _&#xD;</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>de:wirf _&#xD;ca:llança _&#xD;es:lanzar _&#xD;fr:lance _&#xD;pt:lança _&#xD;</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>de:fange _ _&#xD;ca:agafa _ _&#xD;es:atrapar _ _&#xD;fr:attrape _ _&#xD;pt:captura _ _&#xD;</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>de:wirf _ _&#xD;ca:llança _ _&#xD;es:lanzar _ _&#xD;fr:lance _ _&#xD;pt:lança _ _&#xD;</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="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>de:falls _ dann _ und pause $pause-1-255-220-0&#xD;ca:si _ fes _ i atura-ho tot $pause-1-255-220-0&#xD;es:si _ haz _ y páralo todo $pause-1-255-220-0&#xD;fr:si _ faire _ et mettre tout en pause $pause-1-255-220-0&#xD;pt:se _ , então _ e faz pausa em tudo $pause-1-255-220-0&#xD;</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="ignore %&apos;x&apos;" type="command" category="control"><header></header><code></code><translations>de:ignoriere _&#xD;ca:ignora _&#xD;es:ignorar _&#xD;fr:ignore _&#xD;pt:ignora _&#xD;</translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="cascade %&apos;num&apos; times %&apos;function&apos; %&apos;init&apos; %&apos;#&apos;" type="reporter" category="control"><comment x="0" y="0" w="138" collapsed="false">Call f(f(f(...(f(x))))) n times where the three input slots are n, f, and x from left to right.  The # variable can be used inside f to represent how many times f has been called.</comment><header></header><code></code><translations>pt:o resultado de _ invocações em cascata de _ com argumento inicial _ _&#xD;</translations><inputs><input type="%n"></input><input type="%repRing"></input><input type="%s"></input><input type="%upvar"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block var="init"/></block><block s="doSetVar"><l>#</l><l>0</l></block><block s="doRepeat"><block var="num"/><script><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doSetVar"><l>result</l><block s="evaluate"><block var="function"/><list><block var="result"/></list></block></block></script></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="cascade until %&apos;pred&apos; %&apos;function&apos; %&apos;init&apos; %&apos;#&apos;" type="reporter" category="control"><comment x="0" y="0" w="90" collapsed="false">Call f(f(f(...(f(x))))) until condition is true, where the three input slots are condition, f, and x from left to right.  The # variable can be used inside f or condition to indicate how many times f has been called.</comment><header></header><code></code><translations>pt:o resultado da invocação em cascata até que _ de _ com argumento inicial _ _&#xD;</translations><inputs><input type="%predRing"></input><input type="%repRing"></input><input type="%s"></input><input type="%upvar"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block var="init"/></block><block s="doSetVar"><l>#</l><l>0</l></block><block s="doUntil"><block s="evaluate"><block var="pred"/><list><block var="result"/></list></block><script><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doSetVar"><l>result</l><block s="evaluate"><block var="function"/><list><block var="result"/></list></block></block></script></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="compose %&apos;f&apos; %&apos;g&apos;" type="reporter" category="control"><comment x="0" y="0" w="90" collapsed="false">Returns the function f(g(x)) where f and g are the two inputs.</comment><header></header><code></code><translations>pt:a composição de _ com _&#xD;</translations><inputs><input type="%repRing"></input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="f"/><list><block s="evaluate"><block var="g"/><list><l></l></list></block></list></block></autolambda><list></list></block></block></script></block-definition><block-definition s="repeat %&apos;action&apos; until %&apos;pred&apos;" type="command" category="control"><comment x="0" y="0" w="90" collapsed="false">Like the built-in REPEAT UNTIL block, except that the ending condition is not tested until the script has been run the first time.  So the script is run at least once.</comment><header></header><code></code><translations>pt:repete _ até que _ $loop-0.7&#xD;</translations><inputs><input type="%cs"></input><input type="%boolUE"></input></inputs><script><block s="doRun"><block var="action"/><list></list></block><block s="doUntil"><block s="evaluate"><block var="pred"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="repeat %&apos;action&apos; while %&apos;pred&apos;" type="command" category="control"><comment x="0" y="0" w="90" collapsed="false">Run the script repeatedly, as long as the given condition is true.  Runs the script at least once before testing the condition.</comment><header></header><code></code><translations>pt:repete _ enquanto _ $loop-0.7&#xD;</translations><inputs><input type="%cs"></input><input type="%boolUE"></input></inputs><script><block s="doRun"><block var="action"/><list></list></block><block s="doUntil"><block s="reportNot"><block s="evaluate"><block var="pred"/><list></list></block></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="repeat while %&apos;pred&apos; %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="90" collapsed="false">Runs the script repeatedly, as long as the condition is true.  Tests the condition before the first time the script is run.  Like the built in REPEAT UNTIL except that in this block the condition must be true, not false.</comment><header></header><code></code><translations>pt:enquanto _ , repete _ $loop-0.7&#xD;</translations><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doUntil"><block s="reportNot"><block s="evaluate"><block var="pred"/><list></list></block></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="repeat %&apos;num&apos; %&apos;#&apos; %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="171" collapsed="false">Runs the script the specified number of times, like the built-in REPEAT block, but this one provides the # variable that can be used inside the script.  Try&#xD;REPEAT (200)&#xD;                MOVE (#) STEPS&#xD;   RIGHT 92&#xD;with the pen down.</comment><header></header><code></code><translations>pt:repete _ vezes _ _ $loop-0.7&#xD;</translations><inputs><input type="%n"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doSetVar"><l>#</l><l>0</l></block><block s="doRepeat"><block var="num"/><script><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; step %&apos;step&apos; to %&apos;end&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations>pt:para _ de _ com passo _ a _ _ $loop-0.7&#xD;</translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>test</l></list></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doIfElse"><block s="reportLessThan"><block var="step"/><l>0</l></block><script><block s="doSetVar"><l>test</l><block s="reifyPredicate"><autolambda><block s="reportLessThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>test</l><block s="reifyPredicate"><autolambda><block s="reportGreaterThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script></block><block s="doUntil"><block s="evaluate"><block var="test"/><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="let %&apos;a&apos; be %&apos;val&apos; in %&apos;loop&apos; %&apos;body&apos;" type="command" category="control"><comment x="0" y="0" w="238.66666666666669" collapsed="false">Provides LOOP as a function of one input that runs&#xD;the body of the LET with A set to the function input,&#xD;so the body can run itself recursively.&#xD;See COPY block in Variables for an example of use.</comment><header></header><code></code><translations>pt:tendo _ o valor inicial _ , executa _ definido como _&#xD;</translations><inputs><input type="%upvar"></input><input type="%s"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doSetVar"><l>a</l><block var="val"/></block><block s="doSetVar"><l>loop</l><block s="reifyScript"><script><block s="doSetVar"><l>a</l><block var="new value"/></block><block s="doRun"><block var="body"/><list><block var="a"/></list></block></script><list><l>new value</l></list></block></block><block s="doRun"><block var="loop"/><list><block var="a"/></list></block></script></block-definition><block-definition s="TicTacToe wins" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block><block s="reportNewList"><list><l>4</l><l>5</l><l>6</l></list></block><block s="reportNewList"><list><l>7</l><l>8</l><l>9</l></list></block><block s="reportNewList"><list><l>1</l><l>4</l><l>7</l></list></block><block s="reportNewList"><list><l>2</l><l>5</l><l>8</l></list></block><block s="reportNewList"><list><l>3</l><l>6</l><l>9</l></list></block><block s="reportNewList"><list><l>1</l><l>5</l><l>9</l></list></block><block s="reportNewList"><list><l>3</l><l>5</l><l>7</l></list></block></list></block></block></script></block-definition><block-definition s="status of triple %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportListItem"><l></l><block var="board"/></block></autolambda><list></list></block><list><block var="list"/></list></custom-block></block></script></block-definition><block-definition s="status of all winning triples" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListContainsItem"><block var="board"/><custom-block s="TicTacToe wins"></custom-block></block></autolambda><list></list></block><block var="board"/></block></block></script></block-definition><block-definition s="Won? %&apos;Winning Player&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doForEach"><l>item</l><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><custom-block s="status of triple %l"><l/></custom-block></autolambda><list></list></block><list><custom-block s="TicTacToe wins"></custom-block></list></custom-block><script><block s="doIfElse"><block s="reportAnd"><block s="reportListContainsItem"><block var="item"/><l>X</l></block><block s="reportListContainsItem"><block var="item"/><l>O</l></block></block><script></script><script><block s="doIfElse"><block s="reportListContainsItem"><block var="item"/><l>Empty</l></block><script></script><script><block s="doIf"><block s="reportListContainsItem"><block var="item"/><block var="Winning Player"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block></script></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition></blocks><variables><variable name="X&apos;s turn?"><bool>true</bool></variable><variable name="board"><list struct="atomic" id="1167">X,Empty,Empty,X,Empty,O,X,O,Empty</list></variable><variable name="counter"><l>4</l></variable></variables></project><media name="Tic Tac Toe game" app="Snap! 6, https://snap.berkeley.edu" version="1"></media></snapdata>