-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathminesweeper.80bbed.js
1 lines (1 loc) · 7.03 KB
/
minesweeper.80bbed.js
1
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["minesweeper"],{"050b":function(t,e,i){"use strict";var n=i("7c6b"),a=i.n(n);a.a},"10e9":function(t,e,i){"use strict";i.r(e);var n=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("v-container",{staticClass:"grey lighten-5"},[i("v-col",{staticClass:"d-flex",attrs:{cols:"12",sm:"6",md:"3"}},[i("v-text-field",{attrs:{label:"宽度"},model:{value:t.width,callback:function(e){t.width=e},expression:"width"}}),i("v-spacer"),i("v-text-field",{attrs:{label:"高度"},model:{value:t.height,callback:function(e){t.height=e},expression:"height"}}),i("v-text-field",{attrs:{label:"雷数"},model:{value:t.mineNum,callback:function(e){t.mineNum=e},expression:"mineNum"}}),i("v-btn",{on:{click:t.newGame}},[t._v(" 开始")])],1),i("br"),i("br"),i("v-col",[t._l(t.returnNumArr(t.game.height),(function(e){return i("v-col",{key:e},t._l(t.returnNumArr(t.game.width),(function(n){return i("mine-block",{key:n+"-"+e,attrs:{x:e,y:n,ingame:t.gameStatus},nativeOn:{click:function(i){return t.clickBlock(e,n)}}})})),1)})),i("br"),i("br"),i("br"),i("br"),i("v-col",[t._v("用js写的扫雷 挺菜的 也就图一乐 之后应该会改进")])],2)],1)},a=[],s=(i("99af"),function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("span",{staticClass:"mineBlock",class:(t.clicked,t.styleClass),domProps:{innerHTML:t._s(t.num)},on:{contextmenu:t.leftClick}})}),c=[],r=(i("a9e3"),i("8bbf")),o=i.n(r),l=new o.a,u={name:"MineBlock",props:{x:{type:Number,required:!0},y:{type:Number,required:!0},ingame:{type:Boolean,required:!0},mine:{type:Boolean},blockMsg:{type:Object}},data:function(){return{clicked:!1,isMine:!1,isFalg:!1,num:" "}},computed:{styleClass:function(){return this.isMine?"is-mine":this.isFalg?"flag":this.clicked?"clicked "+(this.num>0?"mine-"+this.num:"mine-"):"unclick"}},methods:{leftClick:function(t){t.preventDefault(),this.clicked||(this.isFalg=!this.isFalg)},returnblockMsg:function(t){this.clicked=!0,"boom"==t.msg?(this.isMine=!0,this.num="*"):"number"==typeof t.msg?0!=t.msg&&(this.num=t.msg):"win"==t.msg&&(this.num=t.msg),l.$off("returnBlockMsg".concat(this.x,"-").concat(this.y))}},mounted:function(){var t=this;l.$on("returnBlockMsg".concat(this.x,"-").concat(this.y),this.returnblockMsg),l.$on("restart",(function(){l.$on("returnBlockMsg".concat(t.x,"-").concat(t.y),t.returnblockMsg),t.clicked=!1,t.isMine=!1,t.isFalg=!1,t.num=" "}))}},h=u,m=(i("634b"),i("2877")),d=Object(m["a"])(h,s,c,!1,null,"1db16436",null),f=d.exports,g=i("75ba"),v=(i("cb29"),i("d3b7"),i("6062"),i("3ca3"),i("ddb0"),i("b85c")),k=i("d4ec"),p=i("bee2"),b=function(){function t(e,i,n){if(Object(k["a"])(this,t),this.mineMap=[[0]],this.mineNum=0,this.height=0,this.width=0,this.gameOver=!0,this.leftBlock=0,this.clickedBlock=new Set,!(e*i<=n||e<0||i<0||n<0)){this.mineNum=n,this.height=e,this.width=i,this.gameOver=!1,this.mineMap=[],this.clickedBlock=new Set,this.leftBlock=0;for(var a=n,s=e;s>0;s--){for(var c=Math.round(a/s),r=a>i?i:a,o=this.random(c,r),l=Array(i).fill(0),u=0;u<o;u++)l[u]=1,a--;l=this.shuffle(l),this.mineMap.push(l)}this.mineMap=this.shuffle(this.mineMap)}}return Object(p["a"])(t,[{key:"clickBlock",value:function(t,e){return this.clickedBlock.has("".concat(t,"-").concat(e))||this.clickedBlock.add("".concat(t,"-").concat(e)),this.gameOver?{x:t,y:e,msg:"gameOver"}:this.mineMap[t][e]?(this.gameOver=!0,{x:t,y:e,msg:"boom"}):this.clickedBlock.size==this.height*this.width-this.mineNum?(this.gameOver=!0,{x:t,y:e,msg:"win"}):(this.leftBlock=this.height*this.width-this.mineNum-this.clickedBlock.size,{x:t,y:e,msg:this.calcMine(t,e)})}},{key:"calcMine",value:function(t,e){for(var i=0,n=-1;n<2;n++)for(var a=-1;a<2;a++){var s=t+n,c=e+a;s>=0&&s<this.height&&c>=0&&c<this.width&&1==this.mineMap[s][c]&&i++}return i}},{key:"random",value:function(t,e){return Math.ceil(Math.random()*(e-1-t))+t}},{key:"shuffle",value:function(t){for(var e=t,i=e.length-1;i>0;i--){var n=Math.round(100*Math.random())%i,a=e[i];e[i]=e[n],e[n]=a}return e}},{key:"testMap",value:function(){var t,e=0,i=Object(v["a"])(this.mineMap);try{for(i.s();!(t=i.n()).done;){var n,a=t.value,s=Object(v["a"])(a);try{for(s.s();!(n=s.n()).done;){var c=n.value;c&&e++}}catch(r){s.e(r)}finally{s.f()}}}catch(r){i.e(r)}finally{i.f()}e!=this.mineNum?console.error(e,this.mineNum):console.log("ok")}}]),t}(),y={components:{MineBlock:f},data:function(){return{game:{},width:10,height:10,mineNum:10,gameStatus:!1}},methods:{returnNumArr:function(t){for(var e=[],i=0;i<t;i++)e.push(i);return e},newGame:function(){var t=parseInt(this.height),e=parseInt(this.width),i=parseInt(this.mineNum);if(!(t>0&&t<=40&&e>0&&e<=30&&i>0&&i<t*e))return g["a"].warn("不太对劲"),0;this.game=new b(t,e,i),this.game.testMap(),this.gameStatus=!0,l.$emit("restart"),g["a"].info("重新开始")},clickBlock:function(t,e){var i=this;if(!this.game.gameOver){var n=this.game.clickBlock(t,e);if(l.$emit("returnBlockMsg".concat(t,"-").concat(e),n),0===n.msg)for(var a=1;a>-2;a--)for(var s=function(n){var s=t+a,c=e+n;s>=0&&s<i.height&&c>=0&&c<i.width&&setTimeout((function(){i.game.clickedBlock.has("".concat(s,"-").concat(c))||i.clickBlock(s,c)}),1)},c=-1;c<2;c++)s(c);else"boom"==n.msg?g["a"].warn("boom!!!游戏结束了哦"):"win"==n.msg&&g["a"].success("胜利了!");this.gameStatus=!this.game.gameOver}}},mounted:function(){this.game=new b(this.height,this.width,this.mineNum),this.game.testMap(),this.gameStatus=!0}},M=y,w=(i("050b"),i("6544")),B=i.n(w),x=i("8336"),O=i("62ad");i("4de4"),i("b64b"),i("2ca0"),i("20f6"),i("4b85"),i("a15b"),i("498a");function N(t){return o.a.extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,i){var n=i.props,a=i.data,s=i.children;a.staticClass="".concat(t," ").concat(a.staticClass||"").trim();var c=a.attrs;if(c){a.attrs={};var r=Object.keys(c).filter((function(t){if("slot"===t)return!1;var e=c[t];return t.startsWith("data-")?(a.attrs[t]=e,!1):e||"string"===typeof e}));r.length&&(a.staticClass+=" ".concat(r.join(" ")))}return n.id&&(a.domProps=a.domProps||{},a.domProps.id=n.id),e(n.tag,a,s)}})}var j=i("d9f7"),C=N("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var i,n=e.props,a=e.data,s=e.children,c=a.attrs;return c&&(a.attrs={},i=Object.keys(c).filter((function(t){if("slot"===t)return!1;var e=c[t];return t.startsWith("data-")?(a.attrs[t]=e,!1):e||"string"===typeof e}))),n.id&&(a.domProps=a.domProps||{},a.domProps.id=n.id),t(n.tag,Object(j["a"])(a,{staticClass:"container",class:Array({"container--fluid":n.fluid}).concat(i||[])}),s)}}),S=i("80d2"),_=Object(S["h"])("spacer","div","v-spacer"),$=i("8654"),P=Object(m["a"])(M,n,a,!1,null,"2ba3c07e",null);e["default"]=P.exports;B()(P,{VBtn:x["a"],VCol:O["a"],VContainer:C,VSpacer:_,VTextField:$["a"]})},"20f6":function(t,e,i){},6062:function(t,e,i){"use strict";var n=i("6d61"),a=i("6566");t.exports=n("Set",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),a)},"634b":function(t,e,i){"use strict";var n=i("e2d8"),a=i.n(n);a.a},"7c6b":function(t,e,i){},e2d8:function(t,e,i){}}]);