{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./app/javascript/packs/vimmer_01.js.erb"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","canvas","document","getElementById","width","height","canvas_area","getContext","vimuta","Image","src","gon","vimuta_src_url","vimuta_x","vimuta_y","vimuta_move","block","block_src_url","goal","goal_src_url","starttime","valid_keys","key_up_k","key_down_j","key_left_h","key_right_l","input_key","playing","start_frame","result_frame","result_time","result_twitter","result_comment","map_array","maze","fillStyle","fillRect","y","length","x","drawImage","addEventListener","input_key_down","input_key_up","vimuta_move_count","requestAnimationFrame","classList","add","cleartime","Math","round","Date","now","textContent","href","replace","String","remove","end_lesson","event","includes","e","preventDefault"],"mappings":"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AAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAC3D,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAC3D,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAC3D,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAC3D,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAC3D,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAC3D,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAC3D,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAC3D,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAC3D,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAC3D,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAC3D,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAC3D,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAC3D,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAC3D,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAC3D,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,E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","file":"js/vimmer_01-da17ba54e6bc6d6dcc18.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 303);\n","//canvas\nconst canvas = document.getElementById('js-canvas');\ncanvas.width = 960;\ncanvas.height = 640;\nconst canvas_area = canvas.getContext('2d');\n\n//vimuta\nconst vimuta = new Image();\nvimuta.src = gon.vimuta_src_url\nlet vimuta_x = 32;\nlet vimuta_y = 160;\nlet vimuta_move = 0;\n\n//ブロック\nconst block = new Image();\nblock.src = gon.block_src_url\n\n//ブロック\nconst goal = new Image();\ngoal.src = gon.goal_src_url\n\n//キーボード\nconst valid_keys = ['h', 'j', 'k', 'l'];\nlet key_up_k = false;\nlet key_down_j = false;\nlet key_left_h = false;\nlet key_right_l = false;\nlet input_key = false;\n\n//カウント\nlet starttime;\nlet playing = false;\nlet goal_count = false;\n\n//html要素\nconst start_frame = document.getElementById('js-start-frame');\nconst result_frame = document.getElementById('js-result-frame');\nconst result_time = document.getElementById('js-result-time');\nconst result_twitter = document.getElementById('js-result-twitter');\nconst result_comment = document.getElementById('js-result-comment');\n\n//マップ\nconst map_array = [\n [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],\n [1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1],\n [1,0,1,0,1,1,1,0,1,0,1,1,1,0,1,1,1,1,0,1,0,1,1,1,1,1,0,1,0,1],\n [1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1],\n [1,0,1,0,1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,0,1,0,1,1,1],\n [1,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1],\n [1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1],\n [1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,1],\n [1,0,1,1,1,1,1,0,1,1,1,1,1,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1],\n [1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,1,0,0,0,1,0,1,1,1,0,1,0,1],\n [1,1,1,1,1,0,1,1,1,0,1,1,1,1,0,1,0,1,1,1,0,1,0,0,0,1,0,1,0,1],\n [1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,1],\n [1,0,1,0,1,1,1,0,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1],\n [1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1],\n [1,0,1,1,1,1,1,1,1,1,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,0,1],\n [1,0,1,0,0,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,0,0,0,1],\n [1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,1,0,0,0,1,0,1],\n [1,0,1,1,1,1,1,1,1,0,1,1,1,0,1,0,1,0,1,1,1,1,0,1,0,1,1,1,0,1],\n [1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,2,1],\n [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]\n];\n\n//メイン処理\nfunction maze() {\n //背景\n canvas_area.fillStyle = '#edebd7';\n canvas_area.fillRect(0, 1, canvas.width, canvas.height);\n\n //マップ\n for (let y = 0; y < map_array.length; y++) {\n for (let x = 0; x < map_array[y].length; x++) {\n if (map_array[y][x] === 1) canvas_area.drawImage(block, 32*x, 32*y);\n if (map_array[y][x] === 2) canvas_area.drawImage(goal, 32*x, 32*y);\n }\n }\n //vimuta\n canvas_area.drawImage(vimuta, vimuta_x, vimuta_y);\n\n //キー入力処理\n addEventListener('keydown', input_key_down, false);\n addEventListener('keyup', input_key_up, false);\n\n //アニメーション繰り返し\n vimuta_move_count();\n if (vimuta_x/32 === 28 && vimuta_y/32 === 18) {\n //終了処理\n end_lesson();\n return;\n }\n requestAnimationFrame(maze);\n}\n\nfunction end_lesson() {\n //ゲーム非表示\n canvas.classList.add('d-none');\n //結果表示\n const cleartime = Math.round((Date.now() - starttime) / 1000)\n\n if (cleartime < 10) {\n result_comment.textContent = '確実にチートです。やめてください。そうでなければ、Vimのソースコードの一部でしょう。'\n } else if (cleartime < 20) {\n result_comment.textContent = '伝説のVimmerのようです。血液中にVimが流れています。このサイトで学ぶことはおそらくありません。'\n } else if (cleartime < 30) {\n result_comment.textContent = 'Vimmerの中のレジェンドと呼ばれています。Vimの事なら大体知っています。Vim以外のエディタを見下す傾向があります。'\n } else if (cleartime < 40) {\n result_comment.textContent = '相当すごいVimmerです。大体のことなら知っているはずです。Vimハラスメントを好みます。'\n } else if (cleartime < 50) {\n result_comment.textContent = '少しすごいVimmerです。ある程度のことは知っていて、Vimを知り尽くしていると勘違いしています。'\n } else if (cleartime < 60) {\n result_comment.textContent = '移動はマスターVimmerです。これから他のコマンドも覚えていくことでしょう。Vimが楽しくなっているはずです。'\n } else if (cleartime < 70) {\n result_comment.textContent = 'まだまだこれからVimmerです。Vimに関心を持ち始めた頃で、他のエディタに浮気もしているでしょう。'\n } else if (cleartime >= 70) {\n result_comment.textContent = 'Vimmerではありません。こんなサイトいらないだろと思っているはずです。ぜひVimに改心しましょう。'\n }\n\n result_time.textContent = `クリアタイム: ${cleartime}秒`;\n result_twitter.href = result_twitter.href.replace('cleartime', String(cleartime));\n result_twitter.href = result_twitter.href.replace('result_comment', result_comment.textContent);\n result_frame.classList.remove('d-none');\n}\n\nfunction input_key_down(event) {\n //kjhl以外無効\n if (!valid_keys.includes(event.key)) return;\n if (event.key === 'k') key_up_k = true;\n if (event.key === 'j') key_down_j = true;\n if (event.key === 'h') key_left_h = true;\n if (event.key === 'l') key_right_l = true;\n}\n\nfunction input_key_up() {\n //kjhl以外無効\n if (!valid_keys.includes(event.key)) return;\n if (event.key === 'k') key_up_k = false;\n if (event.key === 'j') key_down_j = false;\n if (event.key === 'h') key_left_h = false;\n if (event.key === 'l') key_right_l = false;\n}\n\nfunction vimuta_move_count() {\n if ( vimuta_move === 0 ) {\n \tif ( key_left_h === true ) {\n let left_block_x = vimuta_x/32 - 1;\n let left_block_y = vimuta_y/32;\n if ( map_array[left_block_y][left_block_x] === 1) return;\n //スタート位置移動無し\n //if ( map_array[left_block_y][left_block_x] === 1) {\n // vimuta_x = 32;\n // vimuta_y = 160;\n // return;\n //}\n \t\tvimuta_move = 32;\n \t\tinput_key = 'left';\n \t}\n \tif ( key_up_k === true ) {\n let up_block_x = vimuta_x/32;\n let up_block_y = vimuta_y/32 - 1;\n if ( map_array[up_block_y][up_block_x] === 1) return;\n \t\tvimuta_move = 32;\n \t\tinput_key = 'up';\n \t}\n \tif ( key_right_l === true ) {\n let right_block_x = vimuta_x/32 + 1;\n let right_block_y = vimuta_y/32;\n if ( map_array[right_block_y][right_block_x] === 1) return;\n \t\tvimuta_move = 32;\n \t\tinput_key = 'right';\n \t}\n \tif ( key_down_j === true ) {\n let down_block_x = vimuta_x/32;\n let down_block_y = vimuta_y/32 + 1;\n if ( map_array[down_block_y][down_block_x] === 1) return;\n \t\tvimuta_move = 32;\n \t\tinput_key = 'down';\n \t}\n }\n if (vimuta_move > 0) {\n //1移動で32/4で8枚描写\n\t vimuta_move -= 4;\n\t if ( input_key === 'left' ) vimuta_x -= 4;\n\t if ( input_key === 'up' ) vimuta_y -= 4;\n\t if ( input_key === 'right' ) vimuta_x += 4;\n\t if ( input_key === 'down' ) vimuta_y += 4;\n }\n}\n\n//スタート処理\nif (playing === false) {\n document.addEventListener('keydown', e => {\n if (e.key !== ' ') {\n return;\n } else {\n //スペースのスクロール無効\n e.preventDefault();\n playing = true;\n starttime = Date.now();\n start_frame.classList.add('d-none');\n canvas.classList.remove('d-none');\n requestAnimationFrame(maze);\n }\n })\n}\n"],"sourceRoot":""}