<snapdata remixID="11191638"><project name="Tic Tac Toe AI" app="Snap! 7, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAAAXNSR0IArs4c6QAAG8NJREFUeF7tnQlUFUe6x/8gsgmiCCgqiyi467gk7vuKxmXUqFGjJlFjMpm8TGZeMkneJJPJzMtkMzN55+U8Y4xbSNSouOG+xrjvAsoiigYVxA0RRQF951/aDU1f6JZ7L1yw6hyOeG93dffXP76qb6mvnB48ePAAskkJVJAEnCSAFSR5eVkhAQmgBKFCJSABrFDxy4tLACUDFSoBCWCFil9eXAIoGahQCUgAK1T88uISQMlAhUpAAlih4pcXlwBKBipUAhLAChW/vLgEUDJQoRKQAFao+OXFJYCSgQqVgASwQsUvLy4BlAxUqAQsAnjkyBEEBwejWrVqFXZz9+7dQ2ZmJlq1alVh9yAvbH8J6ADcunUrQkJCynzl22mncG7lLDy4X1DmPiIiX4BLeA9x/tmzZzFgwIAy9yVPdGwJaADcv38/atasadUdX4n+B9pl/Ywcr0DMyHPHBb+cUvtrmtsU45uPR6NGjZC6Ywm6nP8e7l0n43zT8eK8nJwcBAUFoW7dulbdlzzZMSWgAfDChQu4cuWKuNNDhw5hw4YN6NevH1q0aIFTp06hc+fOeOeddzBs2DC4ubmJ4zhUXrp0CSNGjBBDdnbMJwgvSMGEe3lIGJCB+jXq41DuIcCpiACcmYv98P/b8rYhODBY/TJj7Sy0Ca6DlLDR6mfXrl1Dnz59HFOC8q6skoAOQMLElpubi5dffhnR0dH4+eefkZaWhpEjR+Lrr7+Gv78/nJyc4OLigldeeUWAevz4cUyYMAG5m2Zhrmcc5neOxViPsehXvR+a1G+CI9eOwDfPF+292+Owy2FMOzsNflf9sL/ZfhRdF3VszzYMrHEeicEj1Ae7ceMG+vfvb9WDypMdUwIaAJOTk1UNmJSUhO7du+PYsWNIT08XBsGYMWOwc+dOeHh44PTp0+jWrRuaN28Oak5qqYCAABRs/x80uLMTQ3pexk3PAHwY+CFSXVIR8CAADZ0bIiE/AWtS12Cf5z4hkTU31qB5k+bid4KYFPUBerQOQ1zgEPWzW7duYeDAgY4pQXlXVklAAyCt35s3bwrtVtZWsP0rPH3nIDJdC/C3/o1R279jqV01vNwQoddCHw7fsVsQeXMtPHpOw0Hv7uK8y5cvC81bvXr1st6SPM+BJaCzgpcvXy40kY+PT5luu1ZNL3gdjSrTucpJ+W1HIf1WgdC8nHeGh4db1Z882XElYNEPuH37dmFYFBSU3ZVSlkfmvDMrKwtNmzaFl5eXNDzKIsRKdo4OQM7xQkNDK+wxqH0vXryIrl27Vtg9yAuXnwQ0AB4+fBi+vr7i6v/+97/h7u6OKVOmYPbs2Rg+fDhWr14thkRCQp+hp6cnpk+fbvO7pdXLYZdaULaqLQENgLR0s7OzVQDpA+Rw/Nprr2Hu3Lm4c+eOcFT36tULfn5+WLx4MaZNm2YXCdEf+fTTT9ulb9mp40hAAyBdKdevXxd3Rw3H+Rg13/z588W/y5YtQ9u2bQUYK1euFNGJ9u3b2+VpaIDQzSNb1ZaABsCrV68Kfx4bh18OseXVMtIvobrrw+gKW0ZGhvBDyla1JaABkMOeAuDpQztQZ8v78HZ1RrxPF4Q0Drd5dsylC2nwzoyFf1466g17E1fCh6vSpv9PAli14ePT6eaA1IJsx1bNwdCrS3Gw/XsI6zxYfJZ/7y4OLJtnnOni5Iwu46bjbl6eSCZgq127tgZgDu8M5fF69Ta9jZBez+Js0MPoBxvnoz16PMyIka3qSkAHoJKMcGz1twjJO4/AiZ8iPz9fwJK2bhH81n8JZ+eHkRKPll2Qn3kBLgFBuBO3WyMl33H/idSI/qpVzQhLrVq1xDG0chnO4780crq3DMHTHuk40zBSA2DPnj2rruTlkwkJaADksKcAeHz1t+ge5Ibsds+LYTkwMBA3N0fBc92/NIktoXOO4dI/JuJuarwWwPFv4UyTvqhTp474nBpPia6cOXNGJC88++yzmDNnDjp16oSB7slIafBQ07LxPiSAVZ9SDYCc+HPoYzuxZi56N/JEToepuHv3rki/urX1Rw2A1Rs0QcDMz5AV8y1u7YvRAZjSuA/Onz+PiIgIoUWVXEMmmTLplRpw8+bNaNOmDQZ5nEZyYGHCAYdmuntkq9oS0AFILSgAXPsdeod64Fb7KWK4pA/w9vYlOg1Yknh8x7+F02G9ReoWG9073t7e4ncCSA1HRzMh5NAcWeMMkuoVZj4TwN69e1dt6cun0w7B9L0pAMau/Q69Qj2Q3W6yKqb8lOOon33OlNjyglvjkmegmsXCuLKrq6s4NzU1VUCotHr16mGodyoS6xbm/HHYlwCaEnWlPkijAZmAwGGYLS5mngDw5m+eVx8w9+JZJC76DPfv3TX10E89/3vkBDZHjRo1xPG0iDmUE0D+KI0O7WE+53HKv6/6GTWmzII2JeZKfZAOQGpBAeC6+egV4oHDNTqByanMycvevgTeMf9CSemCNToNQc7+dapAOAwnhfZU13MQbs4DiwPIRNYRtdNw0q8w7Z4A9u1bCGSllrK8+RIloAGQWShKSn78+gUCwKy2ExEVFYWZM2fixsZFCIuIgFtwc9y/l4tqnt7Iv3oRzjV9kXfpLFwbRuDOyb1AQQEy574HApgY0gPnzp0TFjDnepwHEkB+pjTOE39b5yLifAuNDs4NGYuWrWpLoMQ1ISfXL0DPEA/sfNBSaD9qRhohIQG1kXNoE2oNfZgFcz83By6+9ZCbcADONXyQfz0DTtVccG3pFwLAhODuYo0x/Yh0v9DwsATgaP90xNYu9PvJdSBVGzzl6XQAUguyndywED2D3XG99XOqJLI3L0K93Qs0fkB+6dVtBG7tXiWO8+r+W9z6JVr8TgBPBXVD/fr1xf/ZN+eD1H7FNeCYgAycqFUY+aDfUC5EqvoQagDkyjcuMGI7tXGRAPBaq4frc9lorXruX44H93INJfPrr7/CfdjvcDM7G3l5eeJ4rutwdnYW8NE/qDSmdo2tl4ljNQuzXxg5kQvSDcVc6Q/QAEhoFAATNi5Cj2B3XG05Tn3I2/F7cG/RB3B9FIor7ekbzfgbUuu2FT5ENsWZzd8JFyMhbFwAxWjJ+PpXcdS7MAuax8iVcJWeL8MH0AFILciWsOl79Ax2wy6nNsI3GBkZibzd0ahRJBRXe8wbcK7uhvxr6cjauEBzMQ6/cfU7i6oGbARbWczO/3NOSShpnHBontDwOo54dVH7YGKsBNDw/VX6AzQAclikFmRL3BwlADzu0x3x8fEYPXo07u5argHQf/rHyJzzDph4cG3JZzoAYwM7CfBYWYEarSiARQ8+efIkJgVn4ZBnJ/VjrgUeNGhQpRewfIDSJaABkHMzBcCkzVHoEeyG9IjR4HphRiUK9q7SAOgW3g5eHQfi5s/LkXfhtA7AE/WeVgsdEW4lEkJXz/r169Xjuc5kcmg2DnoUpuATwMGDC5MT5IusmhLQAEj3iGIcJG/5QQCY0XSM+uQeqUfg/dOHOivYkmg8nv8QSb4t1PgvgSq6uPy7774Tqf5c/ETNODUsB/vdChexM2rCYV+2qi0BHYCKeyR564/oEeSKtLARYMkOZrO0bt3aptLgPJCr37j+5MUmd7DPtYPa/+3btyWANpW2Y3amAZAJAkqM9vS2xQJAQsFIBbUXDQNl2SbTqAgks2RYOeupp54SBYw41+MPy60pxSVPnDghjmOGM6tpKY0GCGvPcEH6S+G52OPSTv2Oxw8ZUpgh7Zjik3dlrQQ0ADJSoQCYsm0xutSvhhttJuKLL74Q6385PCtlMrZs2SLy9Rjl4HyuQ4cOAiQaLCxY1LFjR+Hvo9+PsWS6XV544QUBKRvDcvyMq+z27t2L6U3vYXe132gAHDp0qLXPJ893cAnoAFTSpFK2L0GDO2dwpc3zouoVNV9KSoqa30dY+RkzWZjbRxDXrVsn1n0wwZSWL8Gj9ty9e7dYvkmfHzUb4aNW5HH81/32ZYxp5oZfnNuq4iLMEkAHp8cGt6cBkO4QxRF9ZsdSTMjbgIUeo+AR0lak5RvNARnRuH//vrqyztL9USMSQiXJlcZJi8OfovngyfgZhXNMLguVi5Js8IYdvAsNgAcPHhTwUFOd270K4++sFr/vzA9HUKMmcKnmYtPH4bLMenfOIMQlC9X7v4GdDx4WJOcw/eKLL9r0WrIzx5SArjjRTz/9JLRYSEgwfJJi8CDn+sNyug8eldW107+5bcfhctZtoYG5HpgVsmSr+hKwWJ6NlfLpIinv8my0im2xEo4uI85lZW0ZxwdYByCtW2u2abDXI5/ftRxZB5nyRRVccmvUaRC8uk0SB9Cilxk19nojtulXA+C+ffvUyAUTBFatWiWKkD9Oo+VLV01ZyvyyMj/dN5Za8n8PQf+GhfBVC+sMePmh4MRa3eFpL2xStTcTHuxVQOlx5CKPtSwBXT6gsi74l19+EXFhulNYkJy/M0WecWHOEZs0aSLKbfD/LVu2FI7nmJgYoT35Q4OGFi/XgNA6TkxMFLUGGXqjFcwULNYZZIo+s20ICt0z/I7+RdYqZHEkumoaN26Mc5+P1ADoGvkunLzq4O5Pf9Q92dlJMSJyw0YrW1rTjou/BkCCptSGYTFK+uJYEYH+P/r3mERASKgpR40aJTJk3njjDbz//vsi+rFx40Y0aNBAJK4eOHBA+A9Z9SA2NlZEQMaOHYsvv/xS+A6Zos+5JqEmfOyfP9u2bRN9Ez6lOj7Dcpe+GqvTgNVaDMC9tR/ppJs4NloFkDFlubipkgBIbcaXrgyfBIUvkJqMk3pqOYbkCAqznBUjhccrpTeoHXk8j6ODmhqQ39Ovx1VxTDxQMqP5Gb9jXzyP3/Fcgs48Qq4L4R8Bv7/+7YvoW8/EctDq7jgeOU/0xz8KRmXCwsIc9w084XemM0JWrFhhVZV8e8kzyOMe7scVLvks6TouLQfjXK67KDFCV46c/9nrjdimX4tumPKokm/WSOE8kceW9m9xUTDKQneOkn9YFlFxDkkruiSjqCx9ynP0EtAByCr5HGrNvHgjMBzle2tePGPeskKDNRIs/VwNgJwDKuXUaGiwEUQmFKxdu1Y1KBgTLvoZDRcaK8yImTRpkkijorFCY4T7zLFxiSXnlwyzNWzYUFTbryyNaWhy32L7vC0NgDQaCAkbd0yiMUCfHo0OgsP1vbRm6X6hcUJfIT9j+IzZMLRomeVMtwndKPyOhoBi4RJIWrT83iixwT6PW7Ze6SaSUZWyyc7oLA2ArMdCy1NpTBZlo6+OWoD/0vLlHIsgKp99/vnneOaZZ0T6FBNVOfknvASU0PF4Qsv+6XJhGldl2n6LCRrU7rLZXgI6AAkJ5250iShreo0uy8k+fxTtqRzPPgis4hQ26sdRvk+/mAY3j4cVvdgoEwmgfd6OBkD+pSsaMGn/VnjFLYdbaGGavH1uwTF6pa+RP/RRhuWdxe1hhctMJYD2e0c6AJWNag5Hz0aPIDfc7jjVfld3kJ5paHFqQA3OzbffzJmLzJk71I20KRPpjrHPy9IASGtWAfAIAQx2FwAuWLBAxFPNRBT4EplUYIvqpvRH0g3y0ksvWf30fDauvqM1Xtw/SABZtYtrWD7++GPMa3IY11/dKaIpbBwVJIBWvwKLHegAVDKiqQFZnIgAMkmVjVXtjdpXX30lkgv+/ve/Gx1q+D0BZPhu3LhxZcquKXoBxqlLqrRgCcBrr+zQAMhVf7LZXgIWAeRljqz8RgWQC4c4N2Jc1ajR8qUPkAYI3S/WNA6L7I+OcWsbXUXUfPRzMt5ctEkArZVu2c/X+QGVrbqOEsAQjydmDlh8CL46c7uqAZloITVg2SEr7UwdgEo61tFVc0SJ3uJGCP15tmjKyjhH6Yt+zaJzQAKoZPsQQOmItsWb0vehA5DREPoBqQF7hXrqAGQUwxaNmlapsmBtf9b2xSGYc82iAF55eZsKIKM5EkBr35Ll8zUAMoWp6GaFCoCffPIJ3n77bdGDEYB8kUzlnzFjRql3bAYaZqMwJPjHP+qznot2bqYvLhVgdMbS7kuWAMycsVUdgiWA9oGPveoALLpZYe9HGpCW7euvv24KQB7ExAWG5kprZqBhVjWTVpmWb21fdA/xOd59911dV5YAvDx9iwZAZnbLZnsJaAAsvllh70Y1xBBM/5nyAow0IG+R2ob7w1kLDdPzmU3z17/+1eq+qNlZRMnSHsQlAajMARnzlgDaHj6dBiwJwKKXrspGyNGjRzF79mzhiM6YtlnVgBJA+8BnEUBlVdzxNXPR55EGLHp5MxrQzO2aGYLN9MNjrO1L0YBFAUx/aZMGwMqUv2hWbo5wnGYILr5da58wL9xqP1ksDOIQxoVCZgDcs2cPunYtrHhv6UHNQMN+unTpYhgFMdMX8xPZLGW1WBqCL724UQWQ80cJoH1w1QFYdLvWvmFeYg7INb6MIDAWbAQgl3AyO5rLKq2dAyYkJGDlypX485//bHVfXNe8aNEi00YIAVTmgEy+lQBWEIAZTUfj1VdfxXvvvYdmzZoZAkiAqS2NwnZmtBbdMEuXLsVbb71lNYBMali8eLFpAC++sEGjAamJZbO9BDQasPh+wX0bez+xjugLU9erAFIDSgBtD5/OCCGAyn7BsTHz0M8CgGZSsszcKtO+bGVR26Kv4pEQAqgMwVzHIgE081Yf/xiNBiy+YXW/JjWfWA2YNmWdBkAjo+rxRS/P0GlASwDmdJgiaj/zBVBjGRkhLGS+bNkyvPnmm1bP2xYuXCjWpRjlIZqZTzIfkCE1S31ZsoJ/nRyjDsHUgBJA+/zB6DRg0R3T+z/SgASTViQD8kYActji+mKj9CUz0GzatEn4+MaPL9yxs6wuHUZnoqOj1Zh20X4sAXj++bUqgMzckQCWA4BM/lQAjF83H/3DfUANyG0YlFR2IwAZS2Y5NqNmBsBdu3aJVPl27UpfGGWmL1bqpx+T65eLt5IAVOaABLBbt8KtZI2eTX5vXgIaDUgAqe2YjhW3bj4GhPs8MXNA1i9k3h8XJb2e/S3OTVqjzgHpiJcAmofqcY60CCA7iF+/wCKAtrJcHS0hlQU5qW2pTfvt+wNSJ65Wh2AJ4OMg9XjHagDkuglqQLaTBDCiltCAHFYZCaFmNBqCea6ZYdjMsMm+mKlsVOXKTF87duwAfyxl1nAIZgoZm9il8/BbAkBlCCaAlrJoHk/U8mhLEtAByGFYALhhIQY+AnDevHmYOnWqKQDpT2OFLVZDLa2ZgSYuLk5ckyWAre2L569ZswbDhg2zOAcsDuDZCas0daYlgPb5A9IBSC3Il04NOLBpbaSFDRfLLFnvxawGtFVCKjUP1+baIq7M+R01HVfsWTJCLAGolBShFpYAlgOArIClaMBT1IBNa4shmC+OzSyASm1BW2gtW/VVWj+WhuAzz63UaEBZ6LycAFT2iju1cREGPQKw6KWrqhFCR7Uy5xwe+19IGR+tAkgNKAEsBwDpbFYATCCAzXyfGDdM8SH49LgVKoAsWiQBLCcAOQxzqKUGHPwIQKZFce8PM0MwjzVT0NGMEWLLhFRWd2ClBksGjaUhmAAqc0ACaIstxOzzCit3rxojhBpQ2VA6YdP3AkBGQhgSY5KpsmmM0SN//fXXIofQ2jmgLRNSWbmVK+wshfUsAZg8drlGA0oAjd562b7XAMhEAgXARALYvA6ut34OLBLEEBZ3TTLyA/7zn/8UKfy2WMlmy4RULjrnGmNLSRKWAEx6dpkKIDWhBLBsgBmdpQOQWpAtcXMUIpvXeWLngIljftIAaGlBu5Fw5ffGEtABSC3IuR41YGQLPx2AVTUhlU5qNkZCIo+8DQKozAEZEZEAGsNUliM0AHKYUjRgEjWgBQCNhmCzN2HGCCmvviwNwQmjl6oasDIBSMc9FYjZjYDMythex+kApAZkS9ryA4a08MPN30wSGSIDBw4UMVkjAJlCJbRIZKTVRoiyfawtQnFGCanF3TAEsKgGtEXFV3u9xOL9rvmxG+r4Nca17DB07DpT7FTgqE0DICf9CoDJBLClP9IjRoktVJlkSqiMAOSDzpkzB9OnT7caQObwHT9+3CYWtVFCanEAT41aogJIrVKZAORItmttM7SKyBXv4JcD7hj0zO9wPDEYo5/9vUNpR0MAGYrj/Ijlbc1oQGacMCHVaGchM0MwoafrhNa3tS4do4TU4gCe/O1idQiubABSVgcPbEf1rL46sTGquudoEOqGvIbho94wzDSyt+bUAci/HrbkrT9iaEv/J9YKjh/5owbAyrRfnJjTLumDoDo7xbskdCnngAZhU5B5IxRde71mKmvd3vCxfw2A3BNYAfA0AWwV8MRUSC0eCyaAyhyQL7QyAfjZP0ahQ0Q0MrJ6ommLPnCtOcZwRCoP2CxdQwcg54Fsp7ctxjOtAoQRwsgGXwD3dzMzB7RVQiq3CtuyZQv+9Kc/WT0Es8JVfHy8xRIblqzguBE/aHZ4qiwAMh9z/76dGD6i9HzMigKu+HUNAeQckIUiucrNTCzYlgmps2bNEv43o22yzMwnWZojKioKf/nLXyzMi/QZ0bHDo9QhmID27aufTznKS6zM96EBkC9J0YAp1ICt64oh+OTJk6ohYEYD2iohlZYrC1ROmzbNag3IAkurV6/GRx99ZArAE8O+VwHkCRJA+2CuAzA2Nlbs8aHsEmSfy2p75eJzWrtGLftmFvIL7ov7Y0RG2T/EjAYsmlRb/DqWhmACqMwBqfklgEZvp2zfawDknItO5ICAgHLdMf36kfXw2vEpXKs5lfoULs6A9wfHxHZinNMRXDpZbbHCTjFCuPiq4+bpODF0gQZA7oUsm+0loAGQFUJdXFxKvQrDUqzdPGDAgMe6GxaIpBFjaYWbT8pG+O79Su3PuWFbuI34G+787wjdNXLePCjyDZXGPs1oQKObZdSFWp+rAgfu/wMOD1koATQSmg2+L3Fd8DfffCP2e3vuuecwcuRIoRFZ5JslKhidYMFG5glyGOR3Pj4+Yukm4WCRyokTJ2LFihWingyhpXHCc7ihNfvh70yN4uf+v27XAOja73U8uH0D9y8noyBlr+Yxb/7HPnXpKOPWvDczAPIek5OTSy2ezvkmcx6dPn0KRwZ8owLIrb2kBrQBbRa60ADIavjK3I8aiyvBCAjnQByWaaBwrsYXwn3cCBajHsqm1MwDbNCggTiOmpRzKCUOSf8ih0xmJfMaSsEf5h82yNitAdDJPwzVGnVG/oEfdLd8/bXdas4i96/jLpZmAYyJiSlx+wjCx0r4zH3stm0GDg6erwLIe5YAlgOArIJFMPz9/e1ztRJ6rX/tKAL3zTJ1zYwZ2wWAnKuGh4cLjWYGQP4BsDZM8Y0KeVEFPv4BKhrwUL//UwHkoiRL64lN3bA8qFQJ6PyA3OWI2kupClAe8iMUypqT0q5HY4NzNA+nfDx1/5S6vsMaIyTtQhr8/fyReSVT/EuNH5h3AbvDpompBRdpTZ482XBuXB5yqorX+H8Gvh+nKE0mzwAAAABJRU5ErkJggg==</thumbnail><scenes select="1"><scene name="Tic Tac Toe AI"><notes></notes><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="make ONE row" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRepeat"><l>3</l><script><block s="doChangeVar"><l>clone number</l><l>1</l></block><block s="createClone"><l><option>myself</option></l></block><block s="changeXPosition"><l>50</l></block></script></block></script></block-definition><block-definition s="make Tic Tac Toe Board" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSwitchToCostume"><l>Empty</l></block><block s="doRepeat"><l>3</l><script><custom-block s="make ONE row"></custom-block><block s="changeXPosition"><l>-150</l></block><block s="changeYPosition"><l>-50</l></block></script></block><block s="gotoXY"><l>1000</l><l>1000</l></block></script></block-definition><block-definition s="make row" type="command" category="control"><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="X wins?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doForEach"><l>triple</l><block var="winning triples"/><script><block s="doIf"><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><block s="reportListItem"><l>1</l><block var="triple"/></block><block var="board"/></block><l>X</l></block><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><block s="reportListItem"><l>2</l><block var="triple"/></block><block var="board"/></block><l>X</l></block><block s="reportEquals"><block s="reportListItem"><block s="reportListItem"><l>3</l><block var="triple"/></block><block var="board"/></block><l>X</l></block></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="o wins?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doForEach"><l>triple</l><block var="winning triples"/><script><block s="doIf"><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><block s="reportListItem"><l>1</l><block var="triple"/></block><block var="board"/></block><l>o</l></block><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><block s="reportListItem"><l>2</l><block var="triple"/></block><block var="board"/></block><l>0</l></block><block s="reportEquals"><block s="reportListItem"><block s="reportListItem"><l>3</l><block var="triple"/></block><block var="board"/></block><l>0</l></block></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="%&apos;character&apos; wins?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doForEach"><l>triple</l><block var="winning triples"/><script><block s="doIf"><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><block s="reportListItem"><l>1</l><block var="triple"/></block><block var="board"/></block><block var="character"/></block><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><block s="reportListItem"><l>2</l><block var="triple"/></block><block var="board"/></block><block var="character"/></block><block s="reportEquals"><block s="reportListItem"><block s="reportListItem"><l>3</l><block var="triple"/></block><block var="board"/></block><block var="character"/></block></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="computers turn" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWait"><l>.5</l></block><block s="doDeclareVariables"><list><l>random number</l></list></block><block s="doSetVar"><l>random number</l><block s="reportRandom"><l>1</l><l>9</l></block></block><block s="doUntil"><block s="reportEquals"><block s="reportListItem"><block var="random number"/><block var="board"/></block><l>Empty</l></block><script><block s="doSetVar"><l>random number</l><block s="reportRandom"><l>1</l><l>9</l></block></block></script></block><block s="doSetVar"><l>computer picks</l><block var="random number"/></block></script></block-definition><block-definition s="draws?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIfElse"><block s="reportListContainsItem"><block var="board"/><l>Empty</l></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block-definition></blocks><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" id="818"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADoVJREFUeF7t1cEJAAAIxDDdf2m3sJ+4wEEQuuMIECBAgACBd4F9XzRIgAABAgQIjAB7AgIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+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+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECByxcQFpoRMBzwAAAABJRU5ErkJggg==</pentrails><costumes><list struct="atomic" id="819"></list></costumes><sounds><list struct="atomic" id="820"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Square" idx="1" x="1000" y="1000" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" costume="1" color="80,80,80,1" pen="tip" id="825"><costumes><list id="826"><item><ref mediaID="Square_cst_Empty"></ref></item><item><ref mediaID="Square_cst_X"></ref></item><item><ref mediaID="Square_cst_O"></ref></item></list></costumes><sounds><list struct="atomic" id="827"></list></sounds><blocks></blocks><variables><variable name="clone number"><l>9</l></variable></variables><scripts><script x="20" y="20"><block s="receiveGo"></block><block s="doSetVar"><l>computer picks</l><l>0</l></block><block s="doSetVar"><l>clone number</l><l>0</l></block><block s="gotoXY"><l>-50</l><l>50</l></block><block s="doSetVar"><l>winning triples</l><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><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><custom-block s="make Tic Tac Toe Board"></custom-block></script><script x="20" y="268.83333333333337"><custom-block s="%s wins?"><l>x</l></custom-block></script><script x="20" y="301.83333333333337"><custom-block s="X wins?"></custom-block></script><script x="20" y="331.6666666666667"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doIf"><block s="reportEquals"><block s="getCostumeIdx"></block><l>1</l></block><script><block s="doIf"><block s="reportEquals"><block var="X&apos;s turn"/><block s="reportBoolean"><l><bool>true</bool></l></block></block><script><block s="doSwitchToCostume"><l>X</l></block><block s="doReplaceInList"><block var="clone number"/><block var="board"/><l>X</l></block><block s="doSetVar"><l>X&apos;s turn</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="computers turn"></custom-block></script></block></script></block><block s="doBroadcast"><l>who wins</l><list></list></block></script><script x="20" y="567.1666666666666"><block var="o"/></script><script x="20" y="596.9999999999999"><block s="receiveOnClone"></block><block s="doWaitUntil"><block s="reportEquals"><block var="computer picks"/><block var="clone number"/></block></block><block s="doSwitchToCostume"><l>O</l></block><block s="doReplaceInList"><block var="clone number"/><block var="board"/><l>O</l></block><block s="doSetVar"><l>X&apos;s turn</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></scripts></sprite><sprite name="Sprite" idx="2" x="140" y="-143" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="206.55,185.89499999999998,0,1" pen="tip" id="979"><costumes><list struct="atomic" id="980"></list></costumes><sounds><list struct="atomic" id="981"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="254"><block s="receiveCondition"><block s="reportEquals"><custom-block s="X wins?"></custom-block><block s="reportBoolean"><l><bool>true</bool></l></block></block></block><block s="doSayFor"><l>Congraulations! X wins!</l><l>10</l></block></script><script x="20" y="127"><block s="receiveCondition"><block s="reportEquals"><custom-block s="o wins?"></custom-block><block s="reportBoolean"><l><bool>true</bool></l></block></block></block><block s="doSayFor"><l>Congratulations! O wins!</l><l>10</l></block></script><script x="20" y="10"><block s="receiveCondition"><block s="reportEquals"><custom-block s="draws?"></custom-block><block s="reportBoolean"><l><bool>true</bool></l></block></block></block><block s="doSayFor"><l>Sorry... you both lose.</l><l>10</l></block></script></scripts></sprite><watcher scope="Square" s="xPosition" style="normal" x="10" y="10" color="74,108,212" hidden="true"/><watcher scope="Square" s="yPosition" style="normal" x="10" y="31.000001999999995" color="74,108,212" hidden="true"/><watcher var="X&apos;s turn" style="normal" x="10" y="52.00000399999999" color="243,118,29"/><watcher var="board" style="normal" x="10" y="76.00000599999998" color="243,118,29" extX="80" extY="70"/><watcher scope="Square" var="clone number" style="normal" x="10" y="169.00000799999998" color="243,118,29"/><watcher var="winning triples" style="normal" x="10" y="190.00000999999997" color="243,118,29" extX="185.5615234375" extY="150"/><watcher var="triple" style="normal" x="10" y="338.999998" color="243,118,29"/><watcher var="computer picks" style="normal" x="10" y="338.999998" color="243,118,29"/><watcher var="random number" style="normal" x="10" y="338.999998" color="243,118,29"/></sprites></stage><variables><variable name="X&apos;s turn"><bool>true</bool></variable><variable name="board"><list struct="atomic" id="1028">X,empty,O,X,empty,empty,empty,O,empty</list></variable><variable name="winning triples"><list id="1029"><item><list struct="atomic" id="1030">1,2,3</list></item><item><list struct="atomic" id="1031">4,5,6</list></item><item><list struct="atomic" id="1032">7,8,9</list></item><item><list struct="atomic" id="1033">1,4,7</list></item><item><list struct="atomic" id="1034">2,5,8</list></item><item><list struct="atomic" id="1035">3,6,9</list></item><item><list struct="atomic" id="1036">1,5,9</list></item><item><list struct="atomic" id="1037">3,5,7</list></item></list></variable><variable name="triple"><l>0</l></variable><variable name="computer picks"><l>3</l></variable><variable name="random number"><l>0</l></variable></variables></scene></scenes></project><media name="Tic Tac Toe AI" app="Snap! 7, https://snap.berkeley.edu" version="2"><costume name="Empty" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAAAMdJREFUaEPtmsENglAQBZcm8IyVWIvkW5TRWrhCDAc7MjGxgHeZ4M9wnzx2hiNDdfYMVXWpqqWHu6bpvH8Pus5teT7uf33Tur3q1trbg46a0UJHLfN7LwtZCDbgJwcLj+csFCuDAQvBwuM5C8XKYMBCsPB4zkKxMhiwECw8nrNQrAwGLAQLj+csFCuDAQvBwuM5C8XKYMBCsPB4zkKxMhiwECw8nrNQrAwGLAQLj+csFCuDAQvBwuM5C8XKYKDvQr380TiOp+0DG3CdiC+c+M0AAAAASUVORK5CYII=" mediaID="Square_cst_Empty"/><costume name="X" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAAAgVJREFUaEPt2jtPwlAUB/DDBiERZ6KGkS9AYHQiBqkJ8QEoEIzI6nNwNOJmjN/CsDk6qpvGBBcfq69EHXEjLqYkNaJUzr33nN4WYWvSx/3df3vDP60PACKGkdkKBv1+8Piv1fq49gHAeCwWPy6VFz0Nent9gatG46ENymbzR/X64bCXAzq/uITdWm0Acm2I/zOhx6dnGBsdcVUqdmNCJbRUqUI4HIbazrYrUDe3d2Ck07C3fwDTmamOMaFAzeY7VJarEI1GtaMszEKh2HUsKJA5BW5A9cKY40SDdKMwGGGQLhQWIwVyGiWCkQY5hRLFKIG4UTIYZRAXShZDAqJGqWDIQFQoVQwpSBVFgSEHyaKoMCwgURQlhg2ERVFjWEG9UBwYdpAdigvjCOgnKpfLtsuZXZ/paGsSG0L1QeL8X4eYfapQLMHZ6QmsrK6xFUXHQOZtNplKQSAQgJnZOW+Dvj8zmxvrrHWePaFuCwBnnWcF/bWacaHYQJilmQPFAsJgrOWPGkUOEsFwoEhBMhhqFBlIBUOJIgFRYKhQyiBKDAVKCcSBUUVJgzgxKigpkBMYWZQwyEmMDEoIpAMjikKDdGJEUCiQGzBYFAqUTE5APJFga5mi1d76Q5vLz8u9NHbja30TFQoN/ZoLVEKiM6hz/wFI5+xjrt3fCfXbB4ARAChjYvXAPvefLoh8QmAwO/oAAAAASUVORK5CYII=" mediaID="Square_cst_X"/><costume name="O" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAABGBJREFUaEPtmktME1EUhv+uFXClCwQDCtTHwhaNbhRBQ4zgK2oUfMSoBSUuIEbjhlLKxiAVF8YHxcSoQPERH2BiiIroQhBpNRFESSSCiu546BpzxtykpTOdOzN3CiKTNF303jPnO/+Zc+89Uwum2WUBsA5A63TgSkpK7pKADh12tF6trfmnmdo7OlHgcLybAZqqMs4oxKtMy5Nn8PsD6Pv0Ea3PnqK//3PY1J27diM+Ph7LbXZkZWYgMWE+r3nFcUIVGhj8Cq+3FnU3byB9xUrpY7fbYE1LlXWWbt778RPeBvx4+OC+NH5PXj52bN+iG0wIUDBIwdEi5Oft1hXtu/cewtdQj5HhYRQeK9IFZhjo2vU6uF1OEMixQgfi4mJ1R5dNpHStqqxEQmIiysqcmoKjG2hkZBRlrnL0dHfDXVGB1atWGgYJNkD2L13xoubyRVyu8SJ7QxaXfV1AdLMjjgLExsbinKdKiCpK3lIanjxRgrOeaq4U1AzEYKxWKyrcLq6oGR3U3fMBm3NzuaA0Ax0+UoCYmBicr/YY9VPTfIJatnQJXrW/jpjemoAuXLyCtuetqPXWmJpmaukXCAQU788NxCL0vrsHS5cs1hRdkYOLS05I5pQyhBuIUs1mT8fxokKR/mm2Rc+wzWZDfYNPNvW4gGhQft4eRJJas2cGJlDqB/xdkDvqcAGRzItSUiddHRYDplJTc3NY+qsC0bZmQWIChodHJqUQKAl5ptKD37/GwpYOVSDa2tDmMdplWi0jqUiVFJegpeVxyFBVIEq3NWszuFZpNSdE/56cvBAT004VSG6SaMf02pMLtiqQxWLB+Pi43nuaOo+qHV3BS0lEIPrR4/Hg9i2fqY7pNU7HjEafL6R8qwJ5vV7Zeq/XCZHzyPmJ/s0AiYywUVuaFVKq9UYdETWfDn8vX7SFrJH/V5WjSGZnbzSlZyBCJToBbMrJDVn0VRUqdbqwcFEKDh7YK8IHoTZo0X/e1hbSFVIFYr2yqbYWsVaX5r0cbdXnzInDl4FBTf0xoVLIGKPMmTU7BqdP/T3BsktVIRqoNNlsp5XsRwoyFxCdidZlZEypE+vPH0OybTQuIKYSfUerF6ekDjtwKj0C3EBMJaXmRLTSj0p1Smpa2LOj6Rlig1lbdrKaJXTs7nrTGbEvyK0Qg6IC0dvbG/VmIwumXGNEc5WbmE7RhuKFIT81KzRRKZerzNROKp1Kz1VVhvUOlJ5Z3UBkkHKa3t84XW7hWyMqQuXlbgwODKD6fDV30AwBMYmdpaXS2zaHw2H4xRctmjfqGiRV9LwVNAxEUMFOZGatD9sB85R0UqS+oVFSnGzoDY4QIOYwgd170IRHzU1Sed2ydZvUQl6RbpeGLLamSd1XOjiOjf3Ct+9D6Ovrk8bSZ+++/cjJyTGkslCgYCUo4p1v/JLD9F+F0dFR3LndKA1JSkqWVKAXZwxY1Dta04B40syMMTNAZkRVpM3prdB0+Ufj3LnzOv4AgvmJpmDgaCgAAAAASUVORK5CYII=" mediaID="Square_cst_O"/></media></snapdata>