{"version":10,"randomSeed":"18634f047c8ce5cc45d79b09fe099d20","graph":{"viewport":{"xmin":0.02684225201240785,"ymin":0.18870132772638115,"xmax":13.305915697493393,"ymax":13.467774773207367},"showGrid":false,"showXAxis":false,"showYAxis":false},"expressions":{"list":[{"type":"expression","id":"6","color":"#000000","latex":"N=12","slider":{"hardMin":true,"hardMax":true,"min":"1","max":"20","step":"1"}},{"type":"folder","id":"28","title":"changes frequently and shouldn't be shown","collapsed":true},{"type":"expression","id":"1","folderId":"28","color":"#c74440","latex":"B=\\left[1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0.5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.5,1,1,1,0.5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.5,0,0.5,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0.5,0,0,0,0.5,0,1,1,1,1,1,1,1,1,0,0.5,0,0,0.5,1,1,1,1,1,1,1,0,0,0,0,0.5,1,0.5,1,1,1,1,1,0.5,0,0,0,0,1\\right]"},{"type":"text","id":"4","folderId":"28","text":"data conventions: 0 = hidden, safe; 0.5 = hidden, mine; 1 = shown, safe; 1.5 = shown, bomb; 2 = flagged, safe; 2.5 = flagged, bomb"},{"type":"text","id":"26","text":"what the player sees"},{"type":"expression","id":"22","color":"#c74440","latex":"C_{B}=\\left[C_{SMb}\\left(\\left(x_{1},y_{1}\\right)\\right)\\operatorname{for}x_{1}=\\left[1...N\\right],y_{1}=\\left[1...N\\right]\\right]"},{"type":"expression","id":"21","color":"#000000","latex":"\\left[\\left(x_{1},y_{1}\\right)\\operatorname{for}x_{1}=\\left[1...N\\right],y_{1}=\\left[1...N\\right]\\right]","showLabel":true,"label":"${C_B}","hidden":true,"dragMode":"NONE","labelSize":"1.5","pointOpacity":"\\operatorname{floor}\\left(\\operatorname{mod}\\left(B,2\\right)\\right)"},{"type":"text","id":"105","text":"finicky flagging mechanism"},{"type":"expression","id":"97","color":"#c74440","latex":"\\left[\\operatorname{polygon}\\left(\\left\\{\\left|B\\left[I\\left(\\left(x_{1},y_{1}\\right)\\right)\\right]-1.25\\right|>\\frac{1}{2}:\\left[\\left(x_{1},y_{1}\\right),\\left(x_{1}+0.7,y_{1}\\right),\\left(x_{1}+0.7,y_{1}+0.7\\right),\\left(x_{1},y_{1}+0.7\\right)\\right]-\\left(\\frac{1}{3},\\frac{1}{3}\\right),\\left[\\right]\\right\\}\\right)\\operatorname{for}x_{1}=\\left[1...N\\right],y_{1}=\\left[1...N\\right]\\right]","hidden":true,"fill":true,"fillOpacity":"1","lineOpacity":"1","lineWidth":"15","clickableInfo":{"enabled":true,"latex":"B\\to I_{r}\\left(B,I_{i}\\left(\\operatorname{index}\\right).x,I_{i}\\left(\\operatorname{index}\\right).y,T_{F}\\left(B\\left[\\operatorname{index}\\right]\\right)\\right)"}},{"type":"expression","id":"74","color":"#000000","latex":"\\left[\\operatorname{polygon}\\left(\\left\\{B\\left[I\\left(\\left(x_{1},y_{1}\\right)\\right)\\right]<1:\\left[\\left(x_{1},y_{1}\\right),\\left(x_{1}+0.7,y_{1}\\right),\\left(x_{1}+0.7,y_{1}+0.7\\right),\\left(x_{1},y_{1}+0.7\\right)\\right]-\\left(\\frac{1}{3},\\frac{1}{3}\\right),\\left[\\right]\\right\\}\\right)\\operatorname{for}x_{1}=\\left[1...N\\right],y_{1}=\\left[1...N\\right]\\right]","lines":false,"fillOpacity":"1","clickableInfo":{"enabled":true,"latex":"Q\\to\\operatorname{join}\\left(I_{i}\\left(\\operatorname{index}\\right),Q\\right)"}},{"type":"expression","id":"100","color":"#c74440","latex":"B\\left[B\\right]"},{"type":"expression","id":"98","color":"#6042a6","latex":"T_{F}\\left(x\\right)=\\left\\{0\\le x<1:x+2,2\\le x<3:x-2\\right\\}","hidden":true},{"type":"expression","id":"86","color":"#2d70b3","latex":"\\left(\\frac{N}{2},N\\left(\\left\\{\\operatorname{length}\\left(Q\\right)>1:\\frac{1}{2},-\\frac{1}{2}\\right\\}\\right)\\right)","showLabel":true,"label":"Processing ...","hidden":true,"dragMode":"NONE","labelSize":"3","labelOrientation":"above"},{"type":"expression","id":"76","color":"#c74440","latex":"I_{i}\\left(k\\right)=\\left(\\operatorname{mod}\\left(k-1,N\\right)+1,\\operatorname{floor}\\left(\\frac{k-1}{N}\\right)+1\\right)"},{"type":"expression","id":"79","color":"#6042a6","latex":"D=0","slider":{"hardMin":true,"hardMax":true,"min":"-1","max":"1","step":"1"}},{"type":"expression","id":"96","color":"#2d70b3","latex":"\\left(\\frac{N}{2},N\\cdot\\left(D-\\frac{1}{2}\\right)\\right)","showLabel":true,"label":"game over (restart)","dragMode":"NONE","labelSize":"4","labelOrientation":"above","pointOpacity":"1","pointSize":"40","clickableInfo":{"enabled":true,"latex":"R"}},{"type":"expression","id":"91","color":"#2d70b3","latex":"\\left(\\frac{N}{2},N\\left(-D-\\frac{1}{2}\\right)\\right)","showLabel":true,"label":"you win (restart)","dragMode":"NONE","labelSize":"4","labelOrientation":"above","pointOpacity":"1","pointSize":"50","clickableInfo":{"enabled":true,"latex":"R"}},{"type":"text","id":"15","text":"index"},{"type":"expression","id":"16","color":"#c74440","latex":"I\\left(p\\right)=\\operatorname{mod}\\left(p.y-1,N\\right)N+\\operatorname{mod}\\left(p.x-1,N\\right)+1"},{"type":"text","id":"9","text":"initialise a few mines"},{"type":"expression","id":"5","color":"#6042a6","latex":"R=\\left(B\\to\\left[0.5\\operatorname{round}\\left(\\operatorname{random}\\left(\\right)-0.4\\right)\\operatorname{for}x_{1}=\\left[1...N\\right],y_{1}=\\left[1...N\\right]\\right],Q\\to\\left[\\left(0,0\\right)\\right],D\\to0\\right)"},{"type":"text","id":"12","text":"count bombs around location (topologically toroidal)"},{"type":"expression","id":"20","color":"#6042a6","latex":"P_{b}\\left(p\\right)=\\left\\{\\operatorname{mod}\\left(B\\left[I\\left(p\\right)\\right],1\\right)=0.5:1,0\\right\\}"},{"type":"expression","id":"17","color":"#2d70b3","latex":"C_{SMb}\\left(p\\right)=\\operatorname{total}\\left(P_{b}\\left(O\\left(p\\right)\\right)\\right)"},{"type":"text","id":"31","text":"index-and-replace"},{"type":"expression","id":"33","color":"#6042a6","latex":"I_{rp}\\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":"expression","id":"32","color":"#388c46","latex":"I_{r}\\left(L,i,j,x\\right)=I_{rp}\\left(L,I\\left(\\left(i,j\\right)\\right),x\\right)"},{"type":"expression","id":"29","color":"#c74440","latex":"I_{show}\\left(p\\right)=I_{r}\\left(B,p.x,p.y,B\\left[I\\left(p\\right)\\right]+1-\\operatorname{floor}\\left(B\\left[I\\left(p\\right)\\right]\\right)\\right)"},{"type":"folder","id":"85","title":"positions that need to be revealed"},{"type":"expression","id":"36","folderId":"85","color":"#c74440","latex":"Q=\\left[\\left(11,4\\right)\\right]"},{"type":"expression","id":"87","color":"#c74440","latex":"\\operatorname{length}\\left(Q\\right)"},{"type":"text","id":"55","text":"ring of positions around one position"},{"type":"expression","id":"56","color":"#6042a6","latex":"O\\left(p\\right)=\\left[p+\\left(-1,-1\\right),p+\\left(-1,0\\right),p+\\left(-1,1\\right),p+\\left(0,-1\\right),p+\\left(0,1\\right),p+\\left(1,-1\\right),p+\\left(1,0\\right),p+\\left(1,1\\right)\\right]"},{"type":"text","id":"59","text":"filter a list to include only those unrevealed"},{"type":"expression","id":"60","color":"#2d70b3","latex":"F\\left(L\\right)=L\\left[B\\left[I\\left(L\\right)\\right]<1\\right]"},{"type":"text","id":"45","text":"if no mines revealed:\n    if no safe spots hidden:\n        win\n    if more positions to reveal:\n        reveal position\n        if revealed position has 0 surrounding mines:\n            queue surroundings\n        remove revealed position from queue\n    else:\n        prompt for a new position\nelse:\n    lose game"},{"type":"expression","id":"37","color":"#388c46","latex":"S=\\left\\{\\operatorname{total}\\left(\\ln\\left(\\left|B-1.5\\right|\\right)\\right)>\\ln\\left(0\\right):\\left\\{\\operatorname{total}\\left(\\ln\\left(B\\right)\\right)>\\ln\\left(0\\right):\\left(D\\to-1\\right),\\operatorname{length}\\left(Q\\right)>\\frac{1}{2}N^{2}:Q\\to\\operatorname{join}\\left(\\operatorname{unique}\\left(Q\\left[1...\\operatorname{length}\\left(Q\\right)-1\\right]\\right),\\left(0,0\\right)\\right),\\operatorname{length}\\left(Q\\right)>1:\\left(B\\to I_{show}\\left(Q\\left[1\\right]\\right),Q\\to\\left\\{C_{SMb}\\left(Q\\left[1\\right]\\right)=0:\\operatorname{join}\\left(Q\\left[2...\\right],F\\left(O\\left(Q\\left[1\\right]\\right)\\right)\\right),Q\\left[2...\\right]\\right\\}\\right),\\left(Q\\to Q\\right)\\right\\},\\left(D\\to1\\right)\\right\\}"}],"ticker":{"handlerLatex":"S","minStepLatex":"10","playing":true,"open":true}}}