{"version":9,"randomSeed":"984eaf99afc5c1ac14a9b58fed45ad7c","graph":{"viewport":{"xmin":-1.1149342440340142,"ymin":-0.2394365824012583,"xmax":5.479886999382487,"ymax":5.056860150005248},"showGrid":false,"showXAxis":false,"showYAxis":false},"expressions":{"list":[{"type":"folder","id":"83","title":"library of useful functions","collapsed":true},{"type":"text","id":"84","folderId":"83","text":"project, R^3 -> R^2"},{"type":"expression","id":"85","folderId":"83","color":"#2d70b3","latex":"P\\left(v\\right)=\\frac{\\left(v\\left[1\\right],v\\left[2\\right]\\right)}{v\\left[3\\right]}"},{"type":"text","id":"86","folderId":"83","text":"dot product, R^n -> R^n -> R"},{"type":"expression","id":"87","folderId":"83","color":"#c74440","latex":"D\\left(u,v\\right)=\\sum_{k=1}^{\\min\\left(\\operatorname{length}\\left(u\\right),\\operatorname{length}\\left(v\\right)\\right)}u\\left[k\\right]v\\left[k\\right]"},{"type":"text","id":"88","folderId":"83","text":"cross product, R^3 -> R^3"},{"type":"text","id":"90","folderId":"83","text":"normalise vector, R^n -> R^n"},{"type":"expression","id":"91","folderId":"83","color":"#6042a6","latex":"N\\left(v\\right)=\\frac{v}{\\sqrt{D\\left(v,v\\right)}}"},{"type":"text","id":"92","folderId":"83","text":"insert element as replacement, R^n -> N -> {R, R^2} -> R^n"},{"type":"expression","id":"93","folderId":"83","color":"#2d70b3","latex":"I\\left(L,i,x\\right)=\\left\\{i=1:\\operatorname{join}\\left(x,L\\left[2...\\right]\\right),i=\\operatorname{length}\\left(L\\right):\\operatorname{join}\\left(L\\left[1...\\operatorname{length}\\left(L\\right)-1\\right],x\\right),\\operatorname{join}\\left(L\\left[1...i-1\\right],x,L\\left[i+1...\\right]\\right)\\right\\}"},{"type":"text","id":"94","folderId":"83","text":"rotate around each axis, R^3 -> R^3"},{"type":"expression","id":"95","folderId":"83","color":"#2d70b3","latex":"R_{x}\\left(v,\\theta\\right)=\\left[v\\left[1\\right],v\\left[2\\right]\\cos\\theta-v\\left[3\\right]\\sin\\theta,v\\left[2\\right]\\sin\\theta+v\\left[3\\right]\\cos\\theta\\right]"},{"type":"expression","id":"96","folderId":"83","color":"#388c46","latex":"R_{y}\\left(v,\\theta\\right)=\\left[v\\left[1\\right]\\cos\\theta-v\\left[3\\right]\\sin\\theta,v\\left[2\\right],v\\left[1\\right]\\sin\\theta+v\\left[3\\right]\\cos\\theta\\right]"},{"type":"expression","id":"97","folderId":"83","color":"#6042a6","latex":"R_{z}\\left(v,\\theta\\right)=\\left[v\\left[1\\right]\\cos\\theta-v\\left[2\\right]\\sin\\theta,v\\left[1\\right]\\sin\\theta+v\\left[2\\right]\\cos\\theta,v\\left[3\\right]\\right]"},{"type":"folder","id":"59","title":"point lists for shapes","collapsed":true},{"type":"expression","id":"45","folderId":"59","color":"#388c46","latex":"P_{O}=\\left[\\frac{1}{2}\\cdot\\left(1+0.6\\cos\\left(k\\right),1+0.6\\sin\\left(k\\right)\\right)\\operatorname{for}k=\\left[0,\\frac{\\pi}{8},...2\\pi\\right]\\right]","hidden":true},{"type":"expression","id":"46","folderId":"59","color":"#6042a6","latex":"P_{X}=\\left[\\left(0.2,0.2\\right),\\left(0.8,0.8\\right),\\left(0.5,0.5\\right),\\left(0.8,0.2\\right),\\left(0.2,0.8\\right),\\left(0.5,0.5\\right),\\left(0.2,0.2\\right)\\right]","hidden":true,"lines":false},{"type":"expression","id":"75","folderId":"59","color":"#c74440","latex":"P_{E}=\\left[\\left(0.3,0.5\\right),\\left(0.7,0.5\\right)\\right]","hidden":true,"points":false,"dragMode":"NONE"},{"type":"folder","id":"61","title":"game state","collapsed":true},{"type":"text","id":"124","folderId":"61","text":"size of board"},{"type":"expression","id":"125","folderId":"61","color":"#2d70b3","latex":"w=4","slider":{"hardMin":true,"hardMax":true,"min":"1","step":"1"}},{"type":"text","id":"63","folderId":"61","text":"turn: 0 = game over, 1 = O, 2 = X"},{"type":"expression","id":"64","folderId":"61","color":"#388c46","latex":"T=2","slider":{"hardMin":true,"hardMax":true,"min":"0","max":"2","step":"1"}},{"type":"text","id":"50","folderId":"61","text":"board cells: 0 = empty, 1 = O, 2 = X"},{"type":"expression","id":"54","folderId":"61","color":"#c74440","latex":"B=\\left[0,0,1,0,2,2,1,0,2,1,1,2,0,0,1,0\\right]"},{"type":"folder","id":"100","title":"win-checker","collapsed":true},{"type":"text","id":"103","folderId":"100","text":"is this board state a winning one?"},{"type":"expression","id":"101","folderId":"100","color":"#388c46","latex":"W\\left(S\\right)=W_{P}\\left(S,1\\right)+W_{P}\\left(S,2\\right)","hidden":true},{"type":"text","id":"119","folderId":"100","text":"does player k win in board state S?"},{"type":"expression","id":"111","folderId":"100","color":"#000000","latex":"W_{P}\\left(S,k\\right)=\\sum_{m=1}^{w}\\left(\\left\\{\\prod_{n=0}^{w-1}\\left\\{B\\left[wn+m\\right]=k\\right\\}=1,0\\right\\}\\right)+\\sum_{m=0}^{w-1}\\left(\\left\\{\\prod_{n=1}^{w}\\left\\{B\\left[wm+n\\right]=k\\right\\}=1,0\\right\\}\\right)+\\left\\{\\prod_{n=1}^{w}\\left\\{B\\left[w\\left(n-1\\right)+n\\right]=k\\right\\}=1,0\\right\\}+\\left\\{\\prod_{n=1}^{w}\\left\\{B\\left[w\\left(n-1\\right)+w-n+1\\right]=k\\right\\}=1,0\\right\\}"},{"type":"expression","id":"126","folderId":"100","color":"#388c46"},{"type":"text","id":"117","folderId":"100","text":"winning player"},{"type":"expression","id":"120","folderId":"100","color":"#2d70b3","latex":"V=\\left\\{W_{P}\\left(B,1\\right)>0:1,W_{P}\\left(B,2\\right)>0:2\\right\\}"},{"type":"folder","id":"70","title":"actions","collapsed":true},{"type":"text","id":"72","folderId":"70","text":"reset"},{"type":"expression","id":"73","folderId":"70","color":"#6042a6","latex":"R=\\left(B\\to0\\cdot\\left[1...w^{2}\\right],T\\to1\\right)"},{"type":"text","id":"79","folderId":"70","text":"click on square"},{"type":"expression","id":"80","folderId":"70","color":"#000000","latex":"C\\left(j\\right)=\\left\\{\\left\\{T>0\\right\\}\\left\\{B\\left[j\\right]=0\\right\\}\\left\\{W\\left(B\\right)=0\\right\\}=1:\\left\\{B\\left[j\\right]=0:\\left(B\\to I\\left(B,j,T\\right),T\\to3-T\\right)\\right\\}\\right\\}"},{"type":"folder","id":"68","title":"display"},{"type":"expression","id":"51","folderId":"68","color":"#000000","latex":"x=\\left[1...w-1\\right]\\left\\{0\\le y\\le w\\right\\}","lineOpacity":"1","lineWidth":"10"},{"type":"expression","id":"52","folderId":"68","color":"#000000","latex":"y=\\left[1...w-1\\right]\\left\\{0\\le x\\le w\\right\\}","lineOpacity":"1","lineWidth":"10"},{"type":"expression","id":"74","folderId":"68","color":"#000000","latex":"\\left[\\operatorname{polygon}\\left(\\left\\{B\\left[i\\right]=0:P_{E},B\\left[i\\right]=1:P_{X},B\\left[i\\right]=2:P_{O},P_{E}\\right\\}+\\left(\\operatorname{mod}\\left(i-1,w\\right),\\operatorname{floor}\\left(\\frac{i-1}{w}\\right)\\right)\\right)\\operatorname{for}i=\\left[1...\\operatorname{length}\\left(B\\right)\\right]\\right]","fill":false,"lineOpacity":"1","lineWidth":"10","clickableInfo":{"enabled":true,"latex":"C\\left(\\operatorname{index}\\right)"}},{"type":"expression","id":"115","folderId":"68","color":"#000000","latex":"\\left(0,w+0.5+0\\cdot V\\right)","showLabel":true,"label":"Player ${V} wins","hidden":true,"labelSize":"2","labelOrientation":"right","pointOpacity":"1"},{"type":"expression","id":"122","folderId":"68","color":"#000000","latex":"\\left(w-1.2,w+0.5\\right)","showLabel":true,"label":"Reset","dragMode":"NONE","labelSize":"2","labelOrientation":"right","pointOpacity":"1","pointSize":"50","clickableInfo":{"enabled":true,"latex":"R"}}]}}