<snapdata remixID="15136254"><project name="U5L6-TicTacToe I Glenn 1B" app="Snap! 11.0.8, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAQAElEQVR4AeydB3xUxfbHz2wSOtKegljA7hMLCqKIImJF/St2rIAgKk1UpMgTELGCoCAggohgQ1QsCCj6HvauWBAsIHYBC72G5H++s3fCJe7dbDYESZj95Ldn7vQ585sz5d67iYlIrofXwZbigFE+FQYQUKpo6acr/k9xhuJMRUvF2YpzFOcqzlOcr7hAcaHiIsXFAS5VeZmitaKNoq3ickU7RXtFB8WViqsUVys6KjopOiu6Kq5RdFNcq7hOcb2iu+IGRQ9FT0UvxY2KPor/KG5S9FX0U9ysGKC4RTFQcaviNsXtijsUdyruUgxW3K0YohiquEcxLMBwlfcpRipGKe5XjFY8oBijGKt4UPGQYrziYcUExUTFI4pHFY8pHlc8oZgU4EmVkxVPBXha5TOKKYpnFc8FeF7lC4qpAV5UOU0xXTEjwEsqX1bMVLyieDXAf1X+TzErwGsqX1e8oXgzwFsq31a8o3hX8V6A91V+EOBDlR8pPlZ8EmC2yk8Vnyk+V3wRYI7KLxVzFfMCfKUSfK0SfKPyM6kgn0olRWX5TCqr3EFmS1WVVYS2WQLSoSgPJaJMlIpyUTQKHyciKJ9OoDPoGDqIjgIjNJzOoxPp0Hv1ms6lk+lsOn6Q+kECyAApIAckgTAQBwJBpP4aD1JBLkhG3SAd5OulYZARUkJOSApZIS4EhsgQuovGg9yQHLJDesjfQf2vULRXMDguV8mAAQweBtEl6sfAYoAx0FrpNYOOwccgZEAyMM9SfwYpg/UMdTN4GcSnqftURYsAp6g8WXFSgBNVnqA4XtFccVyAZiqPVTQNcIzKoxVNFEcFaKzySMURikaKwwM0VNlAcViAQ1XWVxyiODjAQSoPVNRTHKD4d4D9Ve4XYF+V+yj2VuwVYE+VeyjqKuoodg+wm8pdFbsoagfYWWUtRc0AO6nsKpPkBKXecTJHmspcOUbmqfxSOsjTSksRS0AapnH9n9fAFtdAtmTJOikn2ZIpOXG62TJwG3VZAuaqw/95DRSHBoxsTJhtjpIxj4AJY3hPr4EtoIEMtXuJstmMgLmJYpR2P9++raKBWCoETFYTyOmQoxETASMbhWxNkwgb1D8/1qtfMqzT8PxYq36JsEb9o7BawxJhlfrnx0r1i8IKDQtjuV4vUywN8JfKPxV/KH4PsETlYsUixW+KXwP8ovJnxU+KHxU/BPhe5ULFd4oFivkBvlXJLpPdJjvPeXoN5qpkd8ouFXyh1+xe2cWym2VXC9jlsttl18vu1+2E39f47ynYKb+jErB7ZhfNjpqdNTtsdtqAnTc7cHbigJ05O3R26uzYl0UQcKVOweSTdA2IQsI7RnaNHLGwa2THyPELu0YQtWs8TxtxroLd41kq3c6R3WP+naPbPbqdY/4do9s1ut0iO0XgdotsptwuMbxTZJfIDtHtDutrPdghHqQyvDN0u0N2hm5HGN4Vuh1h1G6QXSG7Q7dTJB67R3aRpAXsLtllki9luB0oZbIzpQ71gnpRN+rITpb6Um/aAGgPO1/axm6YXTGg3egAXYCjNC920ugIXbldNjpk580uHL2yKwfs0NE7u3Z274D+YFdP/7DLZ7dP3wFOAOhL+hXQx5wS0N/0+9wIAi5SAvbQulkCqkz4x4ierCGcYeU/vwqfW3FmxZkO51WJzqoYGYwSRgysZxQxmhhZjDBGG6OO0cdIZEQyMhmljFZGLiOYkcyIZoQz0hnxjH6sANYA64CVwFpgNbAeWBIsCoMJK4PF+U3bhAXCGmGZsFBYKiwW1gsrhmXD8q3SuFhLrCmWFguM5caqY/WZEZghNJr/S6gBNJQoIE49++0VmEhB3m/LaCAFAkYVxDY5Ksz7ew2kpoEUCOgtYGqqLCWxtnIzUiBgVI28BYzSjPdPXQOJCWh0EyJi7Ld4Cyj+U0wayI24EyJx6sW/owhoiqlSPtvtSQOJLaDEqRd8b0/68G3dyhpIgYDeAm7lPtmuiosioFEtxJJbQKJoLP/nNVAEDXBcH5U8I07AKAsYlSxdf59ue9RAFAExbwEBo9RClKgw7+81kIoGonfBpA4I6C0gyvAoHg1ErwGNBASUiI+3gBGK8d6F0EDUFEwWwSbEW0CU4VE8GogiIObNW8Di0bnPNU8Dfg2Yp4p/0rE9lx1tAY1fA4r/FLsGojYhFBxMwVFrQGZponl4DaSvgWgLKM4CRhEw/UJ9Sq8Bp4EoAhIeWECciWASeXo/r4FCaaAIU3ChyvGRvQYSaiDKAmLegnPAhOnUkygq/J/XQNoaSHYMYyTTP4yQtmZ9whQ14C1giory0YpHA1EEpLRgExK1C/ZTMEryKJoGoggIuwICFq2AbTd1p06dpHfv3tKzZ89Co3Xr1lK3bl3p1auXRTp5NGzYUJo0aWLrQD6FzaN79+5SvXr1bVfBKdVsO94Fd+3a1XZ+nz59pLC4/PLLLQFvvPFGAYVNT/xGjRpJ06ZNbR3SyQPSlnwCFsECYiRTIrmP5DUQqYHEBIRbpqA7IUSSkvrx9d4mNJAb8etYIrArI34MI/7jNVBsGkhsAePFxeIE9LvguDr8d3FoIBkBvQUsDo37PEMaiL4TYnQSDgjoLWBIY965hTXgLeAWVqjPrnAaiDoHNJqNt4CqhFL3t401qAgWEI5uY63x1SlhGki2BhTdA8doT9QakDAPr4GiaSBqCibXDKWgyigCGg3zf14DRdMABIxiWHAOWLQCfGqvgWQaSLYGDAgYxU9vAZMp1oelpgEsYOKYRifgmPiP10CxaiCagOIIuKUsYLG2I43M27Rpk/coFI9DFQYjRoyQTz75RC699FL7OFZh0rq4b731lkycOFGuueaatPK46aab5Pff+V9OaTR+m0kCAaMYlqEU3GYquuUr0qBBA9lhhx2kUqVKhUaFChWkWrVqcsABB0jlypULnZ4yy5QpY58prFWrVtp5xGKxLa+YrZojBIwqsJSvAbt06ZK2BWzbtq0lD09UA2fVCiMPP/xwOeaYY2wd0smDJ6hL+gOp0Y9jQcqAgDg9vAaKRwN+F1w8evW5pqiBIkzBKZbgo3kNJNEABEy8CTG6BUm6wjXiP6lpwMeK1gAEjAoN1oCJ+SniCSj+U2QNpLAGLHIZPgOvgQgN5Cb9V5gZOglrQm8BVQn+r5g0gAWMYlgwBRdTyT5brwHVQBHWgJrarwNRgkcRNBBNQKMTcEz0E2UgNcgTECV4RGqg4ICcJKvAYAr2BCxYjT5Guhoo4hrQH8Wkq3ifLq6B6ClYCpqCTTwH/+01UAQNJCNghlJQsy6tU/DKlSu1den/ZWdny5o1a9LPQFOuXbtWNm5kGtKL7fAvN/LHiVBGKV8DNm7cWA477LC0cMkll8ibb74p+++/f1rpKfexxx6Te+65Rw4++OC08jjyyCPlhx9+oKdKMLCAUSYuIGCy1pXkafizzz6Tjz/+WD788MNCY8KECdKsWTNZuHChfPTRR4VOT5kXXnih/WXWOXPmpJXH22+/Lbvvvnuy7ikBYRAwqpoBAaP4GZVsm/BPoRLGxIcPTxWnA4owxogxRtJJb0w8rejHGJNWHlLiP9HLD6MrwJjoJxkBjYb7P6+B9DVQRAvoCZi+6n1KNAABo0xcMAUTLQqegFGa8f6paQACRsXM0ElYw6L4qUHiCYgWPNLXQDICBhYwGQHTL9in9BoQvQ8MAaMYVgABsX7AK3Kb0kAJrAwk/Hu1TUH/pkH04wmoSvB/RdAA1i/qKCZYA0bl/mel6pJzaAuJtegssVO7ljhIxaoimVnpofouEjvynPTSBmWaes3E7HdU+nmUKSexZq1LnN4tV07pLKb+yWIqVVN6JbaAoluQmIbqPM33JiypXEPatb1XGt88S9a1Gy6x07qJzbSEkTBOwDIimYWHqV5bzBFnp5XWlRcnYOP088hSAh57WYnUfez0bpLRfoRk3DxD1rXNlNwqWMJNHIu7MpSC6goHfVNzT2neY4pMaXCa7LpjZWn/70ryn8OryU0lEDXKZUiZmEkLu1fOksv2r5xWWlfmqXUrSvNdK6SdR/nMmHQ6uEqJ1D2cgTt771hJNjYwsqbnWsnZKb8lzIgTUILP0gpV5PyO4+TnarWlf6Pq8vkldWVU85rST919SyAgYNkMI+mgTuVMS8B00ro0LepUUAKWT6t88qiQaaSzErAk6h7OwJ05yqHeDapJ7g65sq7DesktHzZ3GXECOq/Rut74vsaucmW9HaSPWjw1HgE1vfAaSE8DcGjAkdWl00FVJKdWjmw4LjsvI5N/FzyzXjOpGMuVgY1rSKKP9/MaSFcD/Y+oLuWVjRvrhXfEsc0t4IId60idqmWlatlYuuX4dF4DCTUAp+pWyZLczdaBGXECuhSsAVl3uOutKTds2CC5uW4x8PeSc3JyBPw9JNqHPKNDt14I7UpUF9pDWDo1IS1PbKeTlie0QTppi5KmQpbRNWA4h4CA0d0uwiPlV1xxhQB+8HHcuHGyfv36cC5FdqOMHXfcUb755puEef3yyy/2yWR+HDJhhASedPhuu+22xeuaoKgCvb7++ms58MADN4vHQ6p77bWX3HnnnZv5p3rx0ksvyVFH6RljqglC8YYPHy6dO3cO+fwzTpN/DSgJPnQkpGvevLk0adJE7r77brn99tvlyy+/tE8bP/PMM7Ju3TqBJI8++mjeI+SM0BdffFF4svjPP/+0OS9ZskTGjx8vKC888nEvW7ZMli5dan9T+aeffrLx3RflQ/qzzjrLer3++uvy+OOPC2nw+OCDD+Tzzz+XSZMmcWnh8ly8eLE8/PDD8tdff1kL++yzz8qqVatkxYoV8txzzwlWZOrUqbb+PEJP/NmzZ8sLL7xg8+HrnXfeEerw22+/cSmvvfaajf/kk0/K3LlzrV+iL9pLPRctWpRXV+LRljvuuEPKlSsnJ510El7yyiuvCPm591go87vvvpPnn3/ehruv77//3rYdnS5fvtzqnnYwiJeq/mbMmGGjonvi0CfEe//99+Xll1+2YRiV1atXyxtvvCEzZ860fuEv9Eo6Xklw/rwa8Mgjj8hXX31lvagH6fkdbcqk/CeeeELmz59v9Uz59CPtpx0k2vDlW5K7fAlOyZaZev68Jj4FJ7OANrZ+nXzyyXLeeedZS/Tjjz/azj733HPlqaeespbr6KOP1lgiLVq0EEb84MGDhQrTaaeeeqq1pLzjQOc/+OCDMmjQIBs//DVy5EiBDMcff3zedAuR+KFuGvjHH3/I9ddfLwMHDhQad8ghhwhKZkS3bNkyT8EuT9JgYSAgdScvSAwxfv75Z9seOqJDhw5y3XXXCUqnrhDx4osvlmeVrHTu1VdfLQsXLhTqT579+vWzM8J7770n/A41+bkynWTgYqF4NH/06NHO20oGJ51MHOrfpk0bGTNmjPAKQf369QUSDh061OoS4thE+oUeKI+ZAt2ql0Cuc845R8iLzmemwr9t27Zyyy23CLrBdZwGMAAADCZJREFUeNAW2g5hCIc8s2fPtu2YPHkyXhb0D++zQDBmPH6snQHPTw0TdvbZZwv6YRBedNFF8vTTTwu6hwv0HW4yat26tZAeLqAH2rTysb4iP3xBsKyWLkrAFXECWp8kXyhsjz32sD/azTsWnTp1srFr165tK0Ml6Nxvv/1WypYtKzSIH/meNWuWMCoZ7ZmZmfYHwwk74ogjhMrbTEJf3bp1k/79+1sCo1iCjDFywgknCFM0g4BfnYcAN9xwg7UgDABjjBx77LECsUnjQJ0om1+bT2apjDHSqlUrofwFCxbYafG4446TefPmWYK1atXKPk6PlcdiGmOEzmSQVaxY0Q4GV6aTv/76q2BNiQO5nT8Sy8cLU7vssoslNWS67bbb7MCCSLOVGMYYSw4GG2kA/vzwOe1p3749XknBIOK9FAYZ+UNepn4S1a9f3xKE/wKA9cUPMGAyMjLsr/pjhSEylpmBeeWVV8oZZ5wh48ePF2OMJT0kb9asmZx44ok2zRdffJH3JiEDg2UT5OM/BpD/5qgYJ2BBFpD3Id59912hc8Chhx5q83E/oA1BIQiWBNPbtWtXueqqqwQ3vzQPgeg8Rg0WDBK3a9fO5hH+grwoGD/Ig8wPY4xAasrklUnqRpxKlSohNgOKzMrKEgYD+RljhPyZgiCHhD7EY5CQjzHxeARfe+21glIhKNfkgyRPY+LxqAvWmWmdMEC9IBOEpb74JQJ1xJ86YV3pLOdHGYSFAZkoj7bjTznGGLukYKrHz4Ff90enAD/aSFrcLj3LJ1ce/tSBMnBjLV999VVLNuqFH/HRE24GnzHGGh0GlfN3OmKpQfspkzJs+JrlavnWKNaKSWUNKMGnZs2a8q9//UuMMYHPJoGpxWJBPEYDo//WW2+109qnn35q/9UBysRKYQGZzhiNm3JIzUUj+LX57t2725HIJoNRnlrqeCzWXFgFptu4T/Jv3kpjGmTJUKdOHTulJUrRsWNHaxlc2M4772w3Hgw+LLPrFBfuZPny5YVfw+c1UCw8v6wfpZtGjRoJgx4r9NBDD9llSpUqVeSggw6y+mA9HlWOK89J1mXojrqdf/75zttubGjz6aefLpdddpl9p5kZDwvGIGS269WrV178ZA6WPi1btpS9995bmjZtKhUPaCwbpw6VNdJHjJTXpKZgC4hFgP1YMgl9mAaY/vCCmJj2++67z24G9t13X+nbt69d5N911132H74QB/POlDht2jSBoKQFjAxGHe/g7rnnnoK7atWqBFmwrmQ64IJpEgtK41ib0IFjx461myPCHbB0S5cutRaPTsVyG2Psuo7FOOtNBg1WgrXTKaecIgwQ1izkAUEhOsTj9UjWaEyBTENsoi644AKi2UU3MwKdha6sp34xWKgzHcaygTWVeuf9sYSgHnigC9ZkTHXohrqTxq3niAP4nyfUj40daVkzojs2Ycw2DzzwgLAMIi6bBvqBqZrZC7/p06cLpKNdbNruv/9+u2nEaBAOsGRsPiAmAw8C0S+UO2zYMNteyMQSio0oaTAqrPn22Wcf23cYG/z5Bz20g9daaVPsvH6S2eM5qSCDpLLMVvLVVEjyjzHKVR2lxmxu+Wg4mbrUKBwr6fyMMcLorK3rRMKIh+Qaf2M2zw8iGWPEmL+XRzo3jZAPcWvUqGHXZVwztQDcYaBMrpmmnJu8WC4g8TPG2LUk1+F4tIM24sfgQTLlQALCiE/e5EEYbccy4edAHNIiief8keQdbhPkxbqRF+GUQRzcYeBH28N54nZpXTlIY4wQ35VDnsTFD30x+GhTOH/c1IH2hI0OaXbaaSebH3HIJ3++xhihbwjHipJ3OI12rkjFKhqcITpxWxnTb52P+fYoigYaNmwoEKMoeZSWtMYYe0THkiJ5mzLiFrCgTUjyTHxoadZA8bbNE7B49etzL0ADnoAFKMgHF68GAgIWbyE+d6+BxBowugKMiX6SrQE5EuHWG7e+uH3FgTLnfNxic+AAtCC3Cy9IppJXOE5UfuE4qbij8snvn0pe4Tj507vrcJxU3C5dQTKVvMJx8udHGOCgHnDAzuGzO19EcuTDMRxHSfnBmSZ3f9xBt9IryV+GUlCDkxGQe5VTpkwRzqc4RwK48yPsn8iNHyAdEiRy4wdcOG4H/IC7RnIdBn4Ozt9dO4l/fjd+AH8kSOTGD7jw/G6uAeEOXAN3jeQ6jLBfIjd+gDRIkMiNH3DhuB3wA+4ayXUYkCvsz9knRzZKE/vHuSh3eLjTxS1G7hSFwdkftxm548U5q00U+RUQMDJcA2A8ZzkctnKTmlN6jhw43OVkHuAGxeUO50s5AD+AOwz8QNgPN34ANygudzhfygH4Adxh4AecX3G5w/mGy0rkz316wIMXPP1Ur169vPNWrCFnhPQ/tw6ZHbF0+VGrVi3hTgo3C5RCSf4CAiazgC41BQMOIBkRxQ69h+vLyJJ/SgccPAP63HGAu0ncSOD+rvNLJLn3y+1WZs9E4Zv8UiSgMcaOAirEaTon4E7i9ihrb8iXJj3Qv5AfgyPBhwcVmBGDy80Et2u5pek8iQfcdSJpdAUYE/2kYgGpCASkUqA0Kdu3ZdMAcsSjj+lv+l0pIsYYREJANNaD7jZcwkgJPTOUghpQEAGNMbYCmGMqRMUAbo8MKQ06oD/DoE30tzFGGZL4D4tICA9u8NwgDy1wnTpMnIBSwMcYY6dgKhQGlfQoHQQM96tz07e4JeIzZMgQYa3H0zhnnnmmfTo7Imqkd4yQgiwgcagIMMZYa2iMl8aUbh3Q78nAaw683MRj+rxikCxuVFhKBIR4wBhjLaExpVvxxvyj7dumBrgk+dStW9c+1g8ROaxOEjUyyBIwMjQIMMZY4jkSGmPEf7wG0ACPXCV6KYuwVGAJWNAUDPHcesCYOPmMictUCvFxSocGeM0AsnHOF24Ru+DwNZsT3gfhgdewfyJ3gQTkyVoe7eYReTLkKVe22/j744tNxxelVRccyzji8JQzj/LzLACP/POOcH7wJiGvMPA4P9bRpY2SsUoyVUbKV/Jv+VrMKpGVG3I2i8vj8/vtt59AQNw8Ou5IyLP/HhXsW3elVQ8MLEcIY4zwnjDvxPD+Cu97JALvgPCSVv5fg1i5XrmlHHP5IdUCVpD1UllWSiUxi2KyYGm2/LZ6I2EWjIDw9GuMyVsk2wj+a7vSADPfgAEDZNSoUfYXGvjlgzD4dQRIyovsYcXAqe+WZUtMORb2VwLm5l1nzs6Q9bm50uOt3/17Inla8Y6iagCG9XnnD8stOBbOTwm46TJrVpbEfozJ41+vlGte/13WZJN0U7h3eQ0UVgNwqOOsJTJh3gqJLYxJ1v+yJPxRAoZIplN0uTFlJfZLTEZ9vkz2mfC9XDJjkbSbvtjD66DQHLh0xmLLobFzlotZbKTc2LL855ow//5+K878qRGHlpXM1zJl8eIcmTR/pUxYsMLD66DQHHhi/grl0EbLpfKDy4lZajYjHxexbHlT9pTpcorFNGkh0+S0NdPk7Mkz5Zzer0qNXv+VjCGvSMbQmQFeVunwkrrBDJVgukqHaeoGL6oEU1XGERv6gmzC8+p+Lh+e1WswRaXDM+p2eFrdT4UwWd0OT6obTFIJnlDp8Li6wWMqHR5V9yP5MFGvJ4oZOiHAwyodxqsbPKTSYZy6HR5UNxirEoxR6fCAuh1Gq/v+EEap22GkusEIlQ73qRsMVwmGqYxDhg4TGXqv4p4AQ1U6DFE3uFulw2B1g0EqHe5SN7hTpcMd6ga3qwS3qXS4Vd1hDNTrWwIMEBlys5iePUR6d5PY5JfErM5PvlzlX67E1kp/qSPt5GSL9nKitJfj5QpprjhWOkiZlR1k3YKrZN38qwN0VOnQSd2gs0rQRaVDV3WDa1SCbirjWD//WtmE69R9fT5012twg0qHHup26KnuXiH0VrfDjeoGfVSC/6h0uEndoK9Kh37q7p8PN+v1zbJh/oAAt6h0GKhucKtKh9vU7XC7usEdKsGdKh3uUrfDIHUPDuFudTsMUTcYqtLhHnWDe1WCYSrjyJ4/TLLnD1fcF2CESoeR6gajVDrcr24wWqXDA+oGY1Q6jFU3eFAlGKfS4SF1hzFerx8OMEGyF0yUDauekQ0yVdbJSFkjN8hquV5xraKroouio/w/AAAA///9aLmsAAAABklEQVQDAD3da9Q2xUnQAAAAAElFTkSuQmCC</thumbnail><scenes select="1"><scene name="U5L6-TicTacToe I Glenn 1B"><notes></notes><hidden></hidden><headers></headers><code></code><blocks><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="reportVariadicGreaterThan"><list><block var="start"/><block var="end"/></list></block><script><block s="doSetVar"><l>step</l><l>-1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportVariadicLessThan"><list><block var="i"/><block var="end"/></list></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="reportVariadicGreaterThan"><list><block var="i"/><block var="end"/></list></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"><block s="errorObsolete"></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="words"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><l></l><block s="reportListItem"><l>1</l><block var="words"/></block></list></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><l></l><block s="reportListItem"><l>2</l><block var="words"/></block></list></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><list></list></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="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="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>5</l><comment w="78" collapsed="true">3.3.3 TIF B</comment></block><block s="setScale"><l>80</l><comment w="190" collapsed="true">Oops costumes are a bit too big.</comment></block><block s="doSetVar"><l>position number</l><l>1</l><comment w="53.333333333333336" collapsed="true">3.3.1.4</comment></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="reportVariadicSum"><list><l>-100</l><block s="reportVariadicProduct"><list><l>50</l><block var="j"/></list></block></list></block><block s="reportDifference"><l>100</l><block s="reportVariadicProduct"><list><l>50</l><block var="i"/></list></block></block></block><block s="createClone"><l><option>myself</option></l></block><block s="doChangeVar"><l>position number</l><l>1</l><comment w="53.333333333333336" collapsed="true">3.3.1.4</comment></block></script></custom-block></script></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>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;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"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="status of triple %l"><l/></custom-block></autolambda><list></list></block><custom-block s="possible winning triples"></custom-block></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="reportVariadicEquals"><list><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></list></block></block></script></block-definition><block-definition s="draw win line" type="command" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doFor"><l>i</l><l>1</l><l>8</l><script><block s="doDeclareVariables"><list><l>line</l></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="i"/><custom-block s="status of all winning triples"></custom-block></block><block s="reportNewList"><list><l>X</l><l>X</l><l>X</l></list></block></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="i"/><custom-block s="status of all winning triples"></custom-block></block><block s="reportNewList"><list><l>O</l><l>O</l><l>O</l></list></block></list></block></list></block><script><block s="doSetVar"><l>line</l><block s="reportListItem"><block var="i"/><block var="win lines"/></block></block><block s="up"></block><block s="doGotoObject"><block s="reportListItem"><l>1</l><block var="line"/><comment w="137.33333333333334" collapsed="false">This is why each line in WIN LINES is a list of points, each of which is a list of x,y coordinates:  It allows us to use the endpoints, as points, in the GO TO block.</comment></block></block><block s="down"></block><block s="doGotoObject"><block s="reportListItem"><l>2</l><block var="line"/></block></block><block s="up"></block></script><list></list></block></script></block></script><scripts><comment x="174" y="6.666666666666667" w="244" collapsed="false">I&apos;m kind of bummed that I didn&apos;t find a beautiful one-line solution using FIND FIRST, but it just gives the value it finds, not the position in the list, which is what we need to find the line endpoints in WIN LINES. So it&apos;s a plain old fashioned FOR loop.</comment></scripts></block-definition><block-definition s="move in this square %&apos;what type&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input></inputs><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><comment w="53.333333333333336" collapsed="true">3.3.1.5</comment></block><block s="doIf"><custom-block s="won? %s"><l>X</l><comment w="53.333333333333336" collapsed="true">3.3.2.9</comment></custom-block><script><block s="bubble"><l>X won!</l></block><block s="goToLayer"><l><option>front</option></l></block><block s="doTellTo"><l>Sprite</l><block s="reifyScript"><script><custom-block s="draw win line"></custom-block></script><list></list></block><list></list><comment w="134.66666666666666" collapsed="true">3.3.3.TIF B.  See below.</comment></block><block s="doSetVar"><l>playing</l><block s="reportBoolean"><l><bool>false</bool></l></block><comment w="53.333333333333336" collapsed="true">3.3.3.5</comment></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="what type"/><l>d</l></list></block><script><block s="doBroadcast"><block s="reportListItem"><l><option>random</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>number</option></l></block></autolambda><list></list></block><block var="board"/></block></block><list></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="what type"/><l>s</l></list></block><script><block s="doBroadcast"><custom-block s="next move for computer"></custom-block><list></list></block></script><list></list></block></script><script><block s="doSwitchToCostume"><l>O</l></block><block s="doReplaceInList"><block var="position number"/><block var="board"/><l>O</l><comment w="53.333333333333336" collapsed="true">3.3.1.5</comment></block><block s="doIf"><custom-block s="won? %s"><l>O</l><comment w="53.333333333333336" collapsed="true">3.3.2.9</comment></custom-block><script><block s="bubble"><l>O won!</l></block><block s="goToLayer"><l><option>front</option></l></block><block s="doTellTo"><l>Sprite</l><block s="reifyScript"><script><custom-block s="draw win line"></custom-block></script><list></list></block><list></list><comment w="130.66666666666666" collapsed="true">3.3.3.TIF B.  See below.</comment></block><block s="doSetVar"><l>playing</l><block s="reportBoolean"><l><bool>false</bool></l></block><comment w="53.333333333333336" collapsed="true">3.3.3.5</comment></block></script><list></list></block></script></block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportNot"><block var="X&apos;s turn?"/></block></block><block s="doIf"><block s="reportVariadicAnd"><list><block var="playing"/><custom-block s="tied?"><comment w="135.33333333333334" collapsed="false">3.3.3.1 and 3.3.3.5&#xD;See 3.3.3.3 above for why we have to test PLAYING.</comment></custom-block></list></block><script><block s="bubble"><l>It&apos;s a tie.</l></block><block s="goToLayer"><l><option>front</option></l></block></script><list></list></block><block s="doDeclareVariables"><list><l>available squares</l></list><comment w="252.66666666666666" collapsed="true">3.3.3 TIF A, here on down.  See comment below.</comment></block><block s="doSetVar"><l>available squares</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>number</option></l></block></autolambda><list></list></block><block var="board"/></block></block><block s="doIf"><block s="reportVariadicAnd"><list><block var="playing"/><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block var="available squares"/></block><l>1</l></list></block></list></block><script><block s="doReplaceInList"><block s="reportListItem"><l>1</l><block var="available squares"/></block><block var="board"/><l>X</l></block><block s="doIf"><block s="reportNot"><custom-block s="won? %s"><l>X</l></custom-block></block><script><block s="bubble"><l>It&apos;s a tie.</l></block><block s="goToLayer"><l><option>front</option></l></block><block s="doSetVar"><l>playing</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block></script><list></list></block></script></block-definition><block-definition s="best empty square" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportListContainsItem"><block var="board"/><l></l></block></autolambda><list></list></block><block s="reportNewList"><list><l>5</l><l>1</l><l>3</l><l>7</l><l>9</l><l>2</l><l>4</l><l>6</l><l>8</l></list></block></block></block></block></script></block-definition><block-definition s="how many %&apos;symbol&apos; in %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input><input type="%l" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>tally</l></list></block><block s="doForEach"><l>item</l><block var="list"/><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="item"/><block var="symbol"/></list></block><script><block s="doChangeVar"><l>tally</l><l>1</l></block></script><list></list></block></script></block><block s="doReport"><block var="tally"/></block></script></block-definition><block-definition s="winning triple for player %&apos;symbol&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>winTime</l></list></block><block s="doDeclareVariables"><list><l>opose</l></list></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="symbol"/><l>X</l></list></block><script><block s="doSetVar"><l>opose</l><l>O</l></block></script><script><block s="doSetVar"><l>opose</l><l>X</l></block></script></block><block s="doSetVar"><l>winTime</l><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><custom-block s="how many %s in %l"><block var="symbol"/><l/></custom-block><l>2</l></list></block><block s="reportVariadicEquals"><list><custom-block s="how many %s in %l"><block var="opose"/><l/></custom-block><l>0</l></list></block></list></block></autolambda><list></list></block><custom-block s="status of all winning triples"></custom-block></block></block><block s="doIfElse"><block s="reportVariadicEquals"><list><block var="winTime"/><l></l></list></block><script><block s="doReport"><l>no winning triples found</l></block></script><script><block s="doReport"><block var="winTime"/></block></script></block></script></block-definition><block-definition s="Winning square for %&apos;player&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input></inputs><script><block s="doDeclareVariables"><list><l>square</l></list></block><block s="doIfElse"><block s="reportIsA"><custom-block s="winning triple for player %s"><block var="player"/></custom-block><l><option>list</option></l></block><script><block s="doForEach"><l>item</l><custom-block s="winning triple for player %s"><block var="player"/></custom-block><script><block s="doIf"><block s="reportIsA"><block var="item"/><l><option>number</option></l></block><script><block s="doSetVar"><l>square</l><block var="item"/></block></script><list></list></block></script></block><block s="doReport"><block var="square"/></block></script><script><block s="doReport"><l>No square found</l></block></script></block></script></block-definition><block-definition s="next move for computer" type="reporter" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportIsA"><custom-block s="Winning square for %s"><l>X</l></custom-block><l><option>number</option></l></block><script><block s="doReport"><custom-block s="Winning square for %s"><l>X</l></custom-block></block></script><list></list></block><block s="doIf"><block s="reportIsA"><custom-block s="Winning square for %s"><l>O</l></custom-block><l><option>number</option></l></block><script><block s="doReport"><custom-block s="Winning square for %s"><l>O</l></custom-block></block></script><list></list></block><block s="doReport"><custom-block s="best empty square"></custom-block></block></script></block-definition></blocks><primitives></primitives><stage name="Stage" width="480" height="360" costume="1" 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="826"><pentrails>data:image/png;base64,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</pentrails><costumes><list id="827"><item><ref mediaID="U5L6-TicTacToe I Glenn 1B_Stage_cst_Untitled"></ref></item></list></costumes><sounds><list struct="atomic" id="828"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="2"><sprite name="Square" idx="1" x="49.99999999999993" y="-49.99999999999998" heading="90" scale="0.8" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="1" color="80,80,80,1" pen="tip" id="833"><costumes><list id="834"><item><ref mediaID="U5L6-TicTacToe I Glenn 1B_Square_cst_Empty"></ref></item><item><ref mediaID="U5L6-TicTacToe I Glenn 1B_Square_cst_X"></ref></item><item><ref mediaID="U5L6-TicTacToe I Glenn 1B_Square_cst_O"></ref></item></list></costumes><sounds><list struct="atomic" id="835"></list></sounds><blocks></blocks><variables><variable name="position number"><l>10</l></variable></variables><scripts><script x="10" y="10"><block s="receiveGo"></block><block s="clear"></block><custom-block s="makeBoard"><comment w="190.66666666666663" collapsed="true">3.3.1.4, and 3.3.3.TIF B, inside</comment></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="reportNumbers"><l>1</l><l>9</l><comment w="53.333333333333336" collapsed="true">3.3.1.2</comment></block></block><block s="doSetVar"><l>playing</l><block s="reportBoolean"><l><bool>true</bool></l><comment w="130.66666666666666" collapsed="true">3.3.3.5, more below.</comment></block></block></script><comment x="10" y="175.6666666666668" w="179.33333333333334" collapsed="false">3.3.3.3:  If the ninth move, the one that fills the board, causes a win, then the game isn&apos;t a tie even though no more moves are possible.</comment><script x="10" y="265.6666666666665"><custom-block s="possible winning triples"><comment w="90" collapsed="true">3.3.1.8 inside</comment></custom-block></script><script x="10" y="300.66666666666646"><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><comment w="53.333333333333336" collapsed="true">3.3.2.2</comment></block></script><script x="10" y="344.4999999999998"><custom-block s="status of triple %l"><l/><comment w="90" collapsed="true">3.3.2.5 inside</comment></custom-block></script><script x="10" y="379.49999999999983"><block s="reportVariadicEquals"><list><custom-block s="status of triple %l"><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block></custom-block><block s="reportNewList"><list><l>X</l><l>X</l><l>X</l></list></block></list><comment w="77.33333333333333" collapsed="true">more 3.3.2.5</comment></block></script><script x="10" y="420.5000000000001"><custom-block s="how many %s in %l"><l>x</l><block s="reportNewList"><list><l>X</l><l>2</l><l>X</l></list></block></custom-block></script><script x="10" y="457.5000000000002"><custom-block s="best empty square"></custom-block></script><script x="10" y="487.3333333333337"><custom-block s="winning triple for player %s"><l>x</l></custom-block></script><comment x="10" y="520.3333333333338" w="174.66666666666666" collapsed="false">3.3.3.5:  There are many ways to do this.  The way shown here uses a /flag variable/, i.e., a variable whose value is true or false.  In this case, PLAYING is true if further moves are allowed.</comment><script x="10" y="622.3333333333339"><custom-block s="next move for computer"></custom-block></script><script x="10" y="652.1666666666672"><custom-block s="Winning square for %s"><l>X</l></custom-block></script><script x="10" y="685.1666666666677"><custom-block s="won? %s"><l></l><comment w="90" collapsed="true">3.3.2.8 inside</comment></custom-block></script><script x="10" y="720.1666666666677"><custom-block s="tied?"><comment w="90" collapsed="true">3.3.3.1 inside</comment></custom-block></script><script x="10" y="755.1666666666677"><block s="receiveInteraction"><l><option>clicked</option></l><comment w="90" collapsed="true">Human </comment></block><block s="doIf"><block s="reportVariadicAnd"><list><block var="playing"/><block s="reportVariadicEquals"><list><block s="getCostumeIdx"></block><l>1</l></list></block></list><comment w="121.33333333333333" collapsed="true">3.3.3.5, more below.</comment></block><script><custom-block s="move in this square %s"><block var="opponent"/></custom-block></script><list></list></block></script><script x="10" y="874.583333333334"><block s="receiveMessage"><l><option>any message</option></l><list><l>data</l></list><comment w="90" collapsed="true">computer</comment></block><block s="doIf"><block s="reportVariadicAnd"><list><block var="playing"/><block s="reportVariadicEquals"><list><block var="data"/><block var="position number"/></list></block></list><comment w="121.33333333333333" collapsed="true">3.3.3.5, more below.</comment></block><script><custom-block s="move in this square %s"><block var="opponent"/></custom-block></script><list></list></block></script><comment x="10" y="997.8333333333342" w="358.6666666666667" collapsed="true">3.3.3 TIF A&#xD;This is quite complicated!&#xD;We are asked to make a check, never mind details yet, after the eighth move, because that&apos;s when the last move is forced.  But if the eighth move causes O to win (it has to be O because odd numbered moves are X and even numbered moves are O), then we shouldn&apos;t do this.  That&apos;s why the IF around this code has to include a check of PLAYING.&#xD;&#xD;If O didn&apos;t just win, then we are going to imagine filling the final square with X (because move 9, an odd-numbered move, is always X).  But we&apos;re not really going to change what&apos;s on the board, just what&apos;s in the BOARD list.  (Really we shouldn&apos;t even do that; we should copy the list and change the copy.  But if the eighth move has just happened and X can win on the next move, it&apos;s okay that we&apos;ve already marked that square as belonging to X; we&apos;ll do it again when player X actually clicks the square.)&#xD;&#xD;It&apos;s just after the eighth move if there&apos;s exactly one number left in BOARD.  We compute the list of numbers in BOARD, for two purposes:  First we see if there&apos;s exactly one number.  If so, we change that item of BOARD to X.  Then, if X didn&apos;t win, we can announce a tie. &#xD;&#xD;Note: The code from 3.3.3.1 that checks for a tie on the ninth move is now never going to succeed, because we&apos;re catching ties early.  But there&apos;s no need to remove it, just in case a player manages to click the ninth square before we locate it.  Maybe mark it as obsolete in a comment.  </comment><comment x="10" y="1029.8333333333344" w="356" collapsed="false">3.3.3.TIF B starts here.  The instruction below only needs to be run once.  It makes a list of the two endpoints of each of the lines to mark a win.  It must be in the same order as POSSIBLE WINNING TRIPLES. </comment><script x="10" y="1107.8333333333337"><block s="doSetVar"><l>win lines</l><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportNewList"><list><l>-100</l><l>50</l></list></block><block s="reportNewList"><list><l>100</l><l>50</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-100</l><l>0</l></list></block><block s="reportNewList"><list><l>100</l><l>0</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-100</l><l>-50</l></list></block><block s="reportNewList"><list><l>100</l><l>-50</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-50</l><l>100</l></list></block><block s="reportNewList"><list><l>-50</l><l>-100</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>0</l><l>100</l></list></block><block s="reportNewList"><list><l>0</l><l>-100</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>50</l><l>100</l></list></block><block s="reportNewList"><list><l>50</l><l>-100</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-100</l><l>100</l></list></block><block s="reportNewList"><list><l>100</l><l>-100</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-100</l><l>-100</l></list></block><block s="reportNewList"><list><l>100</l><l>100</l></list></block></list></block></list></block></block></script><comment x="10" y="1312.8333333333305" w="363.3333333333333" collapsed="false">TIF B:  First of all, we don&apos;t want Square, the sprite with nine clones to show the board, to move around.  So I added another sprite, named Sprite.  It&apos;s hidden, but can draw lines with its thick red pen.  (Click on Sprite at the right to see its code.)  The actual work is done in procedure DRAW WIN LINE.  But instead of running DRAW WIN LINE in the Square sprite (this one), we TELL Sprite TO do it. </comment><script x="10" y="1414.8333333333305"><custom-block s="draw win line"><comment w="90" collapsed="true">TIF B inside.</comment></custom-block></script><comment x="10" y="1450.6666666666638" w="358" collapsed="false">We modify makeBoard for TIF B because drawn lines are behind sprites on the stage, so the win line is hidden by the board.  To fix that, we apply a ghost effect (transparency) to the board sprites.  The value 30 for the ghost effect was found by experiment.  Any more and the board is too faint; any less and the line is.</comment><script x="10" y="1540.6666666666638"><custom-block s="makeBoard"><comment w="90" collapsed="true">TIF B inside.</comment></custom-block></script></scripts></sprite><watcher scope="Square" var="position number" style="normal" x="9.999999999998643" y="298.50000199999937" color="243,118,29" hidden="true"/><watcher var="playing" style="normal" x="9.999999999998643" y="325.49999599999967" color="243,118,29" hidden="true"/><watcher var="win lines" style="normal" x="9.999999999998643" y="65.183428544378" color="243,118,29" hidden="true"/><watcher var="board" style="normal" x="0" y="26.999999999999865" color="243,118,29" extX="80" extY="69.99999999999991" hidden="true"/><watcher var="opponent" style="normal" x="11.464968152866195" y="11.464968152866309" color="243,118,29" hidden="true"/><sprite name="Sprite" idx="2" x="0" y="-100.00000000000001" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="164,0,235,1" pen="tip" id="1100"><costumes><list struct="atomic" id="1101"></list></costumes><sounds><list struct="atomic" id="1102"></list></sounds><blocks></blocks><variables></variables><scripts><script x="30" y="30.000000000000007"><block s="receiveGo"></block><block s="doSetVar"><l>opponent</l><l></l></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="opponent"/><l>h</l></list></block><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="opponent"/><l>d</l></list></block><block s="reportVariadicEquals"><list><block var="opponent"/><l>s</l></list></block></list></block></list></block><script><block s="doAsk"><l>Press h for human, d for dumb computer, or s for smart computer.</l></block><block s="doSetVar"><l>opponent</l><block s="getLastAnswer"></block></block></script></block><block s="hide"></block><block s="goToLayer"><l><option>front</option></l></block><block s="setSize"><l>5</l></block><block s="setColor"><color>164,0,235,1</color></block></script></scripts></sprite></sprites></stage><variables><variable name="X&apos;s turn?"><bool>true</bool></variable><variable name="board"><list struct="atomic" id="1153">1,2,3,4,5,6,7,8,9</list></variable><variable name="playing"><bool>true</bool></variable><variable name="win lines"><list id="1154"><item><list id="1155"><item><list struct="atomic" id="1156">-100,50</list></item><item><list struct="atomic" id="1157">100,50</list></item></list></item><item><list id="1158"><item><list struct="atomic" id="1159">-100,0</list></item><item><list struct="atomic" id="1160">100,0</list></item></list></item><item><list id="1161"><item><list struct="atomic" id="1162">-100,-50</list></item><item><list struct="atomic" id="1163">100,-50</list></item></list></item><item><list id="1164"><item><list struct="atomic" id="1165">-50,100</list></item><item><list struct="atomic" id="1166">-50,-100</list></item></list></item><item><list id="1167"><item><list struct="atomic" id="1168">0,100</list></item><item><list struct="atomic" id="1169">0,-100</list></item></list></item><item><list id="1170"><item><list struct="atomic" id="1171">50,100</list></item><item><list struct="atomic" id="1172">50,-100</list></item></list></item><item><list id="1173"><item><list struct="atomic" id="1174">-100,100</list></item><item><list struct="atomic" id="1175">100,-100</list></item></list></item><item><list id="1176"><item><list struct="atomic" id="1177">-100,-100</list></item><item><list struct="atomic" id="1178">100,100</list></item></list></item></list></variable><variable name="opponent"><l></l></variable></variables></scene></scenes></project><media name="U5L6-TicTacToe I Glenn 1B" app="Snap! 11.0.8, https://snap.berkeley.edu" version="2"><costume name="Untitled" center-x="240" center-y="180" image="data:image/png;base64,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" mediaID="U5L6-TicTacToe I Glenn 1B_Stage_cst_Untitled"/><costume name="Empty" center-x="31.5" center-y="28.5" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAA+UlEQVR4AeyYQRKCMBAEk6D/tpRfG4lDIR7YvKB3UlmBvfX2BEvbGOOhen+0Ni3d/7dao/e+UUpgj1aOdWtaVet4PD7VKsuyVErtVCfwfp+hRjbgmg24ZAN2pPEvrmyRTneGDewzTJuAX1o0o1ceG75OBPbsryWa0MDjMxxGAmvYMExowLHhMBJWw3/xsHxOaLKdYUd6EgJWK1uk/WuJld8JTbJIF0d6EgJWy5Fm+Yw0NhxnwurYMMtnpLHhOBNWx4ZZPiONDceZsDo2zPIZaXIZFr+BNQT0tmG0XsHZsIaA3ikNr1J6/9VLV/RutdZ+lkifqhOeeF2/AAAA///kA5qwAAAABklEQVQDADJn+LJY0j/0AAAAAElFTkSuQmCC" mediaID="U5L6-TicTacToe I Glenn 1B_Square_cst_Empty"/><costume name="X" center-x="31.5" center-y="28.5" image="data:image/png;base64,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" mediaID="U5L6-TicTacToe I Glenn 1B_Square_cst_X"/><costume name="O" center-x="31.5" center-y="28.5" image="data:image/png;base64,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" mediaID="U5L6-TicTacToe I Glenn 1B_Square_cst_O"/></media></snapdata>