<snapdata remixID="10031338"><project name="U3L1-TicTacToe" 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,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAATHElEQVR4Xu3d23IbtxIFUOX/P9opx65KUpZEYgaYvq3zahJorI148yL5/PXhfwQIECBAgMDjAn89vqMNtwn8DO/HttUsRIAAAQJPCijgJ7XtReC3gBdPrgIBAgrYHSBAgAABAgECCvgQunc4h2AtS4AAgSYCCrhJkI5BgAABAp8LZH1DpIDdWAIECBAgECCggAPQbUmAAAECBBSwO/CIQNaPgB45vE0IECDwiYACdi0IECDwkIAXog9BF9lGARcJypgECBAg0EtAAffK02kIECBAoIiAAi4SlDEJECBAoJeAAj6cp+98DgNbngABAkUFFHDR4IxNgMBMAS/q++SugPtk6SQECNwQUGw38Dz1koACvsTmSVUE/KVaJSlzEpgnoIDnZe7EBAgQIJBAQAEnCMEIBAgQIDBPQAHPy9yJgwR8HB4Eb1sCSQUUcNJgjEWAAAECvQUUcO98nW6DgHeuGxAtQYDAHwIK2KUgQIAAAQIBAgo4AN2WBAgQIEBAAbsDBAgQIEAgQEABB6DbkgABAgQIfFvAfvjEBcku4I5mT8h8BAh8JeAdsLtBgAABAgQCBBRwALotCRAgQICAAnYHCBAgQIBAgIACDkC3JQECBAgQUMDuAAECBAgQCBBQwAHotiRAgMAuAb8JsEvy+XUU8PPmdiRAgAABAh8K2CUgQIAAAQIBAgo4AN2WBAisCfiYdc3Lo2sIKOAaOZmSAAECBJoJKOBmgToOAQIECNQQUMA1cjIlAQIECCwIVPjaQgEvBOqhBAgQIEBgl4AC3iVpHQIEQgQqvNMJgbFpegEFnD4iAxIgQIBARwEF3DFVZyJAgACB9AIKOH1EBiRAgACBjgIKuGOqzkSAAAEC6QUUcPqIDEiAQJSAH/CKkp+xrwKekbNTEiBAoLRAxxdDCrj0lTQ8AQIECFQVUMBVkzM3AQIECJQWUMCl4zM8AQIECFQVUMBVkzM3AQIECJQWUMCl4zM8AQIECFQVUMBVkzM3AQIECJQWUMCl4zM8AQIECFQVUMBVkzM3AQIECJQWUMCl4zM8AQIECFQVUMBVkzM3AQKXBTr+q0qXMRI9cVouCjjR5TMKAQIECMwRUMBzsnZSAgQIEEgkoIAThWEUAgQIEJgjoIDnZO2kBAgQIJBIQAEnCsMoBAgQIDBHQAHPydpJCRAYLDDtJ4wrRK2AK6RkRgIECBBoJ6CA20XqQAQIECBQQUABV0jJjMsCPm5bJvMEAgQeFlDAD4PbjgABAgQI/BRQwO4BAQIECBAIEFDAAei2JECAAAECCtgdIECAAAECAQIKOADdlgQIECBAQAG7AwQIECBAIEBAAQeg25IAAQIECGwpYL9z6SIRIECAAIE1gS0FvLalRxMgQIAAAQLHCti7YpeLAAECBAh8LbBcwIrVdSJAgAABAvcFlgv4/pZWIECAAIHqAt6M3U9QAd83tAIBAgQIEFgWUMDLZJ5AgAABAgTuCyjg+4ZWIECAAAECywIKeJnMEwgQIECAwH0BBXzf0AoECBAgQGBZQAEvk3kCAQIECBC4L6CA7xta4aCAX3U4iGtpAgRCBRRwKL/NCRAgQGCqgAKemrxzEyBAgECogAIO5bc5AQIECEwVUMBTk3duAgQuCfi5hEtsnvSJgAJ2LQgQIECAQICAAg5AtyUBAgQIEFDA7gABAgQIEAgQUMAB6LYkQIAAAQIK2B0gQIAAAQIBAgo4AN2WBAgQIEDgUgFf/TH8q88TEwECBAgQ6CZwqYC7ITgPAQIECBB4WkABPy1uPwIECBAg8PHxoYAHXgNfBQwM3ZEJEEgnoIDTRWIgAgQIEJgg0LKAvcObcHV7ntHd7ZmrUxH4TKBlAYuaAAECBAhkF1DA2RMyHwECBAi0FFDALWN1KAIECBDILhBWwN991+V7sOzXxnwECBAgcFcgrIDvDu75BAgQINBTYMqbMAWc7P5OuXjJ2I1DgACBxwUU8OPkNiRAgACBaQKfvblSwBdvgXeqF+E8jQABAgT+EVDALgIBAgQIEAgQUMAB6LYkQIAAAQIK2B24LOBj+Mt0nrgo4K4tgnl4CQEFXCImQxIgQIBANwEF3C1R5yFAgACBEgIKuERMhiRAgACBbgIKuFuizkOAAAECJQQUcImYDEmAAAEC3QQUcLdEnYcAAQIHBPwk+n5UBbzf1IoECBAgQOClgAJ+SeQBuwW8kt4taj0CBCoKKOCKqZmZAAECBMoLKODyEToAgbwCPu3Im43J4gUUcHwGJiBAgACBgQIKeGDojkyAAAEC8QIKOD4DExAgQIDAQAEFPDB0RyZAgACBeAEFHJ+BCQgQIEBgoIACHhi6IxMgQIBAvIACjs/ABAQIECAwUEABDwzdkQkQIEAgXkABx2dgAgIECBAYKKCAB4buyAQIECAQL6CA4zMwwYMC/mnEB7FtRaCQQMTfDQq40AUxKgECBAj0EVDAfbJ0EgIECBAoJKCAC4VlVAIECEQLRHxUG33mU/sr4FOy1iVAgAABAt8IKGDXgwABAgQIBAgo4AB0WxIgQIAAAQXsDhAgQIAAgQABBRyAbksCBAgQIKCA3QECBAgQIBAgoIAD0G1JgAABAgQUsDtAgAABAo8J+D3if6kV8GPXzkYECBAgQEABuwMECBAgQCBUwDvgUH6bEyBAgMBUAQU8NXnnJkBgWcD3l8tknvCNgAJ2PQgQIECAQICAAg5AtyUBAgQIEFDA7gABAgQIEAgQUMAB6LYkQIAAAQIK2B0gQIAAAQIBAgo4AN2WBAgQIEBAAbsDBAgQIEAgQEABB6DbkgCBWAG/zxvrb/dfAgrYTSBAgAABAocFPnvRp4APo09e3ruMyek7OwECrwQU8Cshf06AAAECBA4IKOADqJYkQIAAAQKvBBTwKyF/ToAAAQIEDggsF7Dv9Q6kYEkCBAgQGCewXMDjhByYAAECBAgcEFDAB1AtSYAAAQIEXgko4FdC/pwAAQIECBwQUMAHULss6fv+Lkk6BwECGQUUcMZUfv8TZT+SzpZxLC8WMqZiJgIEvhNQwO4HAQIECBAIEFDAAei2JECAAAECCtgdaCHgI+gWMToEgVECCnhU3A5LgAABAlkEFHCWJMyRQsA76RQxGILACAEFPCJmhyRAgACBbAIKOFsi5iFAgACBEQIKeETMDkmAAAEC2QQUcLZEzEOAAAECIwQU8IiYHZIAAQIEsgko4GyJmIcAAQIERggo4BExOyQBAgQIZBNQwNkSMQ8BAgQIjBBQwCNidkgC9QT8oyj1MjPxmoACXvPyaAIECBAgsEVAAW9htAgBAgQIEFgTUMBrXh5NgAABAgS2CCjgLYwWIUCAAIEOAk/+7IEC7nBjnIEAAQIEygko4HKRGZgAAQIEOggo4A4pOgMBAgQIlBNQwEGRPfk9Q9ARbUsgTMB/X2H0Nl4QUMALWB5KgAABAgR2CbQtYK+Ad10R6xAg8K6Av3felfK4nwJtC1i8BAgQIEAgs4ACzpyO2QgQIECgrcD/CtjHJ21zdjACBAgQSCbgHXCyQIxDgAABAjMEFPCMnJ2SAAECBJIJKOBkgRiHAAECBGYIKOAZOTslAQIECCQTUMDJAjEOAQJ1Bfwga93sIiZXwBHq9iwt4C/Z0vEZnkAaAQWcJgqDZBVQuFmTMReB2gIKuHZ+pidAgACBYIGrL9IVcHBwtidAgACBmQIKeGbuTk2AAAECwQIKODgA2xMgQIDATAEFPDN3pyZAgACBYAEFHByA7QkQIEBgpoACnpm7UxMgQOCowNWfDD46VLLFFXCyQIxDgAABAjMEFPCMnJ2SAAECBJIJKOBkgRiHAAECBGYIKOAZOTslAQIECCQTUMDJAjEOAQIECMwQUMAzcnZKAgQIEEgmoICTBWIcAgQIEJghoIBn5OyUBAgQIJBMQAEnDORHspmMQ4AAAQL7BRTwflMrEiBAgACBlwIK+CWRBxAgQIAAgf0CCni/qRUJECBAgMBLAQX8ksgDCBAgQIDAfgEFvN/UigQIECBA4KWAAn5J5AEEnhGY9n/f9tV5pzk8c7vsklFAAWdM5ZOZ/KVUJChjEiBA4E0BBfwmlIcRIECAAIGdAgp4p6a1CBAgQIDAmwIK+E0oDyNAgAABAjsFFPBOTWsRIECAAIE3BRTwm1AeRoAAAQIEdgoo4J2a1iJAgAABAm8KKOA3oU4/zK8ZnRa2PgECBHIJKOBceZiGAAECBIYIKOAhQTsmAQIECOQSUMC58jANAQIECAwRUMBDgnZMAgQIEMgloIBz5WEaAgQIEBgioICHBO2YBAgQIJBLQAHnysM0BAgQIDBEQAEPCdoxCRAgQCCXgALOlYdpCBAgQGCIgAIeErRjEiBAwL+4l+sOKOBceZiGAAECBIYIKOAhQTsmAQIECOQSUMC58jANAQIECAwRUMBDgnZMAgQIEMgloIBz5WEaAgQIEBgioICHBO2YBAgQIJBLQAHnysM0BAgQIDBEQAEPCdoxCRAgQCCXgALOlYdpCBAgQGCIgAIeErRjEiBAgEAuAQWcKw/TJBXwT/glDcZYBAoLKODC4Rl9poAXAzNzd+p+Agq4X6ZORIAAgSUBL+qWuLY9WAFvo7QQAQIECBB4X0ABv2/lkQQIECBAYJuAAt5GaSECBAgQIPC+gAL+j5XvQd6/OB5JgAABAvcEFPA9P88mQIAAAQKXBBTwJTZPIkCAAAEC9wQU8D0/zyZAgAABApcEFPAlNk8iQIAAAQL3BBTwPT/PJkCAAAEClwQU8CU2TyJAgAABAvcEFPA9P88mQIAAAQKXBBTwJTZPIkCAAIFTAlP+TQYFfOoGWZcAAQIEtgt0KmcFvP16WJAAAQIEugvseCGggLvfEucjQIAAgZQCCjhlLIYiQIAAge4CCrh7wgHn2/HRTMDYtiRAgMCjAgr4UW6bESBAgACBXwIK2E3YIuBd7xZGixAgMEhAAQ8K21EJECBAII+AAs6ThUkIECBAYJCAAh4UtqMSIECAQB4BBZwnC5MQIECAwCABBTwobEclsEPAD9ztULQGAT8F7Q4MElAcg8J2VAIFBLwDLhCSEQkQIECgn4AC7pepExEgQIBAAQEFXCAkIxIgQIBAPwEFfCBT3zUeQLUkAQIEmgko4GaBOg4BAgQI1BBoUcDecda4bKYkQIAAgX8FWhRw1kC9MMiajLkIECAQL6CA4zMwAQECBAgMFFDAA0N3ZAIECBA4J/Dup58K+FwGViZAgAABAl8KKGCXgwABAgQIBAgo4AB0WxIgQIAAAQXsDhAgQIAAgQABBRyAbksCBAgQIKCA3QECBAgQIBAgoIAD0G1JgAABAgQUsDvQXuDd38lrD+GABAikElDAqeIwDAECBAhMEVDAU5JudE7vaBuF6SgEBgso4MHhOzoBAgQIxAko4Dh7OxMgQIDAYAEFPDh8RydAgACBOAEFHGf/+M6+O32c3IYECBD4UkABuxwECBAgQCBAQAEHoNuSAIGzAj7tOetr9T0CLQrYf2x7LoNVCBAgcErA39N/yrYo4FMXxroECBAgQOCUgAI+JWtdAgQIECDwjYACdj0IECBAgECAQKkC9h1CwA2xJQECBAgcEShVwEcELEqAAAECBAIEFHAAui0JECBAgIACbnoHfFzfNFjHIkCgjYACbhOlgxAgQIBAJQEFXCktsxIgQIBAGwEF3CZKByEwS8DXLLPy7nhaBdwxVWciQIAAgfQCCjh9RAYkQIAAgY4CCrhjqs5EoKGAj5wbhjr8SAp4+AVwfAIECBCIEVDAMe52JUCAAIHhAgp4+AVwfAIECBCIEVDAMe52JUCAAIHhAgp4+AVwfAJPCfghqqek7VNFQAFXScqcBAgQIFBW4LMXoAq4bJwGJ0CAAIHKAgq4cnpmJ0CAAIGyAgq4bHQGJ0CAAIHKAgq4cnpmJ0DgMQE/RPYY9ZiNFPCYqB2UAAECBDIJKOBMaZiFAAECBMYIKOAxUTsoAQIECGQSUMCZ0jALAQIECIwRUMBjonZQAgQIEMgkoIAzpWEWAgQIEBgjoIDHRO2gBAgQIJBJQAFnSsMsBAYIXP192qvPe5f09PrvzuFxcwQU8JysnZQAAQIEEgko4ERhGIUAAQIE5ggo4DlZOykBAgQIJBJQwInCMAoBAgQIzBFQwHOydlICBAgQSCSggBOFYRQCBAgQmCOggOdk7aQECBBYEvCrWUtcyw9WwMtknkCAAAECBO4LKOD7hlYgQIAAAQLLAgp4mcwTCBAgQIDAfQEFfN/QCgTCBXxXFx6BAQgsCyjgZTJPIECAAAEC9wUU8H1DKxAgQIAAgWUBBbxM5gkECBAgQOC+gAK+b/joCju+69uxxqOHthmBIgL+2yoSVJIxFXCSIIxBgAABArMEFPCsvJ2WAAECBJIIKOAkQRiDwKqAjztXxTyeQC4BBZwrD9MQIECAwBABBXwgaO9MDqBakgABAs0EFHCzQB2nh4AXcT1ydAoC3wkoYPeDAAECBAgECCjgAPRTW3rXdErWugQIENgvoID3m1qRAAECBAi8FPgbsMF4ac/HUAcAAAAASUVORK5CYII=</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="50" y="-50" heading="90" scale="0.95" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="1" color="80,80,80,1" pen="tip" id="8"><costumes><list id="9"><item><costume name="Empty" center-x="29" center-y="28" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAA5CAYAAACMGIOFAAAFHUlEQVRoQ7VbO3JTUQyVkw1kB6RJDUOKNJlJChd4F6yAlKQB29CkDZsxM7hIEYoUYejTmB14A4kZeXyNLOtz9Gzc4Lz7kY4+R7rXjx4RjYjoNRG9ISLqEdGCv6iPfO7N0eujeYaI5SNUTjaX9+HPgug3f2eQF0R06QmOnjelvH+lMhUAXXRpawRAfnSnQc4GgwGdnZ0dI8AyRZCokHtY86NnEoyc9/DwMJtMJrw149gE+W4wmH27vaWTk5NjDtm2iQUmGm9jeg6yZ/O8lpmtlfOfnp5mH66u6Ptk8g9kj+hiQXQ5Ho3o83CYOWhj3AKiwwYxUgXEKtdMJzQ++TIe02jEmUh3vQOi0csqJ/khg4w8qAV4XkMtJddbxqmCb/ptgGTiaZ5kkEPlyYqQZsWuYY54vM3JUmEsPSnZtYFEc0rPqxgE8bSlByqjgexp4pEgLQKQnsosiYDwvIKujQC7nmTi+QTkJKpERhBWWEvFs0ixQLZnDJLxLDxPRspV8mbXuV2MKUGu2VXmZFZCkNqIhmCWW5GXJHhvnzQnKxb0vOXVSrTk6LCVcrISx3M3crLVyR7R5RCsk0g4I57IvIlGhTUvLSFIOFhAPaUbK1uMXQWCRtkW8XRtBrTyiGey0tOlNlpNCHc8HJlbDbrueLooXfGMVXdRI3gebXsyyHUJ0b2rbOsikrBqWAvHqNZZqYDkr14Xhf4W8VhtXWQlhNnQvPEIDGFgz+NmnZTs2k4hlZDLCr5UOLO+FQHSEBkwqUvLSbN3tY5anmV3yVmkDGURYYFuhoSagagc7DNkK3Iyo8pxE2RrBrLzpEcSXoejvVEBlaVClFaQJyvhhDItmutWaclCV4+HINsdT3YMqgjVxToLO9SDkQ4bzYCsk9kpJAOmO6BsfiVarLCP2Hqr49FtnQ6XjPp3Ubbr2igaeOzr6o5nfWiOeteoYFfAoyGaKY/I5DlQ74p0HTKEolYuU9y7Cd+lVIVHLd0MRH0l6h2UVbuGrpX7bseDEI/XeiFhrVk2IqZITkZovHbrcrn9qmVdLkdeqHoyUw5hUESmBLnsXQ+JRs/iZ4LW8SBhigrUOYeAyfI9SwGIeDyrS0JqTIeA7eJFhHisFDDDlUsI/wjL1wW6d60qpy1stXyI8pGR21i0j3m5LBt0q3PJiEB7E/FulBII00brS7d1UpineIU1s/0yYyKR1Zldsxy1xhFvIkp7e3vdTwgSqZM6jLQX/yewJlsSnjSAzFHzFMI5qe94Mit3BaTJKJNTHYfCdZcysStwq/55OR8Za+vQvEsJicgoKxUII3c1WqlBR/tLj/IzJbPxLFQ1G7d8Te94uhTwfeYZWpKsctOele9dM2tmfWRUGz1PIM1AJNcMV+9KEgnXyItZOGbjiIEtz6d3PIgVo5YK8SyifKXB0PpAILWAqsWr8xFAlT3DV1ysd+s8r0VtVVY+EE9GoCzSkXuGxFM9aqHWrbBvyzFpxGy9XrO3Ool4A53jNQaaVCwDSBm6hKQ/p3sEklkVYWRLsexZxWB8ubx+Z0D+TNDv9+c3Nzf09vT0yMo3Lw+i4o0Wdg8AwuJ67a/Hx/nH62uaTqdHWz/CEtG83+/T+fn5EqTOicyS6t3vcHplrpebnoCf9/fzH9MpDzOOu16PaLQwXrT33h+X4HV+yL8zg+xzPHmBf/kO+vvVC+mvWPAhET3vqMEBEb0Ae0TzeIw/vA9/Z0VRvdS+f3htp/8qAWDoPCWLourGfwGmuTUu1UZuLQAAAABJRU5ErkJggg==" id="10"/></item><item><costume name="X" center-x="29" center-y="29" image="data:image/png;base64,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" id="11"/></item><item><costume name="O" center-x="28" center-y="28" 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="position number"><l>10</l></variable></variables><scripts><script x="30" y="219.8333333333334"><block s="receiveInteraction"><l><option>clicked</option></l><comment w="53.333333333333336" collapsed="true">3.1.5.7</comment></block><block s="doIf"><block s="reportEquals"><block s="getCostumeIdx"></block><l>1</l><comment w="124" collapsed="true">If square is empty...</comment></block><script><block s="doIfElse"><block var="X&apos;s turn?"/><script><block s="doSwitchToCostume"><l>X</l></block><block s="doReplaceInList"><block var="position number"/><block var="board"/><l>x</l></block></script><script><block s="doSwitchToCostume"><l>O</l></block><block s="doReplaceInList"><block var="position number"/><block var="board"/><l>o</l></block></script></block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportNot"><block var="X&apos;s turn?"/></block><comment w="171.33333333333334" collapsed="false">Alternate between TRUE (x&apos;s turn) and FALSE (o&apos;s turn)</comment></block><block s="doIf"><block s="reportEquals"><custom-block s="won? %s"><l>x</l></custom-block><block s="reportBoolean"><l><bool>true</bool></l></block></block><script><block s="doSayFor"><l>X won!!!</l><l>5</l></block></script></block><block s="doIf"><block s="reportEquals"><custom-block s="won? %s"><l>o</l></custom-block><block s="reportBoolean"><l><bool>true</bool></l></block></block><script><block s="doSayFor"><l>O won!!!!</l><l>5</l></block></script></block><block s="doIf"><block s="reportAnd"><block var="playing"/><custom-block s="tied?"></custom-block></block><script><block s="doSayFor"><l>It&apos;s a tie</l><l>5</l></block></script></block></script></block></script><script x="27" y="161.8333333333335"><custom-block s="possible winning triples"></custom-block></script><script x="648" y="179.66666666666677"><custom-block s="status of triple %l"><l/></custom-block></script><script x="642" y="239.8333333333333"><custom-block s="status of all winning triples"></custom-block></script><script x="651" y="290.83333333333337"><custom-block s="won? %s"><l>o</l></custom-block></script><script x="637" y="98.00000000000003"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l></l><block var="board"/></block></autolambda><list></list></block><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block></block></script><script x="654" y="331.83333333333337"><custom-block s="tied?"></custom-block></script><script x="25" y="20"><block s="receiveGo"><comment w="53.333333333333336" collapsed="true">3.1.5.5</comment></block><custom-block s="makeBoard"><comment w="129.33333333333334" collapsed="true">3.1.5.6  Look inside. </comment></custom-block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportBoolean"><l><bool>true</bool></l><comment w="90" collapsed="true">X plays first.</comment></block></block><block s="doSetVar"><l>board</l><block s="reportNumbers"><l>1</l><l>9</l></block></block><block s="doSetVar"><l>playing</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></scripts></sprite><watcher var="board" style="normal" x="10" y="10" color="243,118,29" extX="80" extY="70"/><watcher scope="Square" var="position number" style="normal" x="7" y="279.000002" color="243,118,29"/><watcher var="playing" style="normal" x="10" y="103.000002" color="243,118,29"/><watcher var="X&apos;s turn?" style="normal" x="10" y="124.00000399999999" 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="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="makeBoard" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSwitchToCostume"><l>Empty</l></block><block s="show"></block><block s="setEffect"><l><option>ghost</option></l><l>30</l></block><block s="setScale"><l>95</l></block><block s="doSetVar"><l>position number</l><l>1</l></block><custom-block s="for %upvar = %n to %n %cs"><l>i</l><l>1</l><l>3</l><script><custom-block s="for %upvar = %n to %n %cs"><l>j</l><l>1</l><l>3</l><script><block s="gotoXY"><block s="reportSum"><l>-100</l><block s="reportProduct"><l>50</l><block var="j"/></block></block><block s="reportDifference"><l>100</l><block s="reportProduct"><l>50</l><block var="i"/></block></block></block><block s="createClone"><l><option>myself</option></l></block><block s="doChangeVar"><l>position number</l><l>1</l></block></script></custom-block></script><comment w="128" collapsed="false">The nested FOR loops are the important part of this solution.  </comment></custom-block><block s="hide"></block></script></block-definition><block-definition s="possible winning triples" 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>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>2</l><l>5</l><l>8</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;triple&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l></l><block var="board"/></block></autolambda><list></list></block><block var="triple"/></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"><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="possible winning triples"></custom-block></list></custom-block></block></script></block-definition><block-definition s="won? %&apos;who&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportListContainsItem"><custom-block s="status of all winning triples"></custom-block><block s="reportNewList"><list><block var="who"/><block var="who"/><block var="who"/></list></block></block></block></script></block-definition><block-definition s="tied?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportEquals"><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>number</option></l></block></autolambda><list></list></block><block var="board"/></block><l></l></block></block></script></block-definition></blocks><variables><variable name="X&apos;s turn?"><bool>false</bool></variable><variable name="board"><list struct="atomic" id="885">x,x,o,o,x,x,x,o,o</list></variable><variable name="playing"><bool>true</bool></variable></variables></project><media name="U3L1-TicTacToe" app="Snap! 6, https://snap.berkeley.edu" version="1"></media></snapdata>