(this["webpackJsonpgrid-tests"]=this["webpackJsonpgrid-tests"]||[]).push([[0],{13:function(e,t,a){},14:function(e,t,a){},15:function(e,t,a){"use strict";a.r(t);var n=a(0),r=a.n(n),c=a(7),o=a.n(c),u=(a(13),a(1)),l=a(3);function i(e,t){switch(t.type){case"37":return t.payload.has("".concat(e.x,",").concat(e.y-1))?Object(l.a)(Object(l.a)({},e),{},{y:e.y-1}):e;case"38":return t.payload.has("".concat(e.x-1,",").concat(e.y))?Object(l.a)(Object(l.a)({},e),{},{x:e.x-1}):e;case"39":return t.payload.has("".concat(e.x,",").concat(e.y+1))?Object(l.a)(Object(l.a)({},e),{},{y:e.y+1}):e;case"40":return t.payload.has("".concat(e.x+1,",").concat(e.y))?Object(l.a)(Object(l.a)({},e),{},{x:e.x+1}):e;case"CLICK":return{x:t.payload.x,y:t.payload.y};case"RESET":return{x:(a=t.payload)[1],y:a[0]};default:return e}var a}var s=a(2);function f(e){var t=Object(u.a)(e,2),a=t[0],n=t[1],r=Array.from(new Array(a).fill(new Array(n).fill(void 0)));function c(e,t){for(var a=Object(s.a)(e),n=a[0],r=a[1],c=a[2],o=a[3],u=Object(s.a)(t),l=c;l<u.length;l++)if(l<n+c){for(var i=Object(s.a)(u[l]),f=o;f<i.length;f++)f<r+o&&(i[f]="x");u[l]=i}return u}function o(e,t){for(var a=Object(u.a)(t,4),n=a[0],r=a[1],c=a[2],o=a[3],l=n+c,i=r+o,s=0;s<e.length;s++){var f=e[s][2],b=e[s][3],d=e[s][0]+f,v=e[s][1]+b;if(l+3>f&&c-3<d&&i+3>b&&o-3<v)return!0}return!1}var l=function(e,t){for(var a=function(){return Math.floor(8*Math.random())+3},n=function(t){return Math.floor(Math.random()*(e-t+1))},r=[],c=0;c<t;c++){var u=[a(),a()],l=[n(u[0]),n(u[1])];o(r,u=u.concat(l))||r.push(u)}return r}(r.length,25),i=function(e){var t=Object(s.a)(e);return t=t.map((function(e){return[Math.ceil(Math.random()*e[1])+e[3]-1,Math.ceil(Math.random()*e[0])+e[2]-1]}))}(l),f=function(e,t){for(var a=e,n=Object(s.a)(t),r=0;r<a.length;r++){var c=Object(u.a)(a[r],2),o=c[0],l=c[1],i=void 0,f=void 0;if(r<a.length-1){var b=Object(u.a)(a[r+1],2);i=b[0],f=b[1]}else{var d=Object(u.a)(a[0],2);i=d[0],f=d[1]}var v=Object(s.a)(n[l]);if(i>=o){for(var y=o;y<i;y++)v[y]="x";n[l]=v}else if(i<o){for(var j=o;j>i;j--)v[j]="x";n[l]=v}if(f>=l)for(var O=l;O<f;O++){var h=Object(s.a)(n[O]);h[i]="x",n[O]=h}else if(f<l)for(var p=l;p>f;p--){var m=Object(s.a)(n[p]);m[i]="x",n[p]=m}}return n}(i,r);return[f=function(e,t){for(var a=c(e[0],t),n=1;n<e.length;)a=c(e[n],a),n++;return a}(l,f),i[0]]}function b(e){var t=e.brush,a=e.setBrush,c=Object(n.useState)(""),o=Object(u.a)(c,2);o[0],o[1];function l(e){var t=e.target.textContent;if("clear"===t)return a("");a(t)}return r.a.createElement("div",{className:"toolbar-container"},r.a.createElement("button",{onClick:l},"floor"),r.a.createElement("button",{onClick:l},"wall"),r.a.createElement("button",{onClick:l},"start"),r.a.createElement("button",{onClick:l},"end"),r.a.createElement("button",{onClick:l},"clear"),r.a.createElement("div",null,"current brush: ",t))}function d(e){var t,a=e.gridMap,c=e.dispatch,o=e.grid,l=e.setGrid,i=e.brush,f=e.squareState,b=e.endSquare,d=e.setEndSquare,v=Object(n.useState)([]),y=Object(u.a)(v,2),j=(y[0],y[1],function(e){var t=e.keyCode;console.log(a.current),c({type:"".concat(t),payload:a.current})});return Object(n.useEffect)((function(){return document.addEventListener("keydown",j),function(){document.removeEventListener("keydown",j)}}),[]),r.a.createElement("table",null,r.a.createElement("tbody",null,(t=o,t.map((function(e,t){return e.map((function(e,a){return f.x===t&&f.y===a?"coral":b.x===t&&b.y===a?"yellow":"x"===e?"lightblue":"#EDEDED"}))}))).map((function(e,t){return r.a.createElement("tr",{key:"row-".concat(t)},e.map((function(e,a){return r.a.createElement("td",{key:"col-".concat(a),onClick:function(e){!function(e,t,a){e.stopPropagation(),console.log(t,a);var n=Object(s.a)(o);"floor"===i?(n[t][a]="x",console.log(n[t][a])):"wall"===i?n[t][a]="":"start"===i?c({type:"CLICK",payload:{x:t,y:a}}):"end"===i&&d({x:t,y:a}),"start"!==i&&l([n,[f.y,f.x]])}(e,t,a)},style:{margin:0,width:20,height:20,border:"1px black solid",backgroundColor:e}})})))}))))}a(14);var v=[35,35];var y=function(){var e=Object(n.useState)(f(v)),t=Object(u.a)(e,2),a=Object(u.a)(t[0],2),c=a[0],o=a[1],l=t[1],s=Object(n.useReducer)(i,o),y=Object(u.a)(s,2),j=y[0],O=y[1],h=Object(n.useState)(D(c)),p=Object(u.a)(h,2),m=p[0],E=p[1],g=Object(n.useState)([]),x=Object(u.a)(g,2),k=x[0],C=x[1],S=Object(n.useState)(""),w=Object(u.a)(S,2),M=w[0],q=w[1],A=Object(n.useRef)(m);function D(e){for(var t=new Map,a=0;a<e.length;a++)for(var n=0;n<e[0].length;n++)"x"===e[a][n]&&t.set("".concat(a,",").concat(n),"green");return t}return Object(n.useEffect)((function(){var e;e=D(c),A.current=e,E(e),O({type:"RESET",payload:o})}),[o]),r.a.createElement("div",{className:"App"},r.a.createElement(b,{setBrush:q,brush:M}),r.a.createElement(d,{dispatch:O,grid:c,setGrid:l,squareState:j,gridMap:A,brush:M,endSquare:k,setEndSquare:C}),r.a.createElement("button",{onClick:function(){l(f(v)),console.log(o,m)}}," Generate Dungeon"))};o.a.render(r.a.createElement(y,null),document.getElementById("root"))},8:function(e,t,a){e.exports=a(15)}},[[8,1,2]]]);
//# sourceMappingURL=main.915c8424.chunk.js.map