<snapdata remixID="10728768"><project name="U3L3-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="2" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="true" hyperops="true" codify="false" inheritance="false" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,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</pentrails><costumes><list id="2"><item><costume name="Untitled" center-x="240" center-y="180" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADotJREFUeF7t1cEJADAMxLBk/6Fb6BD1R1ngQAS8M3PGESBAgAABAl8FVoC/ehsjQIAAAQJPQIA9AgECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBC5oYGgQUTbVPQAAAABJRU5ErkJggg==" id="3"/></item><item><costume name="Untitled(2)" center-x="240" center-y="180" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADo5JREFUeF7t1VEJACAQBUHNYP+MRlAwhPszV+DBcLDzrH2GI0CAAAECBL4KTAH+6m2MAAECBAg8AQH2CAQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIEBBgP0CAAAECBAIBAQ7QTRIgQIAAAQH2AwQIECBAIBAQ4ADdJAECBAgQEGA/QIAAAQIEAgEBDtBNEiBAgAABAfYDBAgQIEAgEBDgAN0kAQIECBAQYD9AgAABAgQCAQEO0E0SIECAAAEB9gMECBAgQCAQEOAA3SQBAgQIELjpUjml6jIuqQAAAABJRU5ErkJggg==" id="4"/></item></list></costumes><sounds><list struct="atomic" id="5"></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="10"><costumes><list id="11"><item><costume name="Empty" center-x="29" center-y="28" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAA5CAYAAACMGIOFAAAAAXNSR0IArs4c6QAAAShJREFUaEPtmyEOg0AQRT836A1ag24TBIakFWv2Fr0BFgc4LKdZs6ICgyCpx9AbcIRmG0LS0lbPbj4nmDf/v4xZIgAVgCOAE8L87tECeQZwCZMRt0/ISWuNNE0PPgP3fT8ZYxyC43iH1FpPbdsijmOvIcdxnPI8hzFmC1lVFcqy9DnEdfa6ruF4NkkS0rN8mSSd9KiyrCvryrrK2gCdpJOyGvl3GtaVdWVdZW2ATtJJWY3kCaGTdJJOytoAnaSTshrJO0kn6SSdlLUBOkknZTWSd5JO0kk6KWsDdJJOymok7ySdpJMhOKmUmpumQZIkO494NqMOwzAXRQFrrePYPM+elVLIssxryK7rZmutg/8K6XOAv2Z/JXldHqTvQyQE8HCQof4qsWb2BLkbqAIXp3YbAAAAAElFTkSuQmCC" id="12"/></item><item><costume name="X" center-x="29.5" center-y="29" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAA6CAYAAADhu0ooAAAAAXNSR0IArs4c6QAABB1JREFUaEPl2ktoE0EYAOB/T40XKYpY9uTr0KWXohcfl+ChiA8ISCEo1KJggyLEijZ4sEFRAlpoFdNWPYSCEihIingRhJykJ8lFk4OPXAwFsfSYnlb+1Ymbzcw+5rGbxj0muzPz7f/Pg5nVoDev2F9Wk/A0AMgCwG5DN1PVhlY3dHNPr9irDe2noZu7qg1Ns6CGbk73Co7l+H+h1YYGAwMDMDU1BalUCmIxku7dHfNisQh3bySZjeyIKELx2krYUqkEt68m2pCXb87Cs4fp1m8dUHO7AbVabctgacj8y7LV/ivn42wovolyuQwrKytdj6UhHzwtQSKRsAyuUHwb/f39kM1muxrrhsQI+YLG43GoVCodWBycJiYmrP4b5eWFDATFm51YHIERmslkIsP6QQaG4gP1eh1yuRwUCgXYt7MJ39e3RYbFF3/u1HBbMpE+6cww36lrf3BtbQ2OH/qXrlFggyC5IkrABPvtVww2NzethURYaUxD3rpfgPHxceZQwRVROxbTeGFhITQsDYlToNeqTQiKYIwsDftueRY+/5A7FvMihVLX2WftWEM3W3/LwoogpUFpkUXsyGhaytQjipQKdUtjkXmWdA3sCuTy0yelTC9uPY/VZ3mwpKzFxUVoNpuAWcKDlB5RmaOxE9nX1wfp9J+ugGvvoJfwqMuqUCSyNCROHzxZQdqnDMoaoPD31+9rMDg4SH1HKpDKUpc29dgHE/z/1dsKDA+3r1NVIUOBYiUbGxvW6mnpSaYtinYs3oNz8dzcnDXwYJ8UTVd7ZUpT114RNh6x9n0bEllMY/If7lHJRoYWUQJmYZ2dVdZCI5KIBsG6DVZBp5VQRl1WozCy+XweXsxMdtxCG6R4cZFGFCtH6Pz8PDx/dL13oX76qYqohjbqktDh6Pr4XsozG2VjQ4XSduwQZJ9e7G9AJjY0KAtJVkdu86xzBeWZDpQbQoH63XtViVUO9Yv0mmfxaARPDHgvpdCgSC8sa3PaD14ZlBdpx2IZzsNcXqwSqLNQbDxvA0VfmLIlYNCjAj9pJwMrNaIqkORFiGKlQWXsvXpFVwQrBRoGUjSywtAwkSJYIWgUSF4sNxRPvk8ea/9MkHcX3atvsv4P0me5oLLOQ3iB9uf8YgNDaechY9dy1nFBVJ/P+cEGgqrcYBaNLg2Lx/3JZNIKgG9oNyPdBigybqyurnp/OYY7ALiLTo7vVGwwi0aUPI+gi2cPtxWHWDRMXjrR+r3jo8c7M0XAh7cCkiho097Q0VH49GGZDd1/8Ax8/fgGVB0VyIqksxwa1n6P6xfYKo4KVEGxXBa29U09AOw1dHNMZSOiLNsOPWLo5kiUjVFZN4Hid2Z4HH3a0M0hlRVGUXa1oS0BwAXso2SrbQcAHACAdQD4EkWjFNZZ/g0Itn9qkUtYeQAAAABJRU5ErkJggg==" id="13"/></item><item><costume name="O" center-x="28.5" center-y="27.5" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAA5CAYAAACMGIOFAAAAAXNSR0IArs4c6QAABOFJREFUaEPtmlkofnkYx7+amawpoVzYskXixi5rpIRCuUDhwr5eUEOR5cJyQfasF4SUC7LeyBYhy4UtpWx3Y8kQQxhnek5e4z+8/3PO633nPec/89zQ2/n9ft/Pec5veZ7npwHgdwB6AH7Cj2l/arxC6gOg/39EYz5AhoaGwsPDQ9Kwq6urmJqakjF8C0mADQ0NsLW1lTTkwcEB8vLyZKDfQpaVlaG0tFQlgFdXVzg6OgL91dTUhImJCUxNTaGlpaWS8crLy0E8AFQDOT4+js7OTmxubuLi4gKPj494eXn5FEZHRwfW1tZwdXVFeHg4oqOjlQKtEkgCq66uBs2H5+dnhYUSNE2b7OxsBAQEKNyPUiEHBgZQUlKCw8NDhQXJa+jr64vi4mKEhIQI7lspkFtbW8jMzMTS0pJgAUIbxMTEoLGxkZ3HfO3LkG1tbcjIyOA7nlKeMzAwQHt7OwiYj30JMj8/H3V1dXzGUckztPq/rprf7V9hyPT0dPZtqtuysrLQ3NysfMiioiJ29RSL0WZfX18vV45gT/b09CApKUksfG86KisrQS//MxMEeXJyAjs7O3ZDF6ONjo4iIiLigzRBkLGxsRgcHBQjH6vJzMwMOzs70NenQOpv4w25vLwMb29v0QLKhNHpqKmpSTHIsLAwTE5Oih6SBK6vr8PFxeVNKy9PXl5ewsjISBKAJDI+Ph59fX3CIGkfysnJkQwkCaU40sbGhtXMy5Pu7u5YW1uTFGRFRQUbLPCGpMBWrNuGvDfv4OCAvb09fpCnp6ewsLCQlBdlYmlfNzc35/5cJyYm2ChdikbBO+0KnHOSzqjyjktiB6+qqkJhYSE3JC3HFPFL0eLi4tDf388N6ezsjO3tbSkywsnJCZS14PxcNTSknUxnGOZ/SDa5/J/wpJ6eHu7u7iQ5J3V1dXF7e8v9uXp5eWFlZUWSkJ6enqAQkXPhSU1NZdP8UrSUlBR0dHRwQ1IAmpubK0VGNglN0ROnJ+fm5hAYGChJyNnZWbaGwgkptYD5vTeoimZoaMgNSY3obczPz0vKm/7+/qCvkHc8SZlyyphLyahGk5aWxh/y5uaGzfE8PT1JhfPp+vr6F1lqknNOyqgoZKmpqZEKZA3DML/KxPKGPDs7YzMEDw8PYgclgRYMw/wmGJIaUJmOynUiNxJYx1D48Wq8PSlrEBQUhJmZGbFykrAghmF+BvC2gAiG3N/fh5ubG3vwFZNRIEFpU3t7+w+yBENSDyMjI4iKihITI4aHhxEZGfmpJoUgqaeuri7QAVgklsIwjNwoQmFIguvu7kZycrK6OZMZhun6nogvQVLHY2NjSExMZK+Q/ZtGN0Co6v1Z0fWfOr4MSR3S5SSqC767jahSXrqlRUUoKysrXuMoBVI2UmtrK5sXotO/KoyOliSYLkYJMaVC0sC0tdTW1qKlpQXn5+dCtMh91tjYGHSVpaCgAJS3EWpKh3wvoLe3F0NDQ6B6yrsDCC+NlCWkOgbdukpISODVRt5DciGDg4PZuzrvy9KKjnR/f4+FhQV2s97d3cXx8THrZVkWkLxD3rK0tISjoyN72PDz84O2traiQ76129jYYOsh09PT9NvH69kE6uPj8+WB1NnB4uKiDPBzSHWKU9HYrCf3AdAdSx0VDaLubv8gyGF1q1D1+H8Bni0glvLVf/4AAAAASUVORK5CYII=" id="14"/></item></list></costumes><sounds><list struct="atomic" id="15"></list></sounds><blocks></blocks><variables><variable name="position number"><l>10</l></variable></variables><scripts><script x="14.999999000000003" y="10"><block s="receiveGo"></block><block s="clear"></block><custom-block s="makeBoard"><comment w="143.99999999999997" collapsed="true">3.3.1.4 and 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.2.18, more below.</comment></block></block></script><script x="13.66666566666666" y="364.66666666666686"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doIf"><block s="reportAnd"><block var="playing"/><block s="reportEquals"><block s="getCostumeIdx"></block><l>1</l></block><comment w="121.33333333333333" collapsed="true">3.3.3.5, more below.</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><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="108.66666666666667" collapsed="true">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></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="108.66666666666667" collapsed="true">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></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="reportAnd"><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></block><script><block s="bubble"><l>It&apos;s a tie.</l></block><block s="goToLayer"><l><option>front</option></l></block></script></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="reportAnd"><block var="playing"/><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="available squares"/></block><l>1</l></block></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></block></script></block></script></block></script><script x="10.333332333333317" y="1648.3333333333328"><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="1569.333333333333" w="356" collapsed="false">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><comment x="12" y="1846.333333333333" 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="16.333333333333314" y="1945.6666666666665"><custom-block s="draw win line"><comment w="90" collapsed="true">TIF B inside.</comment></custom-block></script><comment x="14.666666666666657" y="1970.666666666667" 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="15.666666666666657" y="2056.666666666669"><custom-block s="makeBoard"><comment w="90" collapsed="true">TIF B inside.</comment></custom-block></script><script x="15.333332333333317" y="312.3333333333337"><custom-block s="won? %s"><l></l><comment w="90" collapsed="true">3.3.2.8 inside</comment></custom-block></script><script x="15.333332333333317" y="281.0000000000002"><custom-block s="status of all winning triples"><comment w="90" collapsed="true">3.3.2.7 inside</comment></custom-block></script><script x="15.999999000000003" y="164.33333333333337"><custom-block s="possible winning triples"><comment w="90" collapsed="true">3.3.1.8 inside</comment></custom-block></script><script x="19" y="242.66666666666674"><block s="reportEquals"><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><comment w="77.33333333333333" collapsed="true">more 3.3.2.5</comment></block></script><script x="18.66666566666666" y="218.0000000000001"><custom-block s="status of triple %l"><l/><comment w="90" collapsed="true">3.3.2.5 inside</comment></custom-block></script><script x="20.333333333333314" y="186.88888888888926"><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportListItem"><l></l><block var="board"/></block></autolambda><list></list></block><list><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block></list><comment w="53.333333333333336" collapsed="true">3.3.2.2</comment></custom-block></script><script x="21.333332333333317" y="338.3333333333337"><custom-block s="tied?"><comment w="90" collapsed="true">3.3.3.1 inside</comment></custom-block></script><comment x="343.6666656666665" y="94.66666666666697" 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><comment x="342.999999" y="298.0000000000002" 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><comment x="11.333333333333314" y="1184.6666666666665" w="358.6666666666667" collapsed="false">3.3.2 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></scripts></sprite><sprite name="Sprite" idx="2" x="0" y="-100" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="0,250,38,1" pen="tip" id="372"><costumes><list struct="atomic" id="373"></list></costumes><sounds><list struct="atomic" id="374"></list></sounds><blocks></blocks><variables></variables><scripts><script x="27" y="23.66666666666667"><block s="receiveGo"></block><block s="hide"></block><block s="setSize"><l>10</l></block><block s="setColor"><color>0,250,38,1</color></block></script></scripts></sprite><watcher scope="Square" var="position number" style="normal" x="10" y="298.500002" color="243,118,29" hidden="true"/><watcher var="playing" style="normal" x="10" y="325.49999599999995" color="243,118,29" hidden="true"/><watcher var="win lines" style="normal" x="10" y="329.999998" color="243,118,29" hidden="true"/><watcher var="board" style="normal" x="2" y="2" color="243,118,29" extX="80" extY="70"/></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><comment w="78" collapsed="true">3.3.3 TIF B</comment></block><block s="setScale"><l>95</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="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><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"><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportListItem"><l></l><block var="board"/></block></autolambda><list></list></block><list><block var="triple"/></list></custom-block></block></script></block-definition><block-definition s="status of all winning triples" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><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="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><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="reportOr"><block s="reportEquals"><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></block><block s="reportEquals"><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></block></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></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></blocks><variables><variable name="X&apos;s turn?"><bool>false</bool></variable><variable name="board"><list struct="atomic" id="1202">1,X,3,O,X,6,O,X,9</list></variable><variable name="playing"><bool>false</bool></variable><variable name="win lines"><list id="1203"><item><list id="1204"><item><list struct="atomic" id="1205">-100,50</list></item><item><list struct="atomic" id="1206">100,50</list></item></list></item><item><list id="1207"><item><list struct="atomic" id="1208">-100,0</list></item><item><list struct="atomic" id="1209">100,0</list></item></list></item><item><list id="1210"><item><list struct="atomic" id="1211">-100,-50</list></item><item><list struct="atomic" id="1212">100,-50</list></item></list></item><item><list id="1213"><item><list struct="atomic" id="1214">-50,100</list></item><item><list struct="atomic" id="1215">-50,-100</list></item></list></item><item><list id="1216"><item><list struct="atomic" id="1217">0,100</list></item><item><list struct="atomic" id="1218">0,-100</list></item></list></item><item><list id="1219"><item><list struct="atomic" id="1220">50,100</list></item><item><list struct="atomic" id="1221">50,-100</list></item></list></item><item><list id="1222"><item><list struct="atomic" id="1223">-100,100</list></item><item><list struct="atomic" id="1224">100,-100</list></item></list></item><item><list id="1225"><item><list struct="atomic" id="1226">-100,-100</list></item><item><list struct="atomic" id="1227">100,100</list></item></list></item></list></variable></variables></project><media name="U3L3-TicTacToe" app="Snap! 6, https://snap.berkeley.edu" version="1"></media></snapdata>