{"id":66697,"student_id":1587,"content":"//設定\n// noprotect\n\n// 三個等級 level 1 ~ 3\nlevel = 3;\n\n\nvar bestv = 0;\nvar record;\nvar bestw;\nfor (var i = 0; i \u003c 2**(5*level); i++) {\n var num = i.toString(2); //把num變2進位制\n // console.log(num);\n while (num.length \u003c (5*level)) {\n num = \"0\" + num;\n }\n // console.log(num);\n var w = 0; //weight\n var v = 0; //value\n for (var x = 0; x \u003c (5*level); x++) {\n if (num[x] == '1') {\n w += shells[x].weight;\n v += shells[x].value;\n }\n }\n // console.log(w+\"-----\"+v);\n if (w \u003c (level*1000) \u0026\u0026 v \u003e bestv) {\n bestv = v;\n bestw = w;\n record = num;\n }\n}\n\n\nconsole.log(record);\nconsole.log(bestv);\nconsole.log(bestw);\n//console.log();\nfor(var i=0; i\u003crecord.length; i++) {\n if(record[i] == \"1\") {\n take(shells[i]);\n }\n}\n\n\n\n\n\n\n\n\n//背包問題是\"NP完全問題\"https://zh.wikipedia.org/wiki/P/NP%E9%97%AE%E9%A2%98#%E5%AD%A6%E6%9C%AF%E5%AE%9A%E4%B9%89\n\n//解釋:為什麼11100換成數字是28?\n// 1 1 1 0 0\n// 16 8 4 2 1\n// 要 要 要 不要 不要\n//16+8+4 = 28#","created_at":"2019-05-11T09:54:45.171+08:00","updated_at":"2019-10-13T20:56:42.650+08:00","name":"背包問題 副本","language":"javascript","screenshot":{"url":"https://cdn8.koding.school/uploads/project/screenshot/66697/c3250399ddada7a77856558155829869.jpg"},"parent_id":34006,"plugin":"setBackdrop(\"#222\");\n\nvar level = 1;\n\nvar env = (function () {\n\n var shells = [\n createSprite('shell_0.png'),\n createSprite('shell_1.png'),\n createSprite('shell_2.png'),\n createSprite('shell_3.png'),\n createSprite('shell_4.png'),\n createSprite('shell_5.png'),\n createSprite('shell_6.png'),\n createSprite('shell_7.png'),\n createSprite('shell_8.png'),\n createSprite('shell_z.png'),\n createSprite('shell_10.png'),\n createSprite('shell_11.png'),\n createSprite('shell_12.png'),\n createSprite('shell_13.png'),\n createSprite('shell_2.png'),\n ];\n \n var bag = [];\n\n var values = [150, 220, 220, 290, 425, 475, 470, 615, 610, 720, 990, 850, 900, 950, 1200];\n var weight = [100, 210, 230, 330, 390, 470, 450, 610, 595, 710, 800, 890, 900, 900, 1250];\n \n var limit = [0, 1000, 2000, 3000];\n\n shells.forEach((s, idx) =\u003e {\n s.scale = 0.3;\n s.opacity = 0.5;\n s.x = 106 + 106*(idx%5);\n s.y = 120 + 120*(Math.floor(idx/5))\n s.value = values[idx];\n s.weight = weight[idx];\n \n s.on('click', function () {\n this.enlarge = true;\n var idx = bag.indexOf(this);\n if (idx != -1) bag.splice(idx, 1);\n else bag.push(this);\n });\n });\n \n forever(function(){\n \n if (level == 1) {\n while (shells.length \u003e 5) shells.pop().destroy();\n }\n else if (level == 2) {\n while (shells.length \u003e 10) shells.pop().destroy();\n }\n else if (level == 3) {\n \n } else {\n level = 1;\n }\n \n shells.forEach(function (s) {\n if(s.touched(cursor)) {\n if (cursor.isDown) s.scale = 0.35;\n else s.scale = 0.3;\n s.opacity = 1;\n print(`價格 ${s.value} 元`, cursor.x - 40, cursor.y + 20, 'white');\n print(`重量 ${s.weight} 公斤`, cursor.x - 40, cursor.y + 40, 'white');\n } else {\n s.opacity = .5;\n }\n });\n \n var w = 0;\n var v = 0;\n bag.forEach(function (s) {\n w += s.weight;\n v += s.value;\n s.opacity = 1;\n });\n print(`上限 ${limit[level]}`, 80, 30, 'white', 25);\n print(`重量: ${w}`, 240, 30, w \u003c limit[level] ? 'white': 'orange', 25);\n print(`價格: ${v}`, 400, 30, 'white', 25);\n });\n \n return {\n shells: shells,\n bag: bag,\n take: bag.push.bind(bag)\n }\n})();\n\nvar shells = env.shells;\nvar take = env.take;\n","description":null,"note":null,"status":"public","like_student_ids":[],"is_featured":false,"views":87,"hashid":"6rps3rd9","is_content_changed":false,"review_status":"unsubmitted","submitted_at":null,"reviewed_at":null,"advise":null,"is_deleted":false}
[{"id":1164418,"file_name":"shell_0.png","project_id":66697,"asset_id":75050,"created_at":"2019-05-11T09:54:45.176+08:00","updated_at":"2019-05-11T09:54:45.176+08:00"},{"id":1164419,"file_name":"shell_5.png","project_id":66697,"asset_id":75049,"created_at":"2019-05-11T09:54:45.177+08:00","updated_at":"2019-05-11T09:54:45.177+08:00"},{"id":1164420,"file_name":"shell_7.png","project_id":66697,"asset_id":75048,"created_at":"2019-05-11T09:54:45.178+08:00","updated_at":"2019-05-11T09:54:45.178+08:00"},{"id":1164421,"file_name":"shell_8.png","project_id":66697,"asset_id":75047,"created_at":"2019-05-11T09:54:45.179+08:00","updated_at":"2019-05-11T09:54:45.179+08:00"},{"id":1164422,"file_name":"shell_z.png","project_id":66697,"asset_id":75046,"created_at":"2019-05-11T09:54:45.180+08:00","updated_at":"2019-05-11T09:54:45.180+08:00"},{"id":1164423,"file_name":"shell_1.png","project_id":66697,"asset_id":75045,"created_at":"2019-05-11T09:54:45.181+08:00","updated_at":"2019-05-11T09:54:45.181+08:00"},{"id":1164424,"file_name":"shell_2.png","project_id":66697,"asset_id":75044,"created_at":"2019-05-11T09:54:45.182+08:00","updated_at":"2019-05-11T09:54:45.182+08:00"},{"id":1164425,"file_name":"shell_4.png","project_id":66697,"asset_id":75043,"created_at":"2019-05-11T09:54:45.183+08:00","updated_at":"2019-05-11T09:54:45.183+08:00"},{"id":1164426,"file_name":"shell_3.png","project_id":66697,"asset_id":75042,"created_at":"2019-05-11T09:54:45.184+08:00","updated_at":"2019-05-11T09:54:45.184+08:00"},{"id":1164427,"file_name":"shell_13.png","project_id":66697,"asset_id":75041,"created_at":"2019-05-11T09:54:45.184+08:00","updated_at":"2019-05-11T09:54:45.184+08:00"},{"id":1164428,"file_name":"shell_6.png","project_id":66697,"asset_id":75040,"created_at":"2019-05-11T09:54:45.185+08:00","updated_at":"2019-05-11T09:54:45.185+08:00"},{"id":1164429,"file_name":"shell_12.png","project_id":66697,"asset_id":75039,"created_at":"2019-05-11T09:54:45.186+08:00","updated_at":"2019-05-11T09:54:45.186+08:00"},{"id":1164430,"file_name":"shell_11.png","project_id":66697,"asset_id":75038,"created_at":"2019-05-11T09:54:45.187+08:00","updated_at":"2019-05-11T09:54:45.187+08:00"},{"id":1164431,"file_name":"shell_10.png","project_id":66697,"asset_id":75037,"created_at":"2019-05-11T09:54:45.188+08:00","updated_at":"2019-05-11T09:54:45.188+08:00"}]
橘蘋學習平台
我的作品
檢視專案頁
匯出
複製
匯入
刪除
下載 Android APP (APK)
截圖
繁中
简中
English
日本語
1:1:1
1:1
全寬
用手機掃描下方 QRCode 進行安裝
或您也可以
下載 APK
到這台電腦
用手機掃描下方 QRCode 進行安裝
或您也可以
下載 APK
到這台電腦