{"version":3,"sources":["webpack:///static/js/app.2b41daec74ba53b7eeba.js","webpack:///./src/unit/const.js","webpack:///./src/unit/index.js","webpack:///./src/control/states.js","webpack:///./src/unit/event.js","webpack:///./src/unit/music.js","webpack:///./src/vuex/store.js","webpack:///./src/control/todo/index.js","webpack:///./src/unit/block.js","webpack:///./src/components/number/index.vue?0e7e","webpack:///./src/control/index.js","webpack:///./src/App.vue?35a7","webpack:///./src/app.js","webpack:///./src/components/decorate/index.js","webpack:///./src/components/guide/index.js","webpack:///./src/components/keyboard/button/index.js","webpack:///./src/components/keyboard/index.js","webpack:///./src/components/logo/index.js","webpack:///./src/components/matrix/index.js","webpack:///./src/components/music/index.js","webpack:///./src/components/next/index.js","webpack:///./src/components/number/index.js","webpack:///./src/components/pause/index.js","webpack:///./src/components/point/index.js","webpack:///./src/control/todo/down.js","webpack:///./src/control/todo/left.js","webpack:///./src/control/todo/p.js","webpack:///./src/control/todo/r.js","webpack:///./src/control/todo/right.js","webpack:///./src/control/todo/rotate.js","webpack:///./src/control/todo/s.js","webpack:///./src/control/todo/space.js","webpack:///./src/main.js","webpack:///./src/vuex/mutations.js","webpack:///./src/components/decorate/index.vue?acea","webpack:///./src/components/guide/index.vue?f12d","webpack:///./src/components/keyboard/button/index.vue?3c59","webpack:///./src/components/keyboard/index.vue?a431","webpack:///./src/components/logo/index.vue?eb17","webpack:///./src/components/matrix/index.vue?0ee4","webpack:///./src/components/music/index.vue?bca7","webpack:///./src/components/next/index.vue?9625","webpack:///./src/components/pause/index.vue?9dcd","webpack:///./src/components/point/index.vue","webpack:///./src/components/keyboard/index.vue?44e0","webpack:///./src/components/pause/index.vue?95ba","webpack:///./src/components/decorate/index.vue?296a","webpack:///./src/components/music/index.vue?d946","webpack:///./src/App.vue?51fa","webpack:///./src/components/guide/index.vue?046b","webpack:///./src/components/keyboard/button/index.vue?143e","webpack:///./src/components/next/index.vue?28a2","webpack:///./src/components/point/index.vue?a144","webpack:///./src/components/number/index.vue?d20a","webpack:///./src/components/logo/index.vue?9aea","webpack:///./src/i18n.json"],"names":["webpackJsonp","module","exports","__webpack_require__","_interopRequireDefault","obj","__esModule","default","Object","defineProperty","value","i18n","lan","getParam","eachLines","transform","maxPoint","lastRecord","StorageKey","clearPoints","blankMatrix","blankLine","fillLine","delays","speeds","blockType","origin","blockShape","undefined","_keys","_keys2","_i18n","_i18n2","I","L","J","Z","S","O","T","matrix","i","push","data","window","localStorage","getItem","btoa","atob","decodeURIComponent","JSON","parse","e","console","error","trans","body","document","filter","style","param","r","RegExp","m","location","toString","match","decodeURI","l","toLowerCase","navigator","languages","find","indexOf","title","isFocus","visibilityChangeEvent","subscribeRecord","isOver","isClear","want","isMobile","getNextType","_stringify","_stringify2","_const","hiddenProperty","names","length","unit","len","Math","floor","random","next","xy","shape","horizontal","every","k1","n","k2","clearLines","forEach","k","some","store","subscribe","state","lock","encodeURIComponent","setItem","ua","userAgent","android","test","iphone","ipod","ipad","nokiaN","replace","_store","_store2","_unit","_music","getStartMatrix","startLines","getLine","min","max","count","parseInt","line","index","splice","startMatrix","unshift","states","fallInterval","start","music","dispatchPoints","commit","speedStart","type","auto","timeout","out","cur","fall","setTimeout","speedRun","nextAround","clearTimeout","stopDownTrigger","addPoints","points","clear","gameover","overStart","focus","reset","pause","isPause","lines","newMatrix","speedAdd","speedNow","overEnd","point","eventName","down","o","callback","key","once","begin","interval","loop","up","clearAll","hasWebAudioAPI","AudioContext","webkitAudioContext","mozAudioContext","oAudioContext","msAudioContext","protocol","url","context","req","XMLHttpRequest","open","responseType","onload","decodeAudioData","response","buf","getSource","source","createBufferSource","buffer","connect","destination","killStart","rotate","move","send","_vue","_vue2","_vuex","_vuex2","_mutations","_mutations2","_unit2","_block","_block2","use","clearLinesInitState","isNaN","curInitState","option","rotateIndex","dropInitState","drop","lockInitState","matrixInitState","Array","isArray","maxInitState","musicInitState","nextInitState","pauseInitState","pointsInitState","speedRunInitState","speedStartInitState","startLinesInitState","resetInitState","keyboard","left","right","Store","mutations","_left","_left2","_right","_right2","_down","_down2","_rotate","_rotate2","_space","_space2","_s","_s2","_r","_r2","_p","_p2","space","p","s","_toConsumableArray2","_toConsumableArray3","_classCallCheck2","_classCallCheck3","_createClass2","_createClass3","Block","this","timeStamp","Date","now","result","tempK","nextXy","nextRotateIndex","arguments","injectStyle","ssrContext","Component","_todo","_todo2","37","38","39","40","32","83","82","80","keydownActive","boardKeys","map","keyDown","metaKey","keyCode","keyUp","addEventListener","_extends2","_extends3","_index","_index2","_index3","_index4","_index5","_index6","_index7","_index8","_index9","_index10","_index11","_index12","_index13","_index14","_index15","_index16","_index17","_index18","_index19","_index20","_states","_states2","mounted","render","resize","bind","size","w","documentElement","clientWidth","h","clientHeight","filling","components","Decorate","Guide","Next","Music","Pause","Number","Point","Logo","Keyboard","Matrix","computed","pContent","cleans","startLine","level","nextText","mapState","methods","_this","ratio","scale","css","padding-top","padding-bottom","margin-top","$store","name","github","QRTitle","QRNotice","QRCode","linkTitle","QRSrc","props","fillingNum","watch","$props","deep","handler","nextProps","rotation","labelLeft","labelRight","labelDown","labelDropSpace","labelResetR","labelSoundS","sound","labelPauseP","touchEventCatch","mouseDownEventCatch","preventDefault","event","$refs","$el","Vbutton","display","oldProps","animate","titleCenter","beforeMount","_ref","set","func","delay","show","hide","eyes","delay1","delay2","run","dra","t","val","propsChange","overState","getResult","class","animateColor","clears","propMatrix","overs","clearAnimate","over","color","_this2","anima","_this3","concat","exLine","empty","build","block","formate","num","split","NumberObj","timeInterval","time_count","propTime","Boolean","number","time","destroyed","hour","getHours","getMinutes","sec","getSeconds","clock","setShake","showPause","bool","setInterval","clearInterval","DF","ZDF","highestScore","SLDF","lastRound","onChange","label","toggle","_event","_event2","remain","speed","bottom","_App","_App2","config","productionTip","el","nextBlock","moveBlock","key_drop","key_down","key_left","key_right","key_rotate","key_reset","key_music","key_pause","_vm","_h","$createElement","_c","_self","staticClass","ref","attrs","top","arrow","position","active","_v","staticRenderFns","c","_m","staticStyle","width","directives","rawName","expression","_b","href","rel","target","transform-origin","src","frameBorder","scrolling","height","alt","_l","item","domProps","innerHTML","cn","en","fr","fa"],"mappings":"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","file":"static/js/app.2b41daec74ba53b7eeba.js","sourcesContent":["webpackJsonp([1],[\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.i18n = exports.lan = exports.getParam = exports.eachLines = exports.transform = exports.maxPoint = exports.lastRecord = exports.StorageKey = exports.clearPoints = exports.blankMatrix = exports.blankLine = exports.fillLine = exports.delays = exports.speeds = exports.blockType = exports.origin = exports.blockShape = undefined;\n\nvar _keys = __webpack_require__(14);\n\nvar _keys2 = _interopRequireDefault(_keys);\n\nvar _i18n = __webpack_require__(142);\n\nvar _i18n2 = _interopRequireDefault(_i18n);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar blockShape = exports.blockShape = {\n I: [[1, 1, 1, 1]],\n L: [[0, 0, 1], [1, 1, 1]],\n J: [[1, 0, 0], [1, 1, 1]],\n Z: [[1, 1, 0], [0, 1, 1]],\n S: [[0, 1, 1], [1, 1, 0]],\n O: [[1, 1], [1, 1]],\n T: [[0, 1, 0], [1, 1, 1]]\n};\n\nvar origin = exports.origin = {\n I: [[-1, 1], [1, -1]],\n L: [[0, 0]],\n J: [[0, 0]],\n Z: [[0, 0]],\n S: [[0, 0]],\n O: [[0, 0]],\n T: [[0, 0], [1, 0], [-1, 1], [0, -1]]\n};\n\nvar blockType = exports.blockType = (0, _keys2.default)(blockShape);\n\nvar speeds = exports.speeds = [800, 650, 500, 370, 250, 160];\n\nvar delays = exports.delays = [50, 60, 70, 80, 90, 100];\n\nvar fillLine = exports.fillLine = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\n\nvar blankLine = exports.blankLine = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\nvar blankMatrix = exports.blankMatrix = function () {\n var matrix = [];\n for (var i = 0; i < 20; i++) {\n matrix.push(blankLine);\n }\n return matrix;\n}();\n\nvar clearPoints = exports.clearPoints = [100, 300, 700, 1500];\n\nvar StorageKey = exports.StorageKey = 'VUE_TETRIS';\n\nvar lastRecord = exports.lastRecord = function () {\n var data = window.localStorage.getItem(StorageKey);\n if (!data) {\n return false;\n }\n try {\n if (window.btoa) {\n data = atob(data);\n }\n data = decodeURIComponent(data);\n data = JSON.parse(data);\n } catch (e) {\n if (window.console || window.console.error) {\n window.console.error('读取记录错误:', e);\n }\n return false;\n }\n return data;\n}();\n\nvar maxPoint = exports.maxPoint = 999999;\n\nvar transform = exports.transform = function () {\n var trans = ['transform', 'webkitTransform', 'msTransform', 'mozTransform', 'oTransform'];\n var body = document.body;\n return trans.filter(function (e) {\n return body.style[e] !== undefined;\n })[0];\n}();\n\nvar eachLines = exports.eachLines = 20;var getParam = exports.getParam = function getParam(param) {\n var r = new RegExp('\\\\?(?:.+&)?' + param + '=(.*?)(?:&.*)?$');\n var m = window.location.toString().match(r);\n return m ? decodeURI(m[1]) : '';\n};\n\nvar lan = exports.lan = function () {\n var l = getParam('lan').toLowerCase();\n if (!l && navigator.languages) {\n l = navigator.languages.find(function (l) {\n return _i18n2.default.lan.indexOf(l) !== -1;\n });\n }\n l = _i18n2.default.lan.indexOf(l) === -1 ? _i18n2.default.default : l;\n return l;\n}();\n\ndocument.title = _i18n2.default.data.title[lan];\n\nvar i18n = exports.i18n = _i18n2.default.data;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isFocus = exports.visibilityChangeEvent = exports.subscribeRecord = exports.isOver = exports.isClear = exports.want = exports.isMobile = exports.getNextType = undefined;\n\nvar _stringify = __webpack_require__(9);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _const = __webpack_require__(0);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar hiddenProperty = function () {\n var names = ['hidden', 'webkitHidden', 'mozHidden', 'msHidden'];\n names = names.filter(function (e) {\n return e in document;\n });\n return names.length > 0 ? names[0] : false;\n}();\nvar unit = {\n getNextType: function getNextType() {\n var len = _const.blockType.length;\n return _const.blockType[Math.floor(Math.random() * len)];\n },\n want: function want(next, matrix) {\n var xy = next.xy;\n var shape = next.shape;\n var horizontal = shape[0].length;\n return shape.every(function (m, k1) {\n return m.every(function (n, k2) {\n if (xy[1] < 0) {\n return false;\n }\n if (xy[1] + horizontal > 10) {\n return false;\n }\n if (xy[0] + k1 < 0) {\n return true;\n }\n if (xy[0] + k1 >= 20) {\n return false;\n }\n if (n) {\n if (matrix[xy[0] + k1][xy[1] + k2]) {\n return false;\n }\n return true;\n }\n return true;\n });\n });\n },\n isClear: function isClear(matrix) {\n var clearLines = [];\n matrix.forEach(function (m, k) {\n if (m.every(function (n) {\n return !!n;\n })) {\n clearLines.push(k);\n }\n });\n if (clearLines.length === 0) {\n return false;\n }\n return clearLines;\n },\n isOver: function isOver(matrix) {\n\n return matrix[0].some(function (n) {\n return !!n;\n });\n },\n subscribeRecord: function subscribeRecord(store) {\n store.subscribe(function () {\n var data = store.state;\n if (data.lock) {\n return;\n }\n data = (0, _stringify2.default)(data);\n data = encodeURIComponent(data);\n if (window.btoa) {\n data = btoa(data);\n }\n window.localStorage.setItem(_const.StorageKey, data);\n });\n },\n isMobile: function isMobile() {\n var ua = navigator.userAgent;\n var android = /Android (\\d+\\.\\d+)/.test(ua);\n var iphone = ua.indexOf('iPhone') > -1;\n var ipod = ua.indexOf('iPod') > -1;\n var ipad = ua.indexOf('iPad') > -1;\n var nokiaN = ua.indexOf('NokiaN') > -1;\n return android || iphone || ipod || ipad || nokiaN;\n },\n\n visibilityChangeEvent: function () {\n if (!hiddenProperty) {\n return false;\n }\n return hiddenProperty.replace(/hidden/i, 'visibilitychange');\n }(),\n isFocus: function isFocus() {\n if (!hiddenProperty) {\n return true;\n }\n return !document[hiddenProperty];\n }\n};\nvar getNextType = unit.getNextType,\n isMobile = unit.isMobile,\n want = unit.want,\n isClear = unit.isClear,\n isOver = unit.isOver,\n subscribeRecord = unit.subscribeRecord,\n visibilityChangeEvent = unit.visibilityChangeEvent,\n isFocus = unit.isFocus;\nexports.getNextType = getNextType;\nexports.isMobile = isMobile;\nexports.want = want;\nexports.isClear = isClear;\nexports.isOver = isOver;\nexports.subscribeRecord = subscribeRecord;\nexports.visibilityChangeEvent = visibilityChangeEvent;\nexports.isFocus = isFocus;\n\n/***/ }),\n/* 2 */,\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(9);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _store = __webpack_require__(8);\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _unit = __webpack_require__(1);\n\nvar _const = __webpack_require__(0);\n\nvar _music = __webpack_require__(6);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar getStartMatrix = function getStartMatrix(startLines) {\n var getLine = function getLine(min, max) {\n var count = parseInt((max - min + 1) * Math.random() + min, 10);\n var line = [];\n for (var i = 0; i < count; i++) {\n line.push(1);\n }\n for (var _i = 0, len = 10 - count; _i < len; _i++) {\n var index = parseInt((line.length + 1) * Math.random(), 10);\n line.splice(index, 0, 0);\n }\n\n return line;\n };\n var startMatrix = [];\n\n for (var i = 0; i < startLines; i++) {\n if (i <= 2) {\n startMatrix.push(getLine(5, 8));\n } else if (i <= 6) {\n startMatrix.push(getLine(4, 9));\n } else {\n startMatrix.push(getLine(3, 9));\n }\n }\n for (var _i2 = 0, len = 20 - startLines; _i2 < len; _i2++) {\n startMatrix.unshift(_const.blankLine);\n }\n return startMatrix;\n};\n\nvar states = {\n fallInterval: null,\n\n start: function start() {\n if (_music.music.start) {\n _music.music.start();\n }\n var state = _store2.default.state;\n states.dispatchPoints(0);\n _store2.default.commit('speedRun', state.speedStart);\n var startLines = state.startLines;\n var startMatrix = getStartMatrix(startLines);\n _store2.default.commit('matrix', startMatrix);\n _store2.default.commit('moveBlock', { type: state.next });\n _store2.default.commit('nextBlock', '');\n states.auto();\n },\n\n auto: function auto(timeout) {\n var out = timeout < 0 ? 0 : timeout;\n var state = _store2.default.state;\n var cur = state.cur;\n var fall = function fall() {\n state = _store2.default.state;\n cur = state.cur;\n var next = cur.fall();\n if ((0, _unit.want)(next, state.matrix)) {\n _store2.default.commit('moveBlock', next);\n states.fallInterval = setTimeout(fall, _const.speeds[state.speedRun - 1]);\n } else {\n var matrix = JSON.parse((0, _stringify2.default)(state.matrix));\n var shape = cur && cur.shape;\n var xy = cur && cur.xy;\n shape.forEach(function (m, k1) {\n return m.forEach(function (n, k2) {\n if (n && xy[0] + k1 >= 0) {\n var line = matrix[xy[0] + k1];\n line[xy[1] + k2] = 1;\n matrix[xy[0] + k1] = line;\n }\n });\n });\n states.nextAround(matrix);\n }\n };\n clearTimeout(states.fallInterval);\n states.fallInterval = setTimeout(fall, out === undefined ? _const.speeds[state.speedRun - 1] : out);\n },\n\n nextAround: function nextAround(matrix, stopDownTrigger) {\n clearTimeout(states.fallInterval);\n _store2.default.commit('lock', true);\n _store2.default.commit('matrix', matrix);\n if (typeof stopDownTrigger === 'function') {\n stopDownTrigger();\n }\n\n var addPoints = _store2.default.state.points + 10 + (_store2.default.state.speedRun - 1) * 2;\n\n states.dispatchPoints(addPoints);\n\n if ((0, _unit.isClear)(matrix)) {\n if (_music.music.clear) {\n _music.music.clear();\n }\n return;\n }\n if ((0, _unit.isOver)(matrix)) {\n if (_music.music.gameover) {\n _music.music.gameover();\n }\n states.overStart();\n return;\n }\n setTimeout(function () {\n _store2.default.commit('lock', false);\n _store2.default.commit('moveBlock', { type: _store2.default.state.next });\n _store2.default.commit('nextBlock', '');\n states.auto();\n }, 100);\n },\n\n focus: function focus(isFocus) {\n _store2.default.commit('focus', isFocus);\n if (!isFocus) {\n clearTimeout(states.fallInterval);\n return;\n }\n var state = _store2.default.state;\n if (state.cur && !state.reset && !state.pause) {\n states.auto();\n }\n },\n\n pause: function pause(isPause) {\n _store2.default.commit('pause', isPause);\n if (isPause) {\n clearTimeout(states.fallInterval);\n return;\n }\n states.auto();\n },\n\n clearLines: function clearLines(matrix, lines) {\n var state = _store2.default.state;\n var newMatrix = JSON.parse((0, _stringify2.default)(matrix));\n lines.forEach(function (n) {\n newMatrix.splice(n, 1);\n\n newMatrix.unshift(_const.blankLine);\n });\n _store2.default.commit('matrix', newMatrix);\n _store2.default.commit('moveBlock', { type: state.next });\n _store2.default.commit('nextBlock', '');\n states.auto();\n _store2.default.commit('lock', false);\n var clearLines = state.clearLines + lines.length;\n _store2.default.commit('clearLines', clearLines);\n\n var addPoints = _store2.default.state.points + _const.clearPoints[lines.length - 1];\n states.dispatchPoints(addPoints);\n\n var speedAdd = Math.floor(clearLines / _const.eachLines);\n var speedNow = state.speedStart + speedAdd;\n speedNow = speedNow > 6 ? 6 : speedNow;\n _store2.default.commit('speedRun', speedNow);\n },\n\n overStart: function overStart() {\n clearTimeout(states.fallInterval);\n _store2.default.commit('lock', true);\n _store2.default.commit('reset', true);\n _store2.default.commit('pause', false);\n },\n\n overEnd: function overEnd() {\n _store2.default.commit('matrix', _const.blankMatrix);\n _store2.default.commit('moveBlock', { reset: true });\n _store2.default.commit('reset', false);\n _store2.default.commit('lock', false);\n _store2.default.commit('clearLines', 0);\n },\n\n dispatchPoints: function dispatchPoints(point) {\n _store2.default.commit('points', point);\n if (point > 0 && point > _store2.default.state.max) {\n _store2.default.commit('max', point);\n }\n }\n};\n\nexports.default = states;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _keys = __webpack_require__(14);\n\nvar _keys2 = _interopRequireDefault(_keys);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eventName = {};\n\nvar down = function down(o) {\n var keys = (0, _keys2.default)(eventName);\n keys.forEach(function (i) {\n clearTimeout(eventName[i]);\n eventName[i] = null;\n });\n if (!o.callback) {\n return;\n }\n var clear = function clear() {\n clearTimeout(eventName[o.key]);\n };\n o.callback(clear);\n if (o.once === true) {\n return;\n }\n var begin = o.begin || 100;\n var interval = o.interval || 50;\n var loop = function loop() {\n eventName[o.key] = setTimeout(function () {\n begin = null;\n loop();\n o.callback(clear);\n }, begin || interval);\n };\n loop();\n};\n\nvar up = function up(o) {\n clearTimeout(eventName[o.key]);\n eventName[o.key] = null;\n if (!o.callback) {\n return;\n }\n o.callback();\n};\n\nvar clearAll = function clearAll() {\n var keys = (0, _keys2.default)(eventName);\n keys.forEach(function (i) {\n clearTimeout(eventName[i]);\n eventName[i] = null;\n });\n};\n\nexports.default = {\n down: down,\n up: up,\n clearAll: clearAll\n};\n\n/***/ }),\n/* 5 */,\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.music = exports.hasWebAudioAPI = undefined;\n\nvar _store = __webpack_require__(8);\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar AudioContext = window.AudioContext || window.webkitAudioContext || window.mozAudioContext || window.oAudioContext || window.msAudioContext;\n\nvar hasWebAudioAPI = exports.hasWebAudioAPI = {\n data: !!AudioContext && location.protocol.indexOf('http') !== -1\n};\n\nvar music = exports.music = {};(function () {\n if (!hasWebAudioAPI.data) {\n return;\n }\n var url = './static/music.mp3';\n var context = new AudioContext();\n var req = new XMLHttpRequest();\n req.open('GET', url, true);\n req.responseType = 'arraybuffer';\n\n req.onload = function () {\n context.decodeAudioData(req.response, function (buf) {\n var getSource = function getSource() {\n var source = context.createBufferSource();\n source.buffer = buf;\n source.connect(context.destination);\n return source;\n };\n\n music.killStart = function () {\n music.start = function () {};\n };\n\n music.start = function () {\n music.killStart();\n if (!_store2.default.state.music) {\n return;\n }\n getSource().start(0, 3.7202, 3.6224);\n };\n\n music.clear = function () {\n if (!_store2.default.state.music) {\n return;\n }\n getSource().start(0, 0, 0.7675);\n };\n\n music.fall = function () {\n if (!_store2.default.state.music) {\n return;\n }\n getSource().start(0, 1.2558, 0.3546);\n };\n\n music.gameover = function () {\n if (!_store2.default.state.music) {\n return;\n }\n getSource().start(0, 8.1276, 1.1437);\n };\n\n music.rotate = function () {\n if (!_store2.default.state.music) {\n return;\n }\n getSource().start(0, 2.2471, 0.0807);\n };\n\n music.move = function () {\n if (!_store2.default.state.music) {\n return;\n }\n getSource().start(0, 2.9088, 0.1437);\n };\n }, function (error) {\n if (window.console && window.console.error) {\n window.console.error('\\u97F3\\u9891: ' + url + ' \\u8BFB\\u53D6\\u9519\\u8BEF', error);\n hasWebAudioAPI.data = false;\n }\n });\n };\n\n req.send();\n})();\n\n/***/ }),\n/* 7 */,\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _vue = __webpack_require__(28);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _vuex = __webpack_require__(42);\n\nvar _vuex2 = _interopRequireDefault(_vuex);\n\nvar _unit = __webpack_require__(1);\n\nvar _mutations = __webpack_require__(66);\n\nvar _mutations2 = _interopRequireDefault(_mutations);\n\nvar _unit2 = __webpack_require__(1);\n\nvar _const = __webpack_require__(0);\n\nvar _block = __webpack_require__(30);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _music = __webpack_require__(6);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_vue2.default.use(_vuex2.default);\n\nvar clearLinesInitState = _const.lastRecord && !isNaN(parseInt(_const.lastRecord.clearLines, 10)) ? parseInt(_const.lastRecord.clearLines, 10) : 0;\nif (clearLinesInitState < 0) {\n clearLinesInitState = 0;\n}\n\nvar curInitState = function () {\n if (!_const.lastRecord || !_const.lastRecord.cur) {\n return null;\n }\n var cur = _const.lastRecord.cur;\n var option = {\n type: cur.type,\n rotateIndex: cur.rotateIndex,\n shape: cur.shape,\n xy: cur.xy\n };\n return new _block2.default(option);\n}();\n\nvar dropInitState = _const.lastRecord && _const.lastRecord.drop !== undefined ? !!_const.lastRecord.drop : false;\n\nvar lockInitState = _const.lastRecord && _const.lastRecord.lock !== undefined ? !!_const.lastRecord.lock : false;\n\nvar matrixInitState = _const.lastRecord && Array.isArray(_const.lastRecord.matrix) ? _const.lastRecord.matrix : _const.blankMatrix;\n\nvar maxInitState = _const.lastRecord && !isNaN(parseInt(_const.lastRecord.max, 10)) ? parseInt(_const.lastRecord.max, 10) : 0;\n\nif (maxInitState < 0) {\n maxInitState = 0;\n} else if (maxInitState > _const.maxPoint) {\n maxInitState = _const.maxPoint;\n}\nvar musicInitState = _const.lastRecord && _const.lastRecord.music !== undefined ? !!_const.lastRecord.music : true;\nif (!_music.hasWebAudioAPI.data) {\n musicInitState = false;\n}\n\nvar nextInitState = _const.lastRecord && _const.blockType.indexOf(_const.lastRecord.next) !== -1 ? _const.lastRecord.next : (0, _unit.getNextType)();\n\nvar pauseInitState = _const.lastRecord && _const.lastRecord.pause !== undefined ? !!_const.lastRecord.pause : false;\n\nvar pointsInitState = _const.lastRecord && !isNaN(parseInt(_const.lastRecord.points, 10)) ? parseInt(_const.lastRecord.points, 10) : 0;\n\nif (pointsInitState < 0) {\n pointsInitState = 0;\n} else if (pointsInitState > _const.maxPoint) {\n pointsInitState = _const.maxPoint;\n}\n\nvar speedRunInitState = _const.lastRecord && !isNaN(parseInt(_const.lastRecord.speedRun, 10)) ? parseInt(_const.lastRecord.speedRun, 10) : 1;\nif (speedRunInitState < 1 || speedRunInitState > 6) {\n speedRunInitState = 1;\n}\nvar speedStartInitState = _const.lastRecord && !isNaN(parseInt(_const.lastRecord.speedStart, 10)) ? parseInt(_const.lastRecord.speedStart, 10) : 1;\nif (speedStartInitState < 1 || speedStartInitState > 6) {\n speedStartInitState = 1;\n}\n\nvar startLinesInitState = _const.lastRecord && !isNaN(parseInt(_const.lastRecord.startLines, 10)) ? parseInt(_const.lastRecord.startLines, 10) : 0;\nif (startLinesInitState < 0 || startLinesInitState > 10) {\n startLinesInitState = 0;\n}\nvar resetInitState = _const.lastRecord && _const.lastRecord.reset ? !!_const.lastRecord.reset : false;\nvar state = {\n music: musicInitState,\n pause: pauseInitState,\n matrix: matrixInitState,\n next: nextInitState,\n cur: curInitState,\n\n speedStart: speedStartInitState,\n speedRun: speedRunInitState,\n startLines: startLinesInitState,\n clearLines: clearLinesInitState,\n points: pointsInitState,\n max: maxInitState,\n reset: resetInitState,\n drop: dropInitState,\n keyboard: {\n drop: false,\n down: false,\n left: false,\n right: false,\n rotate: false,\n reset: false,\n music: false,\n pause: false\n },\n\n lock: lockInitState,\n focus: (0, _unit2.isFocus)()\n};\nexports.default = new _vuex2.default.Store({\n state: state,\n\n mutations: _mutations2.default\n});\n\n/***/ }),\n/* 9 */,\n/* 10 */,\n/* 11 */,\n/* 12 */,\n/* 13 */,\n/* 14 */,\n/* 15 */,\n/* 16 */,\n/* 17 */,\n/* 18 */,\n/* 19 */,\n/* 20 */,\n/* 21 */,\n/* 22 */,\n/* 23 */,\n/* 24 */,\n/* 25 */,\n/* 26 */,\n/* 27 */,\n/* 28 */,\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _left = __webpack_require__(58);\n\nvar _left2 = _interopRequireDefault(_left);\n\nvar _right = __webpack_require__(61);\n\nvar _right2 = _interopRequireDefault(_right);\n\nvar _down = __webpack_require__(57);\n\nvar _down2 = _interopRequireDefault(_down);\n\nvar _rotate = __webpack_require__(62);\n\nvar _rotate2 = _interopRequireDefault(_rotate);\n\nvar _space = __webpack_require__(64);\n\nvar _space2 = _interopRequireDefault(_space);\n\nvar _s = __webpack_require__(63);\n\nvar _s2 = _interopRequireDefault(_s);\n\nvar _r = __webpack_require__(60);\n\nvar _r2 = _interopRequireDefault(_r);\n\nvar _p = __webpack_require__(59);\n\nvar _p2 = _interopRequireDefault(_p);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n left: _left2.default,\n down: _down2.default,\n rotate: _rotate2.default,\n right: _right2.default,\n space: _space2.default,\n r: _r2.default,\n p: _p2.default,\n s: _s2.default\n};\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _toConsumableArray2 = __webpack_require__(20);\n\nvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\nvar _classCallCheck2 = __webpack_require__(70);\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(71);\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _const = __webpack_require__(0);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Block = function () {\n function Block(option) {\n (0, _classCallCheck3.default)(this, Block);\n\n this.type = option.type;\n\n if (!option.rotateIndex) {\n this.rotateIndex = 0;\n } else {\n this.rotateIndex = option.rotateIndex;\n }\n\n if (!option.timeStamp) {\n this.timeStamp = Date.now();\n } else {\n this.timeStamp = option.timeStamp;\n }\n\n if (!option.shape) {\n this.shape = _const.blockShape[option.type];\n } else {\n this.shape = option.shape;\n }\n if (!option.xy) {\n switch (option.type) {\n case 'I':\n this.xy = [0, 3];\n break;\n case 'L':\n this.xy = [-1, 4];\n break;\n case 'J':\n this.xy = [-1, 4];\n break;\n case 'Z':\n this.xy = [-1, 4];\n break;\n case 'S':\n this.xy = [-1, 4];\n break;\n case 'O':\n this.xy = [-1, 4];\n break;\n case 'T':\n this.xy = [-1, 4];\n break;\n default:\n break;\n }\n } else {\n this.xy = option.xy;\n }\n }\n\n (0, _createClass3.default)(Block, [{\n key: 'rotate',\n value: function rotate() {\n var shape = this.shape;\n var result = [];\n shape.forEach(function (m) {\n return m.forEach(function (n, k) {\n var index = m.length - k - 1;\n if (result[index] === undefined) {\n result[index] = [];\n }\n\n result[index].push(n);\n var tempK = [].concat((0, _toConsumableArray3.default)(result[index]));\n result[index] = tempK;\n });\n });\n var nextXy = [this.xy[0] + _const.origin[this.type][this.rotateIndex][0], this.xy[1] + _const.origin[this.type][this.rotateIndex][1]];\n var nextRotateIndex = this.rotateIndex + 1 >= _const.origin[this.type].length ? 0 : this.rotateIndex + 1;\n return {\n shape: result,\n type: this.type,\n xy: nextXy,\n rotateIndex: nextRotateIndex,\n timeStamp: this.timeStamp\n };\n }\n }, {\n key: 'fall',\n value: function fall() {\n var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n\n return {\n shape: this.shape,\n type: this.type,\n xy: [this.xy[0] + n, this.xy[1]],\n rotateIndex: this.rotateIndex,\n timeStamp: Date.now()\n };\n }\n }, {\n key: 'right',\n value: function right() {\n return {\n shape: this.shape,\n type: this.type,\n xy: [this.xy[0], this.xy[1] + 1],\n rotateIndex: this.rotateIndex,\n timeStamp: this.timeStamp\n };\n }\n }, {\n key: 'left',\n value: function left() {\n return {\n shape: this.shape,\n type: this.type,\n xy: [this.xy[0], this.xy[1] - 1],\n rotateIndex: this.rotateIndex,\n timeStamp: this.timeStamp\n };\n }\n }]);\n return Block;\n}();\n\nexports.default = Block;\n\n/***/ }),\n/* 31 */,\n/* 32 */,\n/* 33 */,\n/* 34 */,\n/* 35 */,\n/* 36 */,\n/* 37 */,\n/* 38 */,\n/* 39 */,\n/* 40 */,\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(117)\n}\nvar Component = __webpack_require__(2)(\n /* script */\n __webpack_require__(54),\n /* template */\n __webpack_require__(138),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 42 */,\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _keys = __webpack_require__(14);\n\nvar _keys2 = _interopRequireDefault(_keys);\n\nvar _store = __webpack_require__(8);\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _todo = __webpack_require__(29);\n\nvar _todo2 = _interopRequireDefault(_todo);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar keyboard = {\n 37: 'left',\n 38: 'rotate',\n 39: 'right',\n 40: 'down',\n 32: 'space',\n 83: 's',\n 82: 'r',\n 80: 'p'\n};\n\nvar keydownActive = void 0;\n\nvar boardKeys = (0, _keys2.default)(keyboard).map(function (e) {\n return parseInt(e, 10);\n});\n\nvar keyDown = function keyDown(e) {\n if (e.metaKey === true || boardKeys.indexOf(e.keyCode) === -1) {\n return;\n }\n var type = keyboard[e.keyCode];\n if (type === keydownActive) {\n return;\n }\n keydownActive = type;\n _todo2.default[type].down(_store2.default);\n};\n\nvar keyUp = function keyUp(e) {\n if (e.metaKey === true || boardKeys.indexOf(e.keyCode) === -1) {\n return;\n }\n var type = keyboard[e.keyCode];\n if (type === keydownActive) {\n keydownActive = '';\n }\n _todo2.default[type].up(_store2.default);\n};\n\ndocument.addEventListener('keydown', keyDown, true);\ndocument.addEventListener('keyup', keyUp, true);\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(112)\n}\nvar Component = __webpack_require__(2)(\n /* script */\n __webpack_require__(45),\n /* template */\n __webpack_require__(133),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = __webpack_require__(72);\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _index = __webpack_require__(119);\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _index3 = __webpack_require__(120);\n\nvar _index4 = _interopRequireDefault(_index3);\n\nvar _index5 = __webpack_require__(126);\n\nvar _index6 = _interopRequireDefault(_index5);\n\nvar _index7 = __webpack_require__(125);\n\nvar _index8 = _interopRequireDefault(_index7);\n\nvar _index9 = __webpack_require__(127);\n\nvar _index10 = _interopRequireDefault(_index9);\n\nvar _index11 = __webpack_require__(41);\n\nvar _index12 = _interopRequireDefault(_index11);\n\nvar _index13 = __webpack_require__(128);\n\nvar _index14 = _interopRequireDefault(_index13);\n\nvar _index15 = __webpack_require__(122);\n\nvar _index16 = _interopRequireDefault(_index15);\n\nvar _index17 = __webpack_require__(123);\n\nvar _index18 = _interopRequireDefault(_index17);\n\nvar _index19 = __webpack_require__(124);\n\nvar _index20 = _interopRequireDefault(_index19);\n\nvar _vuex = __webpack_require__(42);\n\nvar _const = __webpack_require__(0);\n\nvar _unit = __webpack_require__(1);\n\nvar _states = __webpack_require__(3);\n\nvar _states2 = _interopRequireDefault(_states);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n mounted: function mounted() {\n this.render();\n window.addEventListener('resize', this.resize.bind(this), true);\n },\n data: function data() {\n return {\n size: {},\n w: document.documentElement.clientWidth,\n h: document.documentElement.clientHeight,\n filling: ''\n };\n },\n\n components: {\n Decorate: _index2.default,\n Guide: _index4.default,\n Next: _index6.default,\n Music: _index8.default,\n Pause: _index10.default,\n Number: _index12.default,\n Point: _index14.default,\n Logo: _index18.default,\n Keyboard: _index16.default,\n Matrix: _index20.default\n },\n computed: (0, _extends3.default)({\n pContent: function pContent() {\n return this.cur ? _const.i18n.cleans[_const.lan] : _const.i18n.startLine[_const.lan];\n },\n\n level: function level() {\n return _const.i18n.level[_const.lan];\n },\n nextText: function nextText() {\n return _const.i18n.next[_const.lan];\n }\n }, (0, _vuex.mapState)(['matrix', 'keyboard', 'music', 'pause', 'next', 'cur', 'speedStart', 'speedRun', 'startLines', 'clearLines', 'points', 'max', 'reset', 'drop'])),\n methods: {\n render: function render() {\n var _this = this;\n\n var filling = 0;\n var size = function () {\n var w = _this.w;\n var h = _this.h;\n var ratio = h / w;\n var scale = void 0;\n var css = {};\n if (ratio < 1.5) {\n scale = h / 960;\n } else {\n scale = w / 640;\n filling = (h - 960 * scale) / scale / 3;\n css = {\n 'padding-top': Math.floor(filling) + 42 + 'px',\n 'padding-bottom': Math.floor(filling) + 'px',\n 'margin-top': Math.floor(-480 - filling * 1.5) + 'px'\n };\n }\n css[_const.transform] = 'scale(' + scale + ')';\n return css;\n }();\n this.size = size;\n this.start();\n this.filling = filling;\n },\n resize: function resize() {\n this.w = document.documentElement.clientWidth;\n this.h = document.documentElement.clientHeight;\n this.render();\n },\n start: function start() {\n if (_unit.visibilityChangeEvent) {\n document.addEventListener(_unit.visibilityChangeEvent, function () {\n _states2.default.focus((0, _unit.isFocus)());\n }, false);\n }\n\n if (_const.lastRecord) {\n if (_const.lastRecord.cur && !_const.lastRecord.pause) {\n var speedRun = this.$store.state.speedRun;\n var timeout = _const.speeds[speedRun - 1] / 2;\n timeout = speedRun < _const.speeds[_const.speeds.length - 1] ? _const.speeds[_const.speeds.length - 1] : speedRun;\n _states2.default.auto(timeout);\n }\n\n if (!_const.lastRecord.cur) {\n _states2.default.overStart();\n }\n } else {\n _states2.default.overStart();\n }\n }\n }\n};\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _const = __webpack_require__(0);\n\nexports.default = {\n name: 'Decorate',\n computed: {\n title: function title() {\n return _const.i18n.title[_const.lan];\n },\n github: function github() {\n return _const.i18n.github[_const.lan];\n },\n QRTitle: function QRTitle() {\n return _const.i18n.QRNotice[_const.lan];\n },\n QRCode: function QRCode() {\n return _const.i18n.QRCode[_const.lan];\n }\n }\n};\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _const = __webpack_require__(0);\n\nvar _unit = __webpack_require__(1);\n\nexports.default = {\n name: 'Guide',\n data: function data() {\n return {\n isMobile: (0, _unit.isMobile)()\n };\n },\n\n computed: {\n linkTitle: function linkTitle() {\n return _const.i18n.linkTitle[_const.lan];\n },\n github: function github() {\n return _const.i18n.github[_const.lan];\n },\n QRCode: function QRCode() {\n return _const.i18n.QRCode[_const.lan];\n },\n QRTitle: function QRTitle() {\n return _const.i18n.QRNotice[_const.lan];\n },\n QRSrc: function QRSrc() {\n return window.location.protocol + '//raw.githubusercontent.com/Binaryify/vue-tetris/master/static/qr.jpeg';\n }\n },\n mounted: function mounted() {\n window.addEventListener('resize', this.resize.bind(this), true);\n },\n\n methods: {\n resize: function resize() {\n this.isMobile = (0, _unit.isMobile)();\n }\n }\n};\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _const = __webpack_require__(0);\n\nexports.default = {\n props: ['active', 'color', 'size', 'top', 'left', 'label', 'position', 'arrow']\n};\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _keys = __webpack_require__(14);\n\nvar _keys2 = _interopRequireDefault(_keys);\n\nvar _index = __webpack_require__(121);\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _const = __webpack_require__(0);\n\nvar _store = __webpack_require__(8);\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _todo = __webpack_require__(29);\n\nvar _todo2 = _interopRequireDefault(_todo);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n props: ['filling'],\n data: function data() {\n return {\n fillingNum: 0\n };\n },\n\n watch: {\n $props: {\n deep: true,\n handler: function handler(nextProps) {\n this.fillingNum = nextProps.filling + 20;\n }\n }\n },\n computed: {\n keyboard: function keyboard() {\n return this.$store.state.keyboard;\n },\n\n rotation: function rotation() {\n return _const.i18n.rotation[_const.lan];\n },\n labelLeft: function labelLeft() {\n return _const.i18n.left[_const.lan];\n },\n labelRight: function labelRight() {\n return _const.i18n.right[_const.lan];\n },\n labelDown: function labelDown() {\n return _const.i18n.down[_const.lan];\n },\n labelDropSpace: function labelDropSpace() {\n return _const.i18n.drop[_const.lan] + ' (SPACE)';\n },\n labelResetR: function labelResetR() {\n return _const.i18n.reset[_const.lan] + '(R)';\n },\n labelSoundS: function labelSoundS() {\n return _const.i18n.sound[_const.lan] + '(S)';\n },\n labelPauseP: function labelPauseP() {\n return _const.i18n.pause[_const.lan] + '(P)';\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n var touchEventCatch = {};\n var mouseDownEventCatch = {};\n document.addEventListener('touchstart', function (e) {\n if (e.preventDefault) {\n e.preventDefault();\n }\n }, true);\n document.addEventListener('touchend', function (e) {\n if (e.preventDefault) {\n e.preventDefault();\n }\n }, true);\n\n document.addEventListener('gesturestart', function (event) {\n event.preventDefault();\n });\n\n document.addEventListener('mousedown', function (e) {\n if (e.preventDefault) {\n e.preventDefault();\n }\n }, true);\n (0, _keys2.default)(_todo2.default).forEach(function (key) {\n _this.$refs['dom_' + key].$el.addEventListener('mousedown', function () {\n if (touchEventCatch[key] === true) {\n return;\n }\n _todo2.default[key].down(_store2.default);\n mouseDownEventCatch[key] = true;\n }, true);\n _this.$refs['dom_' + key].$el.addEventListener('mouseup', function () {\n if (touchEventCatch[key] === true) {\n touchEventCatch[key] = false;\n return;\n }\n _todo2.default[key].up(_store2.default);\n mouseDownEventCatch[key] = false;\n }, true);\n _this.$refs['dom_' + key].$el.addEventListener('mouseout', function () {\n if (mouseDownEventCatch[key] === true) {\n _todo2.default[key].up(_store2.default);\n }\n }, true);\n _this.$refs['dom_' + key].$el.addEventListener('touchstart', function () {\n touchEventCatch[key] = true;\n _todo2.default[key].down(_store2.default);\n }, true);\n _this.$refs['dom_' + key].$el.addEventListener('touchend', function () {\n _todo2.default[key].up(_store2.default);\n }, true);\n });\n },\n\n components: {\n Vbutton: _index2.default\n }\n};\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _const = __webpack_require__(0);\n\nvar Logo = {\n timeout: null\n};\nexports.default = {\n props: ['cur', 'reset'],\n data: function data() {\n return {\n style: 'r1',\n display: 'none'\n };\n },\n\n watch: {\n $props: {\n deep: true,\n handler: function handler(nextProps, oldProps) {\n this.animate(nextProps);\n if ([oldProps.cur, nextProps.cur].indexOf(false) !== -1 && oldProps.cur !== nextProps.cur || oldProps.reset !== nextProps.reset) {\n this.animate(nextProps);\n }\n }\n }\n },\n computed: {\n titleCenter: function titleCenter() {\n return _const.i18n.titleCenter[_const.lan];\n }\n },\n beforeMount: function beforeMount() {\n this.animate(this.$props);\n },\n\n methods: {\n animate: function animate(_ref) {\n var _this = this;\n\n var cur = _ref.cur,\n reset = _ref.reset;\n\n clearTimeout(Logo.timeout);\n this.style = 'r1';\n this.display = 'none';\n if (cur || reset) {\n this.display = 'none';\n return;\n }\n\n var m = 'r';\n var count = 0;\n\n var set = function set(func, delay) {\n if (!func) {\n return;\n }\n Logo.timeout = setTimeout(func, delay);\n };\n\n var show = function show(func) {\n set(function () {\n _this.display = 'block';\n if (func) {\n func();\n }\n }, 150);\n };\n\n var hide = function hide(func) {\n set(function () {\n _this.display = 'none';\n if (func) {\n func();\n }\n }, 150);\n };\n\n var eyes = function eyes(func, delay1, delay2) {\n set(function () {\n _this.style = m + 2;\n set(function () {\n _this.style = m + 1;\n if (func) {\n func();\n }\n }, delay2);\n }, delay1);\n };\n\n var run = function run(func) {\n set(function () {\n _this.style = m + 4;\n set(function () {\n _this.style = m + 3;\n count++;\n if (count === 10 || count === 20 || count === 30) {\n m = m === 'r' ? 'l' : 'r';\n }\n if (count < 40) {\n run(func);\n return;\n }\n _this.style = m + 1;\n if (func) {\n set(func, 4000);\n }\n }, 100);\n }, 100);\n };\n\n var dra = function dra() {\n count = 0;\n eyes(function () {\n eyes(function () {\n eyes(function () {\n _this.style = m + 2;\n run(dra);\n }, 150, 150);\n }, 150, 150);\n }, 1000, 1500);\n };\n\n show(function () {\n hide(function () {\n show(function () {\n hide(function () {\n show(function () {\n dra();\n });\n });\n });\n });\n });\n }\n }\n};\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _toConsumableArray2 = __webpack_require__(20);\n\nvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\nvar _stringify = __webpack_require__(9);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _unit = __webpack_require__(1);\n\nvar _const = __webpack_require__(0);\n\nvar _states = __webpack_require__(3);\n\nvar _states2 = _interopRequireDefault(_states);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar t = setTimeout;\nexports.default = {\n props: ['cur', 'reset', 'propMatrix'],\n watch: {\n $props: {\n handler: function handler() {\n var val = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var oldVal = arguments[1];\n\n this.propsChange(val);\n },\n\n deep: true\n }\n },\n render: function render() {\n var h = arguments[0];\n\n var matrix = void 0;\n if (this.isOver) {\n matrix = this.overState;\n } else {\n matrix = this.getResult();\n }\n\n return h(\n 'div',\n { 'class': 'matrix' },\n [matrix.map(function (p, k1) {\n return h(\n 'p',\n null,\n [p.map(function (e, k2) {\n return h(\n 'b',\n { 'class': (e === 1 ? 'c' : '') + (e === 2 ? 'd' : '') },\n []\n );\n })]\n );\n })]\n );\n },\n data: function data() {\n return {\n clearLines: false,\n animateColor: 2,\n isOver: false,\n overState: null\n };\n },\n\n methods: {\n propsChange: function propsChange(nextProps) {\n var _this = this;\n\n var clears = (0, _unit.isClear)(nextProps.propMatrix);\n var overs = nextProps.reset;\n setTimeout(function () {\n _this.clearLines = clears;\n _this.isOver = overs;\n }, 0);\n if (clears && !this.clearLines) {\n this.clearAnimate(clears);\n }\n if (!clears && overs && !this.isOver) {\n this.over(nextProps);\n }\n },\n getResult: function getResult(props) {\n if (!props) {\n props = this.$props;\n }\n var cur = props.cur;\n var shape = cur && cur.shape;\n var xy = cur && cur.xy;\n var matrix = JSON.parse((0, _stringify2.default)(props.propMatrix));\n var clearLines = this.clearLines;\n if (clearLines) {\n var animateColor = this.animateColor;\n clearLines.forEach(function (index) {\n matrix[index] = [animateColor, animateColor, animateColor, animateColor, animateColor, animateColor, animateColor, animateColor, animateColor, animateColor];\n });\n } else if (shape) {\n shape.forEach(function (m, k1) {\n return m.forEach(function (n, k2) {\n if (n && xy[0] + k1 >= 0) {\n var line = matrix[xy[0] + k1];\n var color = void 0;\n if (line[xy[1] + k2] === 1 && !clearLines) {\n color = 2;\n } else {\n color = 1;\n }\n line[xy[1] + k2] = color;\n matrix[xy[0] + k1] = line;\n }\n });\n });\n }\n return matrix;\n },\n clearAnimate: function clearAnimate() {\n var _this2 = this;\n\n var anima = function anima(callback) {\n t(function () {\n _this2.animateColor = 0;\n t(function () {\n _this2.animateColor = 2;\n if (typeof callback === 'function') {\n callback();\n }\n }, 100);\n }, 100);\n };\n anima(function () {\n anima(function () {\n anima(function () {\n t(function () {\n _states2.default.clearLines(_this2.propMatrix, _this2.clearLines);\n }, 100);\n });\n });\n });\n },\n over: function over(nextProps) {\n var _this3 = this;\n\n var overState = this.getResult(nextProps);\n\n this.overState = [].concat((0, _toConsumableArray3.default)(overState));\n var exLine = function exLine(index) {\n if (index <= 19) {\n overState[19 - index] = _const.fillLine;\n } else if (index >= 20 && index <= 39) {\n overState[index - 20] = _const.blankLine;\n } else {\n _states2.default.overEnd();\n return;\n }\n _this3.overState = [].concat((0, _toConsumableArray3.default)(overState));\n };\n\n for (var i = 0; i <= 40; i++) {\n t(exLine.bind(null, i), 40 * (i + 1));\n }\n }\n }\n};\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n props: ['data']\n};\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _toConsumableArray2 = __webpack_require__(20);\n\nvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\nvar _const = __webpack_require__(0);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar xy = {\n I: [1, 0],\n L: [0, 0],\n J: [0, 0],\n Z: [0, 0],\n S: [0, 0],\n O: [0, 1],\n T: [0, 0]\n};\nvar empty = [[0, 0, 0, 0], [0, 0, 0, 0]];\n\nexports.default = {\n props: ['data'],\n mounted: function mounted() {\n this.build(this.data);\n },\n data: function data() {\n return {\n block: empty\n };\n },\n\n watch: {\n $props: {\n deep: true,\n handler: function handler(nextProps) {\n this.build(nextProps.data);\n }\n }\n },\n methods: {\n build: function build(type) {\n var shape = _const.blockShape[type];\n var block = empty.map(function (e) {\n return [].concat((0, _toConsumableArray3.default)(e));\n });\n shape.forEach(function (m, k1) {\n m.forEach(function (n, k2) {\n if (n) {\n block[k1 + xy[type][0]][k2 + xy[type][1]] = 1;\n }\n });\n });\n this.block = block;\n }\n }\n};\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar formate = function formate(num) {\n return num < 10 ? ('0' + num).split('') : ('' + num).split('');\n};\nvar NumberObj = {\n timeInterval: null,\n time_count: null\n};\nexports.default = {\n watch: {\n $props: {\n deep: true,\n handler: function handler(nextProps) {\n this.render();\n }\n }\n },\n props: {\n propTime: {\n type: Boolean\n },\n number: {\n type: Number\n },\n length: {\n type: Number,\n default: 6\n }\n },\n data: function data() {\n return {\n time_count: '',\n time: new Date(),\n data: []\n };\n },\n destroyed: function destroyed() {\n if (!this.propTime) {\n return;\n }\n clearTimeout(NumberObj.timeInterval);\n },\n\n methods: {\n render: function render() {\n if (this.propTime) {\n var now = this.time;\n var hour = formate(now.getHours());\n var min = formate(now.getMinutes());\n var sec = now.getSeconds() % 2;\n var t = hour.concat(sec ? 'd' : 'd_c', min);\n this.data = t;\n return;\n }\n var num = ('' + this.number).split('');\n for (var i = 0, len = this.length - num.length; i < len; i++) {\n num.unshift('n');\n }\n this.data = num;\n return;\n }\n },\n beforeMount: function beforeMount() {\n var _this = this;\n\n if (!this.length) {\n this.length = 6;\n }\n if (!this.propTime) {\n return;\n }\n var clock = function clock() {\n var count = +NumberObj.timeInterval;\n NumberObj.timeInterval = setTimeout(function () {\n _this.time = new Date();\n _this.time_count = count;\n _this.render();\n clock();\n }, 1000);\n };\n clock();\n },\n mounted: function mounted() {\n this.render();\n }\n};\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Pause = {\n timeout: null\n};\nexports.default = {\n props: ['data'],\n mounted: function mounted() {\n this.setShake(this.data);\n },\n data: function data() {\n return {\n showPause: false\n };\n },\n\n watch: {\n $props: {\n deep: true,\n handler: function handler(nextProps) {\n this.setShake(nextProps.data);\n }\n }\n },\n methods: {\n setShake: function setShake(bool) {\n var _this = this;\n\n if (bool && !Pause.timeout) {\n Pause.timeout = setInterval(function () {\n _this.showPause = !_this.showPause;\n }, 250);\n }\n if (!bool && Pause.timeout) {\n clearInterval(Pause.timeout);\n this.showPause = false;\n Pause.timeout = null;\n }\n }\n }\n};\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _const = __webpack_require__(0);\n\nvar _index = __webpack_require__(41);\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar DF = _const.i18n.point[_const.lan];\nvar ZDF = _const.i18n.highestScore[_const.lan];\nvar SLDF = _const.i18n.lastRound[_const.lan];\nvar Point = {\n timeout: null\n};\nexports.default = {\n props: ['cur', 'point', 'max'],\n mounted: function mounted() {\n this.onChange(this.$props);\n },\n\n components: {\n Number: _index2.default\n },\n data: function data() {\n return {\n label: '',\n number: 0\n };\n },\n\n watch: {\n $props: {\n deep: true,\n handler: function handler(nextProps) {\n this.onChange(nextProps);\n }\n }\n },\n methods: {\n onChange: function onChange(_ref) {\n var _this = this;\n\n var cur = _ref.cur,\n point = _ref.point,\n max = _ref.max;\n\n clearInterval(Point.timeout);\n if (cur) {\n this.label = point >= max ? ZDF : DF;\n this.number = point;\n } else {\n var toggle = function toggle() {\n _this.label = SLDF;\n _this.number = point;\n Point.timeout = setTimeout(function () {\n _this.label = ZDF;\n _this.number = max;\n Point.timeout = setTimeout(toggle, 3000);\n }, 3000);\n };\n\n if (point !== 0) {\n toggle();\n } else {\n this.label = ZDF;\n this.number = max;\n }\n }\n }\n }\n};\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(9);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _unit = __webpack_require__(1);\n\nvar _event = __webpack_require__(4);\n\nvar _event2 = _interopRequireDefault(_event);\n\nvar _states = __webpack_require__(3);\n\nvar _states2 = _interopRequireDefault(_states);\n\nvar _music = __webpack_require__(6);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar down = function down(store) {\n store.commit(\"key_down\", true);\n if (store.state.cur !== null) {\n _event2.default.down({\n key: \"down\",\n begin: 40,\n interval: 40,\n callback: function callback(stopDownTrigger) {\n var state = store.state;\n if (state.lock) {\n return;\n }\n if (_music.music.move) {\n _music.music.move();\n }\n var cur = state.cur;\n if (cur === null) {\n return;\n }\n if (state.pause) {\n _states2.default.pause(false);\n return;\n }\n var next = cur.fall();\n if ((0, _unit.want)(next, state.matrix)) {\n store.commit(\"moveBlock\", next);\n\n _states2.default.auto();\n } else {\n var matrix = JSON.parse((0, _stringify2.default)(state.matrix));\n var shape = cur.shape;\n var xy = cur.xy;\n shape.forEach(function (m, k1) {\n return m.forEach(function (n, k2) {\n if (n && xy[0] + k1 >= 0) {\n var line = matrix[xy[0] + k1];\n line[xy[1] + k2] = 1;\n\n matrix[xy[0] + k1] = line;\n }\n });\n });\n _states2.default.nextAround(matrix, stopDownTrigger);\n }\n }\n });\n } else {\n _event2.default.down({\n key: \"down\",\n begin: 200,\n interval: 100,\n callback: function callback() {\n if (store.state.lock) {\n return;\n }\n var state = store.state;\n var cur = state.cur;\n if (cur) {\n return;\n }\n if (_music.music.move) {\n _music.music.move();\n }\n var startLines = state.startLines;\n startLines = startLines - 1 < 0 ? 10 : startLines - 1;\n store.commit(\"startLines\", startLines);\n }\n });\n }\n};\n\nvar up = function up(store) {\n store.commit(\"key_down\", false);\n _event2.default.up({\n key: \"down\"\n });\n};\n\nexports.default = {\n down: down,\n up: up\n};\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _unit = __webpack_require__(1);\n\nvar _event = __webpack_require__(4);\n\nvar _event2 = _interopRequireDefault(_event);\n\nvar _states = __webpack_require__(3);\n\nvar _states2 = _interopRequireDefault(_states);\n\nvar _const = __webpack_require__(0);\n\nvar _music = __webpack_require__(6);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar down = function down(store) {\n store.commit('key_left', true);\n _event2.default.down({\n key: 'left',\n begin: 200,\n interval: 100,\n callback: function callback() {\n var state = store.state;\n if (state.lock) {\n return;\n }\n if (_music.music.move) {\n _music.music.move();\n }\n var cur = state.cur;\n if (cur !== null) {\n if (state.pause) {\n _states2.default.pause(false);\n return;\n }\n var next = cur.left();\n var delay = _const.delays[state.speedRun - 1];\n var timeStamp = void 0;\n if ((0, _unit.want)(next, state.matrix)) {\n next.timeStamp += parseInt(delay, 10);\n store.commit('moveBlock', next);\n timeStamp = next.timeStamp;\n } else {\n cur.timeStamp += parseInt(parseInt(delay, 10) / 1.5, 10);\n store.commit('moveBlock', cur);\n timeStamp = cur.timeStamp;\n }\n var remain = _const.speeds[state.speedRun - 1] - (Date.now() - timeStamp);\n _states2.default.auto(remain);\n } else {\n var speed = state.speedStart;\n speed = speed - 1 < 1 ? 6 : speed - 1;\n store.commit('speedStart', speed);\n }\n }\n });\n};\n\nvar up = function up(store) {\n store.commit('key_left', false);\n _event2.default.up({\n key: 'left'\n });\n};\n\nexports.default = {\n down: down,\n up: up\n};\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _event = __webpack_require__(4);\n\nvar _event2 = _interopRequireDefault(_event);\n\nvar _states = __webpack_require__(3);\n\nvar _states2 = _interopRequireDefault(_states);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar down = function down(store) {\n store.commit('key_pause', true);\n _event2.default.down({\n key: 'p',\n once: true,\n callback: function callback() {\n var state = store.state;\n if (state.lock) {\n return;\n }\n var cur = state.cur;\n var isPause = state.pause;\n if (cur !== null) {\n _states2.default.pause(!isPause);\n } else {\n _states2.default.start();\n }\n }\n });\n};\n\nvar up = function up(store) {\n store.commit('key_pause', false);\n _event2.default.up({\n key: 'p'\n });\n};\n\nexports.default = {\n down: down,\n up: up\n};\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _event = __webpack_require__(4);\n\nvar _event2 = _interopRequireDefault(_event);\n\nvar _states = __webpack_require__(3);\n\nvar _states2 = _interopRequireDefault(_states);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar down = function down(store) {\n store.commit('key_reset', true);\n if (store.state.lock) {\n return;\n }\n if (store.state.cur !== null) {\n _event2.default.down({\n key: 'r',\n once: true,\n callback: function callback() {\n _states2.default.overStart();\n }\n });\n } else {\n _event2.default.down({\n key: 'r',\n once: true,\n callback: function callback() {\n if (store.state.lock) {\n return;\n }\n _states2.default.start();\n }\n });\n }\n};\n\nvar up = function up(store) {\n store.commit('key_reset', false);\n _event2.default.up({\n key: 'r'\n });\n};\n\nexports.default = {\n down: down,\n up: up\n};\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _unit = __webpack_require__(1);\n\nvar _event = __webpack_require__(4);\n\nvar _event2 = _interopRequireDefault(_event);\n\nvar _states = __webpack_require__(3);\n\nvar _states2 = _interopRequireDefault(_states);\n\nvar _const = __webpack_require__(0);\n\nvar _music = __webpack_require__(6);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar down = function down(store) {\n store.commit('key_right', true);\n _event2.default.down({\n key: 'right',\n begin: 200,\n interval: 100,\n callback: function callback() {\n var state = store.state;\n if (state.lock) {\n return;\n }\n if (_music.music.move) {\n _music.music.move();\n }\n var cur = state.cur;\n if (cur !== null) {\n if (state.pause) {\n _states2.default.pause(false);\n return;\n }\n var next = cur.right();\n var delay = _const.delays[state.speedRun - 1];\n var timeStamp = void 0;\n if ((0, _unit.want)(next, state.matrix)) {\n next.timeStamp += parseInt(delay, 10);\n store.commit('moveBlock', next);\n timeStamp = next.timeStamp;\n } else {\n cur.timeStamp += parseInt(parseInt(delay, 10) / 1.5, 10);\n store.commit('moveBlock', cur);\n timeStamp = cur.timeStamp;\n }\n var remain = _const.speeds[state.speedRun - 1] - (Date.now() - timeStamp);\n _states2.default.auto(remain);\n } else {\n var speed = state.speedStart;\n speed = speed + 1 > 6 ? 1 : speed + 1;\n store.commit('speedStart', speed);\n }\n }\n });\n};\n\nvar up = function up(store) {\n store.commit('key_right', false);\n _event2.default.up({\n key: 'right'\n });\n};\n\nexports.default = {\n down: down,\n up: up\n};\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _unit = __webpack_require__(1);\n\nvar _event = __webpack_require__(4);\n\nvar _event2 = _interopRequireDefault(_event);\n\nvar _states = __webpack_require__(3);\n\nvar _states2 = _interopRequireDefault(_states);\n\nvar _music = __webpack_require__(6);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar down = function down(store) {\n store.commit('key_rotate', true);\n if (store.state.cur !== null) {\n _event2.default.down({\n key: 'rotate',\n once: true,\n callback: function callback() {\n var state = store.state;\n if (state.lock) {\n return;\n }\n if (state.pause) {\n _states2.default.pause(false);\n }\n var cur = state.cur;\n if (cur === null) {\n return;\n }\n if (_music.music.rotate) {\n _music.music.rotate();\n }\n var next = cur.rotate();\n if ((0, _unit.want)(next, state.matrix)) {\n store.commit('moveBlock', next);\n }\n }\n });\n } else {\n _event2.default.down({\n key: 'rotate',\n begin: 200,\n interval: 100,\n callback: function callback() {\n if (store.state.lock) {\n return;\n }\n if (_music.music.move) {\n _music.music.move();\n }\n var state = store.state;\n var cur = state.cur;\n if (cur) {\n return;\n }\n var startLines = state.startLines;\n startLines = startLines + 1 > 10 ? 0 : startLines + 1;\n store.commit('startLines', startLines);\n }\n });\n }\n};\n\nvar up = function up(store) {\n store.commit('key_rotate', false);\n _event2.default.up({\n key: 'rotate'\n });\n};\n\nexports.default = {\n down: down,\n up: up\n};\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _event = __webpack_require__(4);\n\nvar _event2 = _interopRequireDefault(_event);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar down = function down(store) {\n store.commit('key_music', true);\n if (store.state.lock) {\n return;\n }\n _event2.default.down({\n key: 's',\n once: true,\n callback: function callback() {\n if (store.state.lock) {\n return;\n }\n store.commit('music', !store.state.music);\n }\n });\n};\n\nvar up = function up(store) {\n store.commit('key_music', false);\n _event2.default.up({\n key: 's'\n });\n};\n\nexports.default = {\n down: down,\n up: up\n};\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(9);\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _unit = __webpack_require__(1);\n\nvar _event = __webpack_require__(4);\n\nvar _event2 = _interopRequireDefault(_event);\n\nvar _states = __webpack_require__(3);\n\nvar _states2 = _interopRequireDefault(_states);\n\nvar _music = __webpack_require__(6);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar down = function down(store) {\n store.commit(\"key_drop\", true);\n _event2.default.down({\n key: \"space\",\n once: true,\n callback: function callback() {\n var state = store.state;\n if (state.lock) {\n return;\n }\n var cur = state.cur;\n if (cur !== null) {\n if (state.pause) {\n _states2.default.pause(false);\n return;\n }\n if (_music.music.fall) {\n _music.music.fall();\n }\n var index = 0;\n var bottom = cur.fall(index);\n while ((0, _unit.want)(bottom, state.matrix)) {\n bottom = cur.fall(index);\n index++;\n }\n var matrix = JSON.parse((0, _stringify2.default)(state.matrix));\n bottom = cur.fall(index - 2);\n store.commit(\"moveBlock\", bottom);\n var shape = bottom.shape;\n var xy = bottom.xy;\n shape.forEach(function (m, k1) {\n return m.forEach(function (n, k2) {\n if (n && xy[0] + k1 >= 0) {\n var line = matrix[xy[0] + k1];\n line[xy[1] + k2] = 1;\n matrix[xy[0] + k1] = line;\n }\n });\n });\n store.commit(\"drop\", true);\n setTimeout(function () {\n store.commit(\"drop\", false);\n }, 100);\n _states2.default.nextAround(matrix);\n } else {\n _states2.default.start();\n }\n }\n });\n};\n\nvar up = function up(store) {\n store.commit(\"key_drop\", false);\n _event2.default.up({\n key: \"space\"\n });\n};\n\nexports.default = {\n down: down,\n up: up\n};\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _vue = __webpack_require__(28);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _App = __webpack_require__(44);\n\nvar _App2 = _interopRequireDefault(_App);\n\nvar _store = __webpack_require__(8);\n\nvar _store2 = _interopRequireDefault(_store);\n\n__webpack_require__(0);\n\n__webpack_require__(43);\n\nvar _unit = __webpack_require__(1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(0, _unit.subscribeRecord)(_store2.default);\n_vue2.default.config.productionTip = false;\n\nnew _vue2.default({\n el: '#root',\n render: function render(h) {\n return h(_App2.default);\n },\n store: _store2.default\n});\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _unit = __webpack_require__(1);\n\nvar _block = __webpack_require__(30);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar mutations = {\n nextBlock: function nextBlock(state, data) {\n if (!data) {\n data = (0, _unit.getNextType)();\n }\n state.next = data;\n },\n moveBlock: function moveBlock(state, data) {\n state.cur = data.reset === true ? null : new _block2.default(data);\n },\n speedStart: function speedStart(state, data) {\n state.speedStart = data;\n },\n speedRun: function speedRun(state, data) {\n state.speedRun = data;\n },\n startLines: function startLines(state, data) {\n state.startLines = data;\n },\n matrix: function matrix(state, data) {\n state.matrix = data;\n },\n lock: function lock(state, data) {\n state.lock = data;\n },\n clearLines: function clearLines(state, data) {\n state.clearLines = data;\n },\n points: function points(state, data) {\n state.points = data;\n },\n max: function max(state, data) {\n state.max = data;\n },\n reset: function reset(state, data) {\n state.reset = data;\n },\n drop: function drop(state, data) {\n state.drop = data;\n },\n pause: function pause(state, data) {\n state.pause = data;\n },\n music: function music(state, data) {\n state.music = data;\n },\n focus: function focus(state, data) {\n state.focus = data;\n },\n key_drop: function key_drop(state, data) {\n state.keyboard['drop'] = data;\n },\n key_down: function key_down(state, data) {\n state.keyboard['down'] = data;\n },\n key_left: function key_left(state, data) {\n state.keyboard['left'] = data;\n },\n key_right: function key_right(state, data) {\n state.keyboard['right'] = data;\n },\n key_rotate: function key_rotate(state, data) {\n state.keyboard['rotate'] = data;\n },\n key_reset: function key_reset(state, data) {\n state.keyboard['reset'] = data;\n },\n key_music: function key_music(state, data) {\n state.keyboard['music'] = data;\n },\n key_pause: function key_pause(state, data) {\n state.keyboard['pause'] = data;\n }\n};\nexports.default = mutations;\n\n/***/ }),\n/* 67 */,\n/* 68 */,\n/* 69 */,\n/* 70 */,\n/* 71 */,\n/* 72 */,\n/* 73 */,\n/* 74 */,\n/* 75 */,\n/* 76 */,\n/* 77 */,\n/* 78 */,\n/* 79 */,\n/* 80 */,\n/* 81 */,\n/* 82 */,\n/* 83 */,\n/* 84 */,\n/* 85 */,\n/* 86 */,\n/* 87 */,\n/* 88 */,\n/* 89 */,\n/* 90 */,\n/* 91 */,\n/* 92 */,\n/* 93 */,\n/* 94 */,\n/* 95 */,\n/* 96 */,\n/* 97 */,\n/* 98 */,\n/* 99 */,\n/* 100 */,\n/* 101 */,\n/* 102 */,\n/* 103 */,\n/* 104 */,\n/* 105 */,\n/* 106 */,\n/* 107 */,\n/* 108 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 118 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 119 */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(110)\n}\nvar Component = __webpack_require__(2)(\n /* script */\n __webpack_require__(46),\n /* template */\n __webpack_require__(131),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 120 */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(113)\n}\nvar Component = __webpack_require__(2)(\n /* script */\n __webpack_require__(47),\n /* template */\n __webpack_require__(134),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 121 */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(114)\n}\nvar Component = __webpack_require__(2)(\n /* script */\n __webpack_require__(48),\n /* template */\n __webpack_require__(135),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(108)\n}\nvar Component = __webpack_require__(2)(\n /* script */\n __webpack_require__(49),\n /* template */\n __webpack_require__(129),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(118)\n}\nvar Component = __webpack_require__(2)(\n /* script */\n __webpack_require__(50),\n /* template */\n __webpack_require__(139),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(115)\n}\nvar Component = __webpack_require__(2)(\n /* script */\n __webpack_require__(51),\n /* template */\n null,\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(111)\n}\nvar Component = __webpack_require__(2)(\n /* script */\n __webpack_require__(52),\n /* template */\n __webpack_require__(132),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 126 */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(116)\n}\nvar Component = __webpack_require__(2)(\n /* script */\n __webpack_require__(53),\n /* template */\n __webpack_require__(136),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(109)\n}\nvar Component = __webpack_require__(2)(\n /* script */\n __webpack_require__(55),\n /* template */\n __webpack_require__(130),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(2)(\n /* script */\n __webpack_require__(56),\n /* template */\n __webpack_require__(137),\n /* styles */\n null,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 129 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"keyboard\",\n style: ('margin-top:' + _vm.fillingNum + 'px')\n }, [_c('vbutton', {\n ref: \"dom_rotate\",\n attrs: {\n \"color\": \"blue\",\n \"size\": \"s1\",\n \"top\": 0,\n \"left\": 104,\n \"label\": _vm.rotation,\n \"arrow\": \"translate(0, 63px)\",\n \"position\": true,\n \"active\": _vm.keyboard['rotate']\n }\n }), _vm._v(\" \"), _c('vbutton', {\n ref: \"dom_down\",\n attrs: {\n \"color\": \"blue\",\n \"size\": \"s1\",\n \"top\": 180,\n \"left\": 104,\n \"label\": _vm.labelDown,\n \"arrow\": \"translate(0,-71px) rotate(180deg)\",\n \"active\": _vm.keyboard['down']\n }\n }), _vm._v(\" \"), _c('vbutton', {\n ref: \"dom_left\",\n attrs: {\n \"color\": \"blue\",\n \"size\": \"s1\",\n \"top\": 90,\n \"left\": 14,\n \"label\": _vm.labelLeft,\n \"arrow\": \"translate(60px, -12px) rotate(270deg)\",\n \"active\": _vm.keyboard['left']\n }\n }), _vm._v(\" \"), _c('vbutton', {\n ref: \"dom_right\",\n attrs: {\n \"color\": \"blue\",\n \"size\": \"s1\",\n \"top\": 90,\n \"left\": 194,\n \"label\": _vm.labelRight,\n \"arrow\": \"translate(-60px, -12px) rotate(90deg)\",\n \"active\": _vm.keyboard['right']\n }\n }), _vm._v(\" \"), _c('vbutton', {\n ref: \"dom_space\",\n attrs: {\n \"color\": \"blue\",\n \"size\": \"s0\",\n \"top\": 100,\n \"left\": 372,\n \"label\": _vm.labelDropSpace,\n \"active\": _vm.keyboard['drop']\n }\n }), _vm._v(\" \"), _c('vbutton', {\n ref: \"dom_r\",\n attrs: {\n \"color\": \"red\",\n \"size\": \"s2\",\n \"top\": 0,\n \"left\": 506,\n \"label\": _vm.labelResetR,\n \"active\": _vm.keyboard['reset']\n }\n }), _vm._v(\" \"), _c('vbutton', {\n ref: \"dom_s\",\n attrs: {\n \"color\": \"green\",\n \"size\": \"s2\",\n \"top\": 0,\n \"left\": 416,\n \"label\": _vm.labelSoundS,\n \"active\": _vm.keyboard['music']\n }\n }), _vm._v(\" \"), _c('vbutton', {\n ref: \"dom_p\",\n attrs: {\n \"color\": \"green\",\n \"size\": \"s2\",\n \"top\": 0,\n \"left\": 326,\n \"label\": _vm.labelPauseP,\n \"active\": _vm.keyboard['pause']\n }\n })], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 130 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"bg pause\",\n class: {\n 'c': _vm.showPause\n }\n })\n},staticRenderFns: []}\n\n/***/ }),\n/* 131 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"decorate\"\n }, [_vm._m(0), _vm._v(\" \"), _c('h1', [_vm._v(_vm._s(_vm.title))]), _vm._v(\" \"), _vm._m(1), _vm._v(\" \"), _vm._m(2)])\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"topBorder\"\n }, [_c('span', {\n staticClass: \"l mr\",\n staticStyle: {\n \"width\": \"40px\"\n }\n }), _vm._v(\" \"), _c('span', {\n staticClass: \"l mr\"\n }), _vm._v(\" \"), _c('span', {\n staticClass: \"l mr\"\n }), _vm._v(\" \"), _c('span', {\n staticClass: \"l mr\"\n }), _vm._v(\" \"), _c('span', {\n staticClass: \"l mr\"\n }), _vm._v(\" \"), _c('span', {\n staticClass: \"r ml\",\n staticStyle: {\n \"width\": \"40px\"\n }\n }), _vm._v(\" \"), _c('span', {\n staticClass: \"r ml\"\n }), _vm._v(\" \"), _c('span', {\n staticClass: \"r ml\"\n }), _vm._v(\" \"), _c('span', {\n staticClass: \"r ml\"\n }), _vm._v(\" \"), _c('span', {\n staticClass: \"r ml\"\n })])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"view\"\n }, [_c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"clear\"\n }), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"clear\"\n }), _vm._v(\" \"), _c('em'), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('p'), _vm._v(\" \"), _c('em'), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"clear\"\n }), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"clear\"\n }), _vm._v(\" \"), _c('em'), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('p'), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('p'), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"clear\"\n }), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"clear\"\n }), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('p'), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"clear\"\n }), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"clear\"\n }), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('p'), _vm._v(\" \"), _c('em'), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"clear\"\n }), _vm._v(\" \"), _c('em'), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"clear\"\n }), _vm._v(\" \"), _c('em'), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"clear\"\n }), _vm._v(\" \"), _c('em'), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n })])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"view l\"\n }, [_c('em'), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"clear\"\n }), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"clear\"\n }), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('p'), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"clear\"\n }), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"clear\"\n }), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('p'), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('p'), _vm._v(\" \"), _c('em'), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"clear\"\n }), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"clear\"\n }), _vm._v(\" \"), _c('em'), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('p'), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"clear\"\n }), _vm._v(\" \"), _c('em'), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"clear\"\n }), _vm._v(\" \"), _c('em'), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('p'), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"clear\"\n }), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"clear\"\n }), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"clear\"\n }), _vm._v(\" \"), _c('b', {\n staticClass: \"c\"\n })])\n}]}\n\n/***/ }),\n/* 132 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"bg music\",\n class: _vm.data ? '' : 'c'\n })\n},staticRenderFns: []}\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"app\",\n style: (_vm.size)\n }, [_c('div', {\n staticClass: \"rect\",\n class: _vm.drop ? 'drop' : ''\n }, [_c('Decorate'), _vm._v(\" \"), _c('div', {\n staticClass: \"screen\"\n }, [_c('div', {\n staticClass: \"panel\"\n }, [_c('Matrix', {\n attrs: {\n \"propMatrix\": _vm.matrix,\n \"cur\": _vm.cur,\n \"reset\": _vm.reset\n }\n }), _vm._v(\" \"), _c('Logo', {\n attrs: {\n \"cur\": !!_vm.cur,\n \"reset\": _vm.reset\n }\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"state\"\n }, [_c('Point', {\n attrs: {\n \"cur\": !!_vm.cur,\n \"max\": _vm.max,\n \"point\": _vm.points\n }\n }), _vm._v(\" \"), _c('p', [_vm._v(_vm._s(_vm.pContent))]), _vm._v(\" \"), _c('Number', {\n attrs: {\n \"number\": _vm.cur ? _vm.clearLines : _vm.startLines\n }\n }), _vm._v(\" \"), _c('p', [_vm._v(_vm._s(_vm.level))]), _vm._v(\" \"), _c('Number', {\n attrs: {\n \"number\": _vm.cur ? _vm.speedRun : _vm.speedStart,\n \"length\": 1\n }\n }), _vm._v(\" \"), _c('p', [_vm._v(_vm._s(_vm.nextText))]), _vm._v(\" \"), _c('Next', {\n attrs: {\n \"data\": _vm.next\n }\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"bottom\"\n }, [_c('Music', {\n attrs: {\n \"data\": _vm.music\n }\n }), _vm._v(\" \"), _c('Pause', {\n attrs: {\n \"data\": _vm.pause\n }\n }), _vm._v(\" \"), _c('Number', {\n attrs: {\n \"propTime\": true\n }\n })], 1)], 1)], 1)])], 1), _vm._v(\" \"), _c('Keyboard', {\n attrs: {\n \"filling\": _vm.filling\n }\n }), _vm._v(\" \"), _c('Guide')], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 134 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!_vm.isMobile),\n expression: \"!isMobile\"\n }]\n }, [_vm._m(0), _vm._v(\" \"), _c('div', {\n staticClass: \"guide left\"\n }, [_c('p', [_c('a', _vm._b({\n attrs: {\n \"href\": \"https://github.com/Binaryify/vue-tetris\",\n \"rel\": \"noopener noreferrer\",\n \"target\": \"_blank\"\n }\n }, 'a', {\n title: _vm.linkTitle\n }), [_vm._v(_vm._s(_vm.github) + \":\")]), _vm._v(\" \"), _c('br'), _vm._v(\" \"), _c('iframe', {\n staticStyle: {\n \"transform\": \"scale(1.68)\",\n \"transform-origin\": \"center left\"\n },\n attrs: {\n \"src\": \"https://ghbtns.com/github-btn.html?user=Binaryify&repo=vue-tetris&type=star&count=true\",\n \"frameBorder\": \"0\",\n \"scrolling\": \"0\",\n \"width\": \"170px\",\n \"height\": \"20px\"\n }\n }), _vm._v(\" \"), _c('br'), _vm._v(\" \"), _c('iframe', {\n staticStyle: {\n \"transform\": \"scale(1.68)\",\n \"transform-origin\": \"center left\"\n },\n attrs: {\n \"src\": \"https://ghbtns.com/github-btn.html?user=Binaryify&repo=vue-tetris&type=fork&count=true\",\n \"frameBorder\": \"0\",\n \"scrolling\": \"0\",\n \"width\": \"170px\",\n \"height\": \"20px\"\n }\n })], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"space\"\n }, [_vm._v(\"SPACE\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"guide qr\"\n }, [_c('img', _vm._b({\n attrs: {\n \"src\": _vm.QRSrc\n }\n }, 'img', {\n title: _vm.QRTitle,\n alt: _vm.QRCode\n }))])])\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"guide right\"\n }, [_c('div', {\n staticClass: \"up\"\n }, [_c('em', {\n staticStyle: {\n \"transform\": \"translate(0,-3px) scale(1,2)\"\n }\n })]), _vm._v(\" \"), _c('div', {\n staticClass: \"left\"\n }, [_c('em', {\n staticStyle: {\n \"transform\": \"translate(-7px,3px) rotate(-90deg) scale(1,2)\"\n }\n })]), _vm._v(\" \"), _c('div', {\n staticClass: \"down\"\n }, [_c('em', {\n staticStyle: {\n \"transform\": \"translate(0,9px) rotate(180deg) scale(1,2)\"\n }\n })]), _vm._v(\" \"), _c('div', {\n staticClass: \"right\"\n }, [_c('em', {\n staticStyle: {\n \"transform\": \"translate(7px,3px)rotate(90deg) scale(1,2)\"\n }\n })])])\n}]}\n\n/***/ }),\n/* 135 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"button\",\n class: _vm.color + ' ' + _vm.size,\n style: ('top:' + _vm.top + 'px;' + 'left:' + _vm.left + 'px')\n }, [_c('i', {\n class: {\n 'active': _vm.active\n }\n }), _vm._v(\" \"), _c('em', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.size === 's1'),\n expression: \"size==='s1'\"\n }],\n style: ('transform:' + _vm.arrow + ' scale(1,2)')\n }), _vm._v(\" \"), _c('span', {\n class: _vm.position ? 'position' : ''\n }, [_vm._v(\"\\n \" + _vm._s(_vm.label) + \"\\n \")])])\n},staticRenderFns: []}\n\n/***/ }),\n/* 136 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"next\"\n }, _vm._l((_vm.block), function(item, index) {\n return _c('div', _vm._l((item), function(e, k2) {\n return _c('b', {\n class: e ? 'c' : ''\n })\n }))\n }))\n},staticRenderFns: []}\n\n/***/ }),\n/* 137 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('p', [_vm._v(_vm._s(_vm.label))]), _vm._v(\" \"), _c('Number', {\n attrs: {\n \"number\": _vm.number\n }\n })], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 138 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"number\"\n }, _vm._l((_vm.data), function(item, index) {\n return _c('span', {\n class: 'bg s_' + item\n })\n }))\n},staticRenderFns: []}\n\n/***/ }),\n/* 139 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"logo\",\n style: ('display:' + _vm.display)\n }, [_c('div', {\n staticClass: \"bg dragon\",\n class: _vm.style\n }), _vm._v(\" \"), _c('p', {\n domProps: {\n \"innerHTML\": _vm._s(_vm.titleCenter)\n }\n })])\n},staticRenderFns: []}\n\n/***/ }),\n/* 140 */,\n/* 141 */,\n/* 142 */\n/***/ (function(module, exports) {\n\nmodule.exports = {\n\t\"lan\": [\n\t\t\"cn\",\n\t\t\"en\",\n\t\t\"fr\",\n\t\t\"fa\"\n\t],\n\t\"default\": \"cn\",\n\t\"data\": {\n\t\t\"title\": {\n\t\t\t\"cn\": \"俄罗斯方块\",\n\t\t\t\"en\": \"T E T R I S\",\n\t\t\t\"fr\": \"T E T R I S\",\n\t\t\t\"fa\": \"خانه سازی\"\n\t\t},\n\t\t\"github\": {\n\t\t\t\"cn\": \"GitHub\",\n\t\t\t\"en\": \"GitHub\",\n\t\t\t\"fr\": \"GitHub\",\n\t\t\t\"fa\": \"گیتهاب\"\n\t\t},\n\t\t\"linkTitle\": {\n\t\t\t\"cn\": \"查看源代码\",\n\t\t\t\"en\": \"View data source\",\n\t\t\t\"fr\": \"Afficher la source des données\",\n\t\t\t\"fa\": \"مشاهده سورس پروژه\"\n\t\t},\n\t\t\"QRCode\": {\n\t\t\t\"cn\": \"二维码\",\n\t\t\t\"en\": \"QR code\",\n\t\t\t\"fr\": \"QR code\",\n\t\t\t\"fa\": \"کیوآر کد\"\n\t\t},\n\t\t\"QRNotice\": {\n\t\t\t\"cn\": \"扫一扫用手机玩\",\n\t\t\t\"en\": \"Scan QR code to play with a mobile phone\",\n\t\t\t\"fr\": \"Numérisez le code QR pour jouer avec un téléphone mobile\",\n\t\t\t\"fa\": \"اسکن کیوآر کد برای بازی در تلفن همراه\"\n\t\t},\n\t\t\"titleCenter\": {\n\t\t\t\"cn\": \"俄罗斯方块
TETRIS\",\n\t\t\t\"en\": \"TETRIS\",\n\t\t\t\"fr\": \"TETRIS\",\n\t\t\t\"fa\": \"خانه سازی\"\n\t\t},\n\t\t\"point\": {\n\t\t\t\"cn\": \"得分\",\n\t\t\t\"en\": \"Point\",\n\t\t\t\"fr\": \"Score\",\n\t\t\t\"fa\": \"امتیاز\"\n\t\t},\n\t\t\"highestScore\": {\n\t\t\t\"cn\": \"最高分\",\n\t\t\t\"en\": \"Max\",\n\t\t\t\"fr\": \"Max\",\n\t\t\t\"fa\": \"حداکثر\"\n\t\t},\n\t\t\"lastRound\": {\n\t\t\t\"cn\": \"上轮得分\",\n\t\t\t\"en\": \"Last Round\",\n\t\t\t\"fr\": \"Dernier Tour\",\n\t\t\t\"fa\": \"آخرین دور\"\n\t\t},\n\t\t\"cleans\": {\n\t\t\t\"cn\": \"消除行\",\n\t\t\t\"en\": \"Cleans\",\n\t\t\t\"fr\": \"Lignes\",\n\t\t\t\"fa\": \"پاک کرد\"\n\t\t},\n\t\t\"level\": {\n\t\t\t\"cn\": \"级别\",\n\t\t\t\"en\": \"Level\",\n\t\t\t\"fr\": \"Difficulté\",\n\t\t\t\"fa\": \"سطح\"\n\t\t},\n\t\t\"startLine\": {\n\t\t\t\"cn\": \"起始行\",\n\t\t\t\"en\": \"Start Line\",\n\t\t\t\"fr\": \"Ligne Départ\",\n\t\t\t\"fa\": \"خط شروع\"\n\t\t},\n\t\t\"next\": {\n\t\t\t\"cn\": \"下一个\",\n\t\t\t\"en\": \"Next\",\n\t\t\t\"fr\": \"Prochain\",\n\t\t\t\"fa\": \"بعدی\"\n\t\t},\n\t\t\"pause\": {\n\t\t\t\"cn\": \"暂停\",\n\t\t\t\"en\": \"Pause\",\n\t\t\t\"fr\": \"Pause\",\n\t\t\t\"fa\": \"مکث\"\n\t\t},\n\t\t\"sound\": {\n\t\t\t\"cn\": \"音效\",\n\t\t\t\"en\": \"Sound\",\n\t\t\t\"fr\": \"Sonore\",\n\t\t\t\"fa\": \"صدا\"\n\t\t},\n\t\t\"reset\": {\n\t\t\t\"cn\": \"重玩\",\n\t\t\t\"en\": \"Reset\",\n\t\t\t\"fr\": \"Réinitialiser\",\n\t\t\t\"fa\": \"ریست\"\n\t\t},\n\t\t\"rotation\": {\n\t\t\t\"cn\": \"旋转\",\n\t\t\t\"en\": \"Rotation\",\n\t\t\t\"fr\": \"Rotation\",\n\t\t\t\"fa\": \"چرخش\"\n\t\t},\n\t\t\"left\": {\n\t\t\t\"cn\": \"左移\",\n\t\t\t\"en\": \"Left\",\n\t\t\t\"fr\": \"Gauche\",\n\t\t\t\"fa\": \"چپ\"\n\t\t},\n\t\t\"right\": {\n\t\t\t\"cn\": \"右移\",\n\t\t\t\"en\": \"Right\",\n\t\t\t\"fr\": \"Droite\",\n\t\t\t\"fa\": \"راست\"\n\t\t},\n\t\t\"down\": {\n\t\t\t\"cn\": \"下移\",\n\t\t\t\"en\": \"Down\",\n\t\t\t\"fr\": \"Bas\",\n\t\t\t\"fa\": \"پایین\"\n\t\t},\n\t\t\"drop\": {\n\t\t\t\"cn\": \"掉落\",\n\t\t\t\"en\": \"Drop\",\n\t\t\t\"fr\": \"Tomber\",\n\t\t\t\"fa\": \"سقوط\"\n\t\t}\n\t}\n};\n\n/***/ })\n],[65]);\n\n\n// WEBPACK FOOTER //\n// static/js/app.2b41daec74ba53b7eeba.js","import i18nJSON from '../i18n.json'\n\nexport const blockShape = {\n I: [[1, 1, 1, 1]],\n L: [[0, 0, 1], [1, 1, 1]],\n J: [[1, 0, 0], [1, 1, 1]],\n Z: [[1, 1, 0], [0, 1, 1]],\n S: [[0, 1, 1], [1, 1, 0]],\n O: [[1, 1], [1, 1]],\n T: [[0, 1, 0], [1, 1, 1]]\n}\n\nexport const origin = {\n I: [[-1, 1], [1, -1]],\n L: [[0, 0]],\n J: [[0, 0]],\n Z: [[0, 0]],\n S: [[0, 0]],\n O: [[0, 0]],\n T: [[0, 0], [1, 0], [-1, 1], [0, -1]]\n}\n\nexport const blockType = Object.keys(blockShape)\n\nexport const speeds = [800, 650, 500, 370, 250, 160]\n\nexport const delays = [50, 60, 70, 80, 90, 100]\n\nexport const fillLine = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]\n\nexport const blankLine = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n\nexport const blankMatrix = (() => {\n const matrix = []\n for (let i = 0; i < 20; i++) {\n matrix.push(blankLine)\n }\n return matrix\n})()\n\nexport const clearPoints = [100, 300, 700, 1500]\n\nexport const StorageKey = 'VUE_TETRIS'\n\nexport const lastRecord = (() => {\n // 上一把的状态\n let data = window.localStorage.getItem(StorageKey)\n if (!data) {\n return false\n }\n try {\n if (window.btoa) {\n data = atob(data)\n }\n data = decodeURIComponent(data)\n data = JSON.parse(data)\n } catch (e) {\n if (window.console || window.console.error) {\n window.console.error('读取记录错误:', e)\n }\n return false\n }\n return data\n})()\n\nexport const maxPoint = 999999\n\nexport const transform = (function() {\n const trans = [\n 'transform',\n 'webkitTransform',\n 'msTransform',\n 'mozTransform',\n 'oTransform'\n ]\n const body = document.body\n return trans.filter(e => body.style[e] !== undefined)[0]\n})()\n\nexport const eachLines = 20 // 每消除eachLines行, 增加速度\n\nexport const getParam = param => {\n // 获取浏览器参数\n const r = new RegExp(`\\\\?(?:.+&)?${param}=(.*?)(?:&.*)?$`)\n const m = window.location.toString().match(r)\n return m ? decodeURI(m[1]) : ''\n}\n\nexport const lan = (() => {\n let l = getParam('lan').toLowerCase()\n if (!l && navigator.languages) {\n l = navigator.languages.find(l => i18nJSON.lan.indexOf(l) !== -1)\n }\n l = i18nJSON.lan.indexOf(l) === -1 ? i18nJSON.default : l\n return l\n})()\n\ndocument.title = i18nJSON.data.title[lan]\n\nexport let i18n = i18nJSON.data\n\n\n\n// WEBPACK FOOTER //\n// ./src/unit/const.js","import { blockType, StorageKey } from './const'\nconst hiddenProperty = (() => {\n // document[hiddenProperty] 可以判断页面是否失焦\n let names = ['hidden', 'webkitHidden', 'mozHidden', 'msHidden']\n names = names.filter(e => e in document)\n return names.length > 0 ? names[0] : false\n})()\nconst unit = {\n getNextType() {\n // 随机获取下一个方块类型\n const len = blockType.length\n return blockType[Math.floor(Math.random() * len)]\n },\n want(next, matrix) {\n // 方块是否能移到到指定位置\n const xy = next.xy\n const shape = next.shape\n const horizontal = shape[0].length\n return shape.every((m, k1) =>\n m.every((n, k2) => {\n if (xy[1] < 0) {\n // left\n return false\n }\n if (xy[1] + horizontal > 10) {\n // right\n return false\n }\n if (xy[0] + k1 < 0) {\n // top\n return true\n }\n if (xy[0] + k1 >= 20) {\n // bottom\n return false\n }\n if (n) {\n if (matrix[xy[0] + k1][xy[1] + k2]) {\n return false\n }\n return true\n }\n return true\n })\n )\n },\n isClear(matrix) {\n // 是否达到消除状态\n const clearLines = []\n matrix.forEach((m, k) => {\n if (m.every(n => !!n)) {\n clearLines.push(k)\n }\n })\n if (clearLines.length === 0) {\n return false\n }\n return clearLines\n },\n isOver(matrix) {\n // 游戏是否结束, 第一行落下方块为依据\n \n return matrix[0].some(n => !!n)\n },\n subscribeRecord(store) {\n // 将状态记录到 localStorage\n store.subscribe(() => {\n let data = store.state\n if (data.lock) {\n // 当状态为锁定, 不记录\n return\n }\n data = JSON.stringify(data)\n data = encodeURIComponent(data)\n if (window.btoa) {\n data = btoa(data)\n }\n window.localStorage.setItem(StorageKey, data)\n })\n },\n isMobile() {\n // 判断是否为移动端\n const ua = navigator.userAgent\n const android = /Android (\\d+\\.\\d+)/.test(ua)\n const iphone = ua.indexOf('iPhone') > -1\n const ipod = ua.indexOf('iPod') > -1\n const ipad = ua.indexOf('iPad') > -1\n const nokiaN = ua.indexOf('NokiaN') > -1\n return android || iphone || ipod || ipad || nokiaN\n },\n visibilityChangeEvent: (() => {\n if (!hiddenProperty) {\n return false\n }\n return hiddenProperty.replace(/hidden/i, 'visibilitychange') // 如果属性有前缀, 相应的事件也有前缀\n })(),\n isFocus: () => {\n if (!hiddenProperty) {\n // 如果不存在该特性, 认为一直聚焦\n return true\n }\n return !document[hiddenProperty]\n }\n}\nexport const {\n getNextType,\n isMobile,\n want,\n isClear,\n isOver,\n subscribeRecord,\n visibilityChangeEvent,\n isFocus\n} = unit\n\n\n\n// WEBPACK FOOTER //\n// ./src/unit/index.js","import store from '../vuex/store'\nimport { want, isClear, isOver } from '../unit/'\nimport {\n speeds,\n blankLine,\n blankMatrix,\n clearPoints,\n eachLines\n} from '../unit/const'\nimport { music } from '../unit/music'\n\nconst getStartMatrix = startLines => {\n // 生成startLines\n const getLine = (min, max) => {\n // 返回标亮个数在min~max之间一行方块, (包含边界)\n const count = parseInt((max - min + 1) * Math.random() + min, 10)\n const line = []\n for (let i = 0; i < count; i++) {\n // 插入高亮\n line.push(1)\n }\n for (let i = 0, len = 10 - count; i < len; i++) {\n // 在随机位置插入灰色\n const index = parseInt((line.length + 1) * Math.random(), 10)\n line.splice(index, 0, 0)\n }\n\n return line\n }\n let startMatrix = []\n\n for (let i = 0; i < startLines; i++) {\n if (i <= 2) {\n // 0-3\n startMatrix.push(getLine(5, 8))\n } else if (i <= 6) {\n // 4-6\n startMatrix.push(getLine(4, 9))\n } else {\n // 7-9\n startMatrix.push(getLine(3, 9))\n }\n }\n for (let i = 0, len = 20 - startLines; i < len; i++) {\n // 插入上部分的灰色\n startMatrix.unshift(blankLine)\n }\n return startMatrix\n}\n\nconst states = {\n // 自动下落setTimeout变量\n fallInterval: null,\n\n // 游戏开始\n start: () => {\n if (music.start) {\n music.start()\n }\n const state = store.state\n states.dispatchPoints(0)\n store.commit('speedRun', state.speedStart)\n const startLines = state.startLines\n const startMatrix = getStartMatrix(startLines)\n store.commit('matrix', startMatrix)\n store.commit('moveBlock', { type: state.next })\n store.commit('nextBlock', '')\n states.auto()\n },\n\n // 自动下落\n auto: timeout => {\n const out = timeout < 0 ? 0 : timeout\n let state = store.state\n let cur = state.cur\n const fall = () => {\n state = store.state\n cur = state.cur\n const next = cur.fall()\n if (want(next, state.matrix)) {\n store.commit('moveBlock', next)\n states.fallInterval = setTimeout(fall, speeds[state.speedRun - 1])\n } else {\n let matrix = JSON.parse(JSON.stringify(state.matrix))\n const shape = cur && cur.shape\n const xy = cur && cur.xy\n shape.forEach((m, k1) =>\n m.forEach((n, k2) => {\n if (n && xy[0] + k1 >= 0) {\n // 竖坐标可以为负\n let line = matrix[xy[0] + k1]\n line[xy[1] + k2]=1\n matrix[xy[0] + k1]=line\n }\n })\n )\n states.nextAround(matrix)\n }\n }\n clearTimeout(states.fallInterval)\n states.fallInterval = setTimeout(\n fall,\n out === undefined ? speeds[state.speedRun - 1] : out\n )\n },\n\n // 一个方块结束, 触发下一个\n nextAround: (matrix, stopDownTrigger) => {\n clearTimeout(states.fallInterval)\n store.commit('lock', true)\n store.commit('matrix', matrix)\n if (typeof stopDownTrigger === 'function') {\n stopDownTrigger()\n }\n\n const addPoints = store.state.points + 10 + (store.state.speedRun - 1) * 2 // 速度越快, 得分越高\n\n states.dispatchPoints(addPoints)\n\n if (isClear(matrix)) {\n if (music.clear) {\n music.clear()\n }\n return\n }\n if (isOver(matrix)) {\n if (music.gameover) {\n music.gameover()\n }\n states.overStart()\n return\n }\n setTimeout(() => {\n store.commit('lock', false)\n store.commit('moveBlock', { type: store.state.next })\n store.commit('nextBlock', '')\n states.auto()\n }, 100)\n },\n\n // 页面焦点变换\n focus: isFocus => {\n store.commit('focus', isFocus)\n if (!isFocus) {\n clearTimeout(states.fallInterval)\n return\n }\n const state = store.state\n if (state.cur && !state.reset && !state.pause) {\n states.auto()\n }\n },\n\n // 暂停\n pause: isPause => {\n store.commit('pause', isPause)\n if (isPause) {\n clearTimeout(states.fallInterval)\n return\n }\n states.auto()\n },\n\n // 消除行\n clearLines: (matrix, lines) => {\n const state = store.state\n let newMatrix = JSON.parse(JSON.stringify(matrix))\n lines.forEach(n => {\n newMatrix.splice(n, 1)\n // newMatrix = newMatrix.unshift(List(blankLine))\n newMatrix.unshift(blankLine)\n })\n store.commit('matrix', newMatrix)\n store.commit('moveBlock', { type: state.next })\n store.commit('nextBlock', '')\n states.auto()\n store.commit('lock', false)\n const clearLines = state.clearLines + lines.length\n store.commit('clearLines', clearLines)\n\n const addPoints = store.state.points + clearPoints[lines.length - 1] // 一次消除的行越多, 加分越多\n states.dispatchPoints(addPoints)\n\n const speedAdd = Math.floor(clearLines / eachLines) // 消除行数, 增加对应速度\n let speedNow = state.speedStart + speedAdd\n speedNow = speedNow > 6 ? 6 : speedNow\n store.commit('speedRun', speedNow)\n },\n\n // 游戏结束, 触发动画\n overStart: () => {\n clearTimeout(states.fallInterval)\n store.commit('lock', true)\n store.commit('reset', true)\n store.commit('pause', false)\n },\n\n // 游戏结束动画完成\n overEnd: () => {\n store.commit('matrix', blankMatrix)\n store.commit('moveBlock', { reset: true })\n store.commit('reset', false)\n store.commit('lock', false)\n store.commit('clearLines', 0)\n },\n\n // 写入分数\n dispatchPoints: point => {\n // 写入分数, 同时判断是否创造最高分\n store.commit('points', point)\n if (point > 0 && point > store.state.max) {\n store.commit('max', point)\n }\n }\n}\n\nexport default states\n\n\n\n// WEBPACK FOOTER //\n// ./src/control/states.js","const eventName = {}\n\nconst down = o => {\n // 键盘、手指按下\n const keys = Object.keys(eventName)\n keys.forEach(i => {\n clearTimeout(eventName[i])\n eventName[i] = null\n })\n if (!o.callback) {\n return\n }\n const clear = () => {\n clearTimeout(eventName[o.key])\n }\n o.callback(clear)\n if (o.once === true) {\n return\n }\n let begin = o.begin || 100\n const interval = o.interval || 50\n const loop = () => {\n eventName[o.key] = setTimeout(() => {\n begin = null\n loop()\n o.callback(clear)\n }, begin || interval)\n }\n loop()\n}\n\nconst up = o => {\n // 键盘、手指松开\n clearTimeout(eventName[o.key])\n eventName[o.key] = null\n if (!o.callback) {\n return\n }\n o.callback()\n}\n\nconst clearAll = () => {\n const keys = Object.keys(eventName)\n keys.forEach(i => {\n clearTimeout(eventName[i])\n eventName[i] = null\n })\n}\n\nexport default {\n down,\n up,\n clearAll\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/unit/event.js","import store from '../vuex/store'\n// 使用 Web Audio API\nconst AudioContext =\n window.AudioContext ||\n window.webkitAudioContext ||\n window.mozAudioContext ||\n window.oAudioContext ||\n window.msAudioContext\n\nexport const hasWebAudioAPI = {\n data: !!AudioContext && location.protocol.indexOf('http') !== -1\n}\n\nexport const music = {}\n;(() => {\n if (!hasWebAudioAPI.data) {\n return\n }\n const url = './static/music.mp3'\n const context = new AudioContext()\n const req = new XMLHttpRequest()\n req.open('GET', url, true)\n req.responseType = 'arraybuffer'\n\n req.onload = () => {\n context.decodeAudioData(\n req.response,\n buf => {\n // 将拿到的audio解码转为buffer\n const getSource = () => {\n // 创建source源。\n const source = context.createBufferSource()\n source.buffer = buf\n source.connect(context.destination)\n return source\n }\n\n music.killStart = () => {\n // 游戏开始的音乐只播放一次\n music.start = () => {}\n }\n\n music.start = () => {\n // 游戏开始\n music.killStart()\n if (!store.state.music) {\n return\n }\n getSource().start(0, 3.7202, 3.6224)\n }\n\n music.clear = () => {\n // 消除方块\n if (!store.state.music) {\n return\n }\n getSource().start(0, 0, 0.7675)\n }\n\n music.fall = () => {\n // 立即下落\n if (!store.state.music) {\n return\n }\n getSource().start(0, 1.2558, 0.3546)\n }\n\n music.gameover = () => {\n // 游戏结束\n if (!store.state.music) {\n return\n }\n getSource().start(0, 8.1276, 1.1437)\n }\n\n music.rotate = () => {\n // 旋转\n if (!store.state.music) {\n return\n }\n getSource().start(0, 2.2471, 0.0807)\n }\n\n music.move = () => {\n // 移动\n if (!store.state.music) {\n return\n }\n getSource().start(0, 2.9088, 0.1437)\n }\n },\n error => {\n if (window.console && window.console.error) {\n window.console.error(`音频: ${url} 读取错误`, error)\n hasWebAudioAPI.data = false\n }\n }\n )\n }\n\n req.send()\n})()\n\n\n\n// WEBPACK FOOTER //\n// ./src/unit/music.js","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport { getNextType } from '../unit'\nimport mutations from './mutations'\nimport { isFocus } from '../unit/'\nimport { blankMatrix, lastRecord, maxPoint, blockType } from '../unit/const'\nimport Block from '../unit/block'\nimport { hasWebAudioAPI } from '../unit/music'\nVue.use(Vuex)\n\nlet clearLinesInitState = lastRecord &&\n !isNaN(parseInt(lastRecord.clearLines, 10))\n ? parseInt(lastRecord.clearLines, 10)\n : 0\nif (clearLinesInitState < 0) {\n clearLinesInitState = 0\n}\n\nconst curInitState = (() => {\n if (!lastRecord || !lastRecord.cur) {\n // 无记录 或 有记录 但方块为空, 返回 null\n return null\n }\n const cur = lastRecord.cur\n const option = {\n type: cur.type,\n rotateIndex: cur.rotateIndex,\n shape: cur.shape,\n xy: cur.xy\n }\n return new Block(option)\n})()\n\nconst dropInitState = lastRecord && lastRecord.drop !== undefined\n ? !!lastRecord.drop\n : false\n\nconst lockInitState = lastRecord && lastRecord.lock !== undefined\n ? !!lastRecord.lock\n : false\n\nconst matrixInitState = lastRecord && Array.isArray(lastRecord.matrix)\n ? lastRecord.matrix\n : blankMatrix\n\nlet maxInitState = lastRecord && !isNaN(parseInt(lastRecord.max, 10))\n ? parseInt(lastRecord.max, 10)\n : 0\n\nif (maxInitState < 0) {\n maxInitState = 0\n} else if (maxInitState > maxPoint) {\n maxInitState = maxPoint\n}\nlet musicInitState = lastRecord && lastRecord.music !== undefined\n ? !!lastRecord.music\n : true\nif (!hasWebAudioAPI.data) {\n musicInitState = false\n}\n\nconst nextInitState = lastRecord && blockType.indexOf(lastRecord.next) !== -1\n ? lastRecord.next\n : getNextType()\n\nconst pauseInitState = lastRecord && lastRecord.pause !== undefined\n ? !!lastRecord.pause\n : false\n\nlet pointsInitState = lastRecord && !isNaN(parseInt(lastRecord.points, 10))\n ? parseInt(lastRecord.points, 10)\n : 0\n\nif (pointsInitState < 0) {\n pointsInitState = 0\n} else if (pointsInitState > maxPoint) {\n pointsInitState = maxPoint\n}\n\nlet speedRunInitState = lastRecord && !isNaN(parseInt(lastRecord.speedRun, 10))\n ? parseInt(lastRecord.speedRun, 10)\n : 1\nif (speedRunInitState < 1 || speedRunInitState > 6) {\n speedRunInitState = 1\n}\nlet speedStartInitState = lastRecord &&\n !isNaN(parseInt(lastRecord.speedStart, 10))\n ? parseInt(lastRecord.speedStart, 10)\n : 1\nif (speedStartInitState < 1 || speedStartInitState > 6) {\n speedStartInitState = 1\n}\n\nlet startLinesInitState = lastRecord &&\n !isNaN(parseInt(lastRecord.startLines, 10))\n ? parseInt(lastRecord.startLines, 10)\n : 0\nif (startLinesInitState < 0 || startLinesInitState > 10) {\n startLinesInitState = 0\n}\nconst resetInitState = lastRecord && lastRecord.reset\n ? !!lastRecord.reset\n : false\nconst state = {\n music: musicInitState,\n pause: pauseInitState,\n matrix: matrixInitState,\n next: nextInitState,\n cur: curInitState,\n // dispatch: '',\n speedStart: speedStartInitState,\n speedRun: speedRunInitState,\n startLines: startLinesInitState,\n clearLines: clearLinesInitState,\n points: pointsInitState,\n max: maxInitState,\n reset: resetInitState,\n drop: dropInitState,\n keyboard: {\n drop: false,\n down: false,\n left: false,\n right: false,\n rotate: false,\n reset: false,\n music: false,\n pause: false\n },\n\n lock: lockInitState,\n focus: isFocus()\n}\nexport default new Vuex.Store({\n state,\n // getters,\n // actions,\n mutations\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/vuex/store.js","import left from './left'\nimport right from './right'\nimport down from './down'\nimport rotate from './rotate'\nimport space from './space'\nimport s from './s'\nimport r from './r'\nimport p from './p'\n\nexport default {\n left,\n down,\n rotate,\n right,\n space,\n r,\n p,\n s\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/control/todo/index.js","import { blockShape, origin } from './const'\n\nclass Block {\n constructor(option) {\n this.type = option.type\n\n if (!option.rotateIndex) {\n this.rotateIndex = 0\n } else {\n this.rotateIndex = option.rotateIndex\n }\n\n if (!option.timeStamp) {\n this.timeStamp = Date.now()\n } else {\n this.timeStamp = option.timeStamp\n }\n\n if (!option.shape) {\n // init\n this.shape = blockShape[option.type]\n } else {\n this.shape = option.shape\n }\n if (!option.xy) {\n switch (option.type) {\n case 'I': // I\n this.xy = [0, 3]\n break\n case 'L': // L\n this.xy = [-1, 4]\n break\n case 'J': // J\n this.xy = [-1, 4]\n break\n case 'Z': // Z\n this.xy = [-1, 4]\n break\n case 'S': // S\n this.xy = [-1, 4]\n break\n case 'O': // O\n this.xy = [-1, 4]\n break\n case 'T': // T\n this.xy = [-1, 4]\n break\n default:\n break\n }\n } else {\n this.xy = option.xy\n }\n }\n rotate() {\n const shape = this.shape\n let result = []\n shape.forEach(m =>\n m.forEach((n, k) => {\n const index = m.length - k - 1\n if (result[index] === undefined) {\n result[index]=[]\n }\n \n result[index].push(n)\n const tempK = [...result[index]]\n result[index]=tempK\n })\n )\n const nextXy = [\n this.xy[0] + origin[this.type][this.rotateIndex][0],\n this.xy[1] + origin[this.type][this.rotateIndex][1]\n ]\n const nextRotateIndex = this.rotateIndex + 1 >= origin[this.type].length\n ? 0\n : this.rotateIndex + 1\n return {\n shape: result,\n type: this.type,\n xy: nextXy,\n rotateIndex: nextRotateIndex,\n timeStamp: this.timeStamp\n }\n }\n fall(n = 1) {\n return {\n shape: this.shape,\n type: this.type,\n xy: [this.xy[0] + n, this.xy[1]],\n rotateIndex: this.rotateIndex,\n timeStamp: Date.now()\n }\n }\n right() {\n return {\n shape: this.shape,\n type: this.type,\n xy: [this.xy[0], this.xy[1] + 1],\n rotateIndex: this.rotateIndex,\n timeStamp: this.timeStamp\n }\n }\n left() {\n return {\n shape: this.shape,\n type: this.type,\n xy: [this.xy[0], this.xy[1] - 1],\n rotateIndex: this.rotateIndex,\n timeStamp: this.timeStamp\n }\n }\n}\n\nexport default Block\n\n\n\n// WEBPACK FOOTER //\n// ./src/unit/block.js","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-a8598caa\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./index.vue\")\n}\nvar Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!./index.js\"),\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-a8598caa\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./index.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/number/index.vue\n// module id = 41\n// module chunks = 1","import store from '../vuex/store'\nimport todo from './todo'\n\nconst keyboard = {\n 37: 'left',\n 38: 'rotate',\n 39: 'right',\n 40: 'down',\n 32: 'space',\n 83: 's',\n 82: 'r',\n 80: 'p'\n}\n\nlet keydownActive\n\nconst boardKeys = Object.keys(keyboard).map(e => parseInt(e, 10))\n\nconst keyDown = e => {\n if (e.metaKey === true || boardKeys.indexOf(e.keyCode) === -1) {\n return\n }\n const type = keyboard[e.keyCode]\n if (type === keydownActive) {\n return\n }\n keydownActive = type\n todo[type].down(store)\n}\n\nconst keyUp = e => {\n if (e.metaKey === true || boardKeys.indexOf(e.keyCode) === -1) {\n return\n }\n const type = keyboard[e.keyCode]\n if (type === keydownActive) {\n keydownActive = ''\n }\n todo[type].up(store)\n}\n\ndocument.addEventListener('keydown', keyDown, true)\ndocument.addEventListener('keyup', keyUp, true)\n\n\n\n// WEBPACK FOOTER //\n// ./src/control/index.js","function injectStyle (ssrContext) {\n require(\"!!../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-427a9fc7\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../node_modules/vue-loader/lib/selector?type=styles&index=0!./App.vue\")\n}\nvar Component = require(\"!../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!./app.js\"),\n /* template */\n require(\"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-427a9fc7\\\"}!../node_modules/vue-loader/lib/selector?type=template&index=0!./App.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/App.vue\n// module id = 44\n// module chunks = 1","import Decorate from './components/decorate/index.vue'\nimport Guide from './components/guide/index.vue'\nimport Next from './components/next/index.vue'\nimport Music from './components/music/index.vue'\nimport Pause from './components/pause/index.vue'\nimport Number from './components/number/index.vue'\nimport Point from './components/point/index.vue'\nimport Keyboard from './components/keyboard/index.vue'\nimport Logo from './components/logo/index.vue'\nimport Matrix from './components/matrix/index.vue'\nimport { mapState } from 'vuex'\nimport { transform, lastRecord, speeds, i18n, lan } from './unit/const'\nimport { visibilityChangeEvent, isFocus } from './unit/'\nimport states from './control/states'\nexport default {\n mounted() {\n this.render()\n window.addEventListener('resize', this.resize.bind(this), true)\n },\n data() {\n return {\n size: {},\n w: document.documentElement.clientWidth,\n h: document.documentElement.clientHeight,\n filling: ''\n }\n },\n components: {\n Decorate,\n Guide,\n Next,\n Music,\n Pause,\n Number,\n Point,\n Logo,\n Keyboard,\n Matrix\n },\n computed: {\n pContent() {\n return this.cur ? i18n.cleans[lan] : i18n.startLine[lan]\n },\n level: () => i18n.level[lan],\n nextText: () => i18n.next[lan],\n ...mapState([\n 'matrix',\n 'keyboard',\n 'music',\n 'pause',\n 'next',\n 'cur',\n 'speedStart',\n 'speedRun',\n 'startLines',\n 'clearLines',\n 'points',\n 'max',\n 'reset',\n 'drop'\n ])\n },\n methods: {\n render() {\n let filling = 0\n const size = (() => {\n const w = this.w\n const h = this.h\n const ratio = h / w\n let scale\n let css = {}\n if (ratio < 1.5) {\n scale = h / 960\n } else {\n scale = w / 640\n filling = (h - 960 * scale) / scale / 3\n css = {\n 'padding-top': Math.floor(filling) + 42 + 'px',\n 'padding-bottom': Math.floor(filling) + 'px',\n 'margin-top': Math.floor(-480 - filling * 1.5) + 'px'\n }\n }\n css[transform] = `scale(${scale})`\n return css\n })()\n this.size = size\n this.start()\n this.filling = filling\n },\n resize() {\n this.w = document.documentElement.clientWidth\n this.h = document.documentElement.clientHeight\n this.render()\n },\n start() {\n if (visibilityChangeEvent) {\n // 将页面的焦点变换写入store\n document.addEventListener(\n visibilityChangeEvent,\n () => {\n states.focus(isFocus())\n },\n false\n )\n }\n\n if (lastRecord) {\n // 读取记录\n if (lastRecord.cur && !lastRecord.pause) {\n // 拿到上一次游戏的状态, 如果在游戏中且没有暂停, 游戏继续\n const speedRun = this.$store.state.speedRun\n let timeout = speeds[speedRun - 1] / 2 // 继续时, 给予当前下落速度一半的停留时间\n // 停留时间不小于最快速的速度\n timeout =\n speedRun < speeds[speeds.length - 1]\n ? speeds[speeds.length - 1]\n : speedRun\n states.auto(timeout)\n }\n\n if (!lastRecord.cur) {\n states.overStart()\n }\n } else {\n states.overStart()\n }\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app.js","import { i18n, lan } from '../../unit/const'\nexport default {\n name: 'Decorate',\n computed: {\n title: () => i18n.title[lan],\n github: () => i18n.github[lan],\n QRTitle: () => i18n.QRNotice[lan],\n QRCode: () => i18n.QRCode[lan]\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/decorate/index.js","import { i18n, lan } from '../../unit/const'\nimport { isMobile } from '../../unit'\nexport default {\n name: 'Guide',\n data() {\n return {\n isMobile: isMobile()\n }\n },\n computed: {\n linkTitle: () => i18n.linkTitle[lan],\n github: () => i18n.github[lan],\n QRCode: () => i18n.QRCode[lan],\n QRTitle: () => i18n.QRNotice[lan],\n QRSrc: () =>\n window.location.protocol +\n '//raw.githubusercontent.com/Binaryify/vue-tetris/master/static/qr.jpeg'\n },\n mounted() {\n window.addEventListener('resize', this.resize.bind(this), true)\n },\n methods: {\n resize() {\n this.isMobile = isMobile()\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/guide/index.js","import { transform } from '../../../unit/const'\n\nexport default {\n props: [\n 'active',\n 'color',\n 'size',\n 'top',\n 'left',\n 'label',\n 'position',\n 'arrow'\n ]\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/keyboard/button/index.js","import Vbutton from './button/index.vue'\nimport { i18n, lan } from '../../unit/const'\nimport store from '../../vuex/store'\nimport todo from '../../control/todo'\nexport default {\n props: ['filling'],\n data() {\n return {\n fillingNum: 0\n }\n },\n watch: {\n $props: {\n deep: true,\n handler(nextProps) {\n this.fillingNum = nextProps.filling + 20\n }\n }\n },\n computed: {\n keyboard() {\n return this.$store.state.keyboard\n },\n rotation: () => i18n.rotation[lan],\n labelLeft: () => i18n.left[lan],\n labelRight: () => i18n.right[lan],\n labelDown: () => i18n.down[lan],\n labelDropSpace: () => `${i18n.drop[lan]} (SPACE)`,\n labelResetR: () => `${i18n.reset[lan]}(R)`,\n labelSoundS: () => `${i18n.sound[lan]}(S)`,\n labelPauseP: () => `${i18n.pause[lan]}(P)`\n },\n mounted() {\n const touchEventCatch = {} // 对于手机操作, 触发了touchstart, 将作出记录, 不再触发后面的mouse事件\n\n // 在鼠标触发mousedown时, 移除元素时可以不触发mouseup, 这里做一个兼容, 以mouseout模拟mouseup\n const mouseDownEventCatch = {}\n document.addEventListener(\n 'touchstart',\n e => {\n if (e.preventDefault) {\n e.preventDefault()\n }\n },\n true\n )\n document.addEventListener('touchend', (e) => {\n if (e.preventDefault) {\n e.preventDefault();\n }\n }, true);\n\n // 阻止双指放大\n document.addEventListener('gesturestart', (event) => {\n event.preventDefault();\n });\n \n document.addEventListener(\n 'mousedown',\n e => {\n if (e.preventDefault) {\n e.preventDefault()\n }\n },\n true\n )\n Object.keys(todo).forEach(key => {\n this.$refs[`dom_${key}`].$el.addEventListener(\n 'mousedown',\n () => {\n if (touchEventCatch[key] === true) {\n return\n }\n todo[key].down(store)\n mouseDownEventCatch[key] = true\n },\n true\n )\n this.$refs[`dom_${key}`].$el.addEventListener(\n 'mouseup',\n () => {\n if (touchEventCatch[key] === true) {\n touchEventCatch[key] = false\n return\n }\n todo[key].up(store)\n mouseDownEventCatch[key] = false\n },\n true\n )\n this.$refs[`dom_${key}`].$el.addEventListener(\n 'mouseout',\n () => {\n if (mouseDownEventCatch[key] === true) {\n todo[key].up(store)\n }\n },\n true\n )\n this.$refs[`dom_${key}`].$el.addEventListener(\n 'touchstart',\n () => {\n touchEventCatch[key] = true\n todo[key].down(store)\n },\n true\n )\n this.$refs[`dom_${key}`].$el.addEventListener(\n 'touchend',\n () => {\n todo[key].up(store)\n },\n true\n )\n })\n },\n components: {\n Vbutton\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/keyboard/index.js","import { i18n, lan } from '../../unit/const'\nlet Logo = {\n timeout: null\n}\nexport default {\n props: ['cur', 'reset'],\n data() {\n return {\n style: 'r1',\n display: 'none'\n }\n },\n watch: {\n $props: {\n deep: true,\n handler(nextProps, oldProps) {\n this.animate(nextProps)\n if (\n // 只有在游戏进入开始, 或结束时 触发改变\n ([oldProps.cur, nextProps.cur].indexOf(false) !== -1 &&\n oldProps.cur !== nextProps.cur) ||\n oldProps.reset !== nextProps.reset\n ) {\n this.animate(nextProps)\n }\n }\n }\n },\n computed: {\n titleCenter() {\n return i18n.titleCenter[lan]\n }\n },\n beforeMount() {\n this.animate(this.$props)\n },\n methods: {\n animate({ cur, reset }) {\n clearTimeout(Logo.timeout)\n this.style = 'r1'\n this.display = 'none'\n if (cur || reset) {\n this.display = 'none'\n return\n }\n\n let m = 'r' // 方向\n let count = 0\n\n const set = (func, delay) => {\n if (!func) {\n return\n }\n Logo.timeout = setTimeout(func, delay)\n }\n\n const show = func => {\n // 显示\n set(() => {\n this.display = 'block'\n if (func) {\n func()\n }\n }, 150)\n }\n\n const hide = func => {\n // 隐藏\n set(() => {\n this.display = 'none'\n if (func) {\n func()\n }\n }, 150)\n }\n\n const eyes = (func, delay1, delay2) => {\n // 龙在眨眼睛\n set(() => {\n this.style = m + 2\n set(() => {\n this.style = m + 1\n if (func) {\n func()\n }\n }, delay2)\n }, delay1)\n }\n\n const run = func => {\n // 开始跑步啦!\n set(() => {\n this.style = m + 4\n set(() => {\n this.style = m + 3\n count++\n if (count === 10 || count === 20 || count === 30) {\n m = m === 'r' ? 'l' : 'r'\n }\n if (count < 40) {\n run(func)\n return\n }\n this.style = m + 1\n if (func) {\n set(func, 4000)\n }\n }, 100)\n }, 100)\n }\n\n const dra = () => {\n count = 0\n eyes(\n () => {\n eyes(\n () => {\n eyes(\n () => {\n this.style = m + 2\n run(dra)\n },\n 150,\n 150\n )\n },\n 150,\n 150\n )\n },\n 1000,\n 1500\n )\n }\n\n show(() => {\n // 忽隐忽现\n hide(() => {\n show(() => {\n hide(() => {\n show(() => {\n dra() // 开始运动\n })\n })\n })\n })\n })\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/logo/index.js","import { isClear } from '../../unit/'\nimport { fillLine, blankLine } from '../../unit/const'\nimport states from '../../control/states'\nconst t = setTimeout\nexport default {\n props: ['cur', 'reset', 'propMatrix'],\n watch: {\n $props: {\n handler(val = {}, oldVal) {\n this.propsChange(val)\n },\n deep: true\n }\n },\n render() {\n let matrix\n if (this.isOver) {\n matrix = this.overState\n } else {\n matrix = this.getResult()\n }\n \n return (\n
\n {p.map((e, k2) =>\n \n )}\n
\n )}\n