{"id":519148,"student_id":3795,"content":"// 可以修改預設密碼來測試\n// setPassword('password');\n\nvar chars = ' abcdefghijklmnopqrstuwvxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; //密碼可能的字元\nvar pops = []; //存放要猜的密碼\n\nfor (var k = 0; k \u003c 20; k++) {\n var guess = \"\"; //猜測的密碼字串\n for (var i = 0; i \u003c 13; i++) {\n var rand = Math.floor(Math.random() * 63)\n guess += chars[rand];\n }\n //password(guess);\n pops.push(guess);\n }\n\n\n// 初始化產生 20 組基因\nfor (var j = 0; j \u003c 20; j++) {\n var gens = '';\n for (var i = 0; i \u003c 13; i++) {\n var rand = Math.floor(Math.random()*63);\n gens += chars[rand];\n }\n pops.push(gens);\n}\n\n// 按下空白按鍵來破解金庫\non('keydown', 'space', nextGeneration);\n\nfunction nextGeneration () {\n // 學生遊戲試玩,開始實作時註解或移除\n //var s = prompt('請輸入 21 個由英文字母大小寫、數字、空白所組成的密碼');\n // var r = password(s);\n // alert(`你輸入的密碼中只有 ${r}個字是正確的!`);\n \n var arr = [];\n \n for (var i = 0; i \u003c 20; i++) {\n //var result = password(pops[i]) ;\n //console.log(result);\n arr.push({score: password(pops[i]), gene:pops[i]})\n }\n arr.sort(function(a, b){\n return b.score - a.score;\n })\n //console.log(arr);\n var parentA = arr[0].gene;\n var parentB = arr[1].gene;\n for (var i = 0; i \u003c 20; i++) {\n pops[i] = crossover(parentA, parentB);\n }\n\n /*var arr = [];\n for (var i=0; i\u003c20; i++) {\n arr.push({\n score: password(pops[i]),\n gens: pops[i],\n })\n };\n arr.sort(function (a, b) {\n return b.score - a.score;\n });\n\n var parentA = arr[0].gens;\n var parentB = arr[1].gens;\n for (var i = 0; i \u003c 20; i++) {\n pops[i] = crossover(parentA, parentB);\n }*/\n}\n\n// 將兩組密碼進行組合\nfunction crossover (a, b) {\n var gens = '';\n for (var i = 0; i \u003c 13; i++) {\n // 有 1/10 的機率基因會變異\n if (Math.random() \u003c 0.1) {\n var rand = Math.floor(Math.random()*63);\n gens += chars[rand];\n } else {\n if (Math.random() \u003e 0.5) {\n gens += a[i];\n } else {\n gens += b[i];\n }\n }\n }\n return gens;\n}","created_at":"2023-04-16T10:05:43.777+08:00","updated_at":"2023-04-16T11:33:57.579+08:00","name":"遺傳演算法 - 已棄用 副本","language":"javascript","screenshot":{"url":"https://cdn9.koding.school/uploads/project/screenshot/519148/fc3444cb17fe55868d0e94c3e9b52571.jpg"},"parent_id":150101,"plugin":"(function () {\n \n setBackdrop('hacker1.jpg', 0, 0, 640, 480);\n\n var logs = [];\n var key = '';\n var gameOver = false;\n\n function password (str) {\n\n var count = 0;\n for (var i = 0; i \u003c key.length; i++) {\n if (key[i] === str[i]) count++;\n }\n \n if (!gameOver) {\n logs.unshift([str, count]);\n }\n \n if (!gameOver \u0026\u0026 str.length == key.length \u0026\u0026 count === key.length) {\n gameOver = true;\n setBackdrop('hacker2.jpg', 0, 0, 640, 480);\n createSound('beep.wav');\n setTimeout(function () {\n setBackdrop('hacker3.jpg', 0, 0, 640, 480);\n createSound('unlock.wav');\n }, 1000);\n }\n \n return count;\n }\n \n function setPassword (str) {\n key = str;\n }\n \n forever(function(){\n for (var i=0; i\u003c14 \u0026\u0026 i\u003clogs.length; i++) {\n print(logs.length - i, 50, 35 + 20*i, '#aaa', 14);\n print(logs[i][1], 100, 35 + 20*i, logs[i] == key ? 'gold' : 'gold', 16);\n print(logs[i][0], 130, 35 + 20*i, logs[i] == key ? 'gold' : 'white', 16);\n }\n });\n \n window.password = password;\n window.setPassword = setPassword;\n\n})();\n\nsetPassword('I love Koding');\n","description":null,"note":null,"status":"public","like_student_ids":[],"is_featured":false,"views":17,"hashid":"yeysqdv4r","is_content_changed":false,"review_status":"unsubmitted","submitted_at":null,"reviewed_at":null,"advise":null,"is_deleted":false}
[{"id":11819416,"file_name":"beep.wav","project_id":519148,"asset_id":614219,"created_at":"2023-04-16T10:05:43.784+08:00","updated_at":"2023-04-16T10:05:43.784+08:00"},{"id":11819417,"file_name":"unlock.wav","project_id":519148,"asset_id":614220,"created_at":"2023-04-16T10:05:43.785+08:00","updated_at":"2023-04-16T10:05:43.785+08:00"},{"id":11819418,"file_name":"hacker1.jpg","project_id":519148,"asset_id":614221,"created_at":"2023-04-16T10:05:43.785+08:00","updated_at":"2023-04-16T10:05:43.785+08:00"},{"id":11819419,"file_name":"hacker3.jpg","project_id":519148,"asset_id":614222,"created_at":"2023-04-16T10:05:43.786+08:00","updated_at":"2023-04-16T10:05:43.786+08:00"},{"id":11819420,"file_name":"hacker2.jpg","project_id":519148,"asset_id":614223,"created_at":"2023-04-16T10:05:43.787+08:00","updated_at":"2023-04-16T10:05:43.787+08:00"}]
橘蘋學習平台
我的作品
檢視專案頁
匯出
複製
匯入
刪除
下載 Android APP (APK)
截圖
繁中
简中
English
日本語
1:1:1
1:1
全寬
用手機掃描下方 QRCode 進行安裝
或您也可以
下載 APK
到這台電腦
用手機掃描下方 QRCode 進行安裝
或您也可以
下載 APK
到這台電腦