{"id":28329,"student_id":2591,"content":"// Shortest Job Firs\nforever(function () {\n if (schedule1.length \u003e 0) {\n schedule1[0].number -= 1;\n }\n if (schedule1.length \u003e 0 \u0026\u0026 schedule1[0].number \u003c= 0) {\n schedule1.leave();\n schedule1.shift();\n for (let i = 0; i \u003c schedule1.length; i++) {\n schedule1[i].targetPosition -= 20;\n }\n let temp = schedule1;\n temp.sort(function (a, b) {\n return a.number - b.number;\n });\n for (let i = 0; i \u003c schedule1.length; i++) {\n schedule1[i].targetPosition = 200 + temp.indexOf(schedule1[i]) * 20;\n }\n }\n});\n\n// First-Come First-Served\nforever(function () {\n if (schedule2.length \u003e 0)\n schedule2[0].number -= 1;\n\n if (schedule2.length \u003e 0 \u0026\u0026 schedule2[0].number \u003c= 0) {\n schedule2.leave();\n schedule2.shift();\n for (let i = 0; i \u003c schedule2.length; i++) {\n schedule2[i].targetPosition -= 20;\n }\n }\n});\n\n// Round Robin\nvar count = 0;\nforever(function () {\n if (schedule3.length \u003e 0 \u0026\u0026 schedule3[count])\n schedule3[count].number -= 1;\n\n if (schedule3.length \u003e 0 \u0026\u0026 schedule3[count].number \u003c= 0) {\n schedule3.leave(count);\n schedule3.splice(count, 1);\n \n count--;\n }\n\n if (schedule3[count + 1]) count++;\n else count = 0;\n});","created_at":"2018-05-11T10:41:24.744+08:00","updated_at":"2019-11-11T11:58:34.537+08:00","name":"Schedule 排程","language":"javascript","screenshot":{"url":"https://cdn8.koding.school/uploads/project/screenshot/28329/fb4a23d3855799d388f08171c01f5558.jpg"},"parent_id":28283,"plugin":"var vendor1 = createSprite('vendor_1.png');\nvendor1.scale = 0.2;\nvendor1.x -= 200;\nvendor1.y -= 120;\nvar vendor2 = createSprite('vendor_2.png');\nvendor2.scale = 0.2;\nvendor2.x -= 200;\nvendor2.y += 10;\nvar vendor3 = createSprite('vendor_3.png');\nvendor3.scale = 0.2;\nvendor3.y += 140;\nvendor3.x -= 200;\n\nvar schedule1 = [];\nvar schedule2 = [];\nvar schedule3 = [];\n\nschedule1.leave = function(){\n schedule1[0].forever(function() {\n this.x -= 3;\n if (this.x \u003c -10) this.destroy();\n })\n schedule1.done++;\n}\nschedule1.time = 0;\nschedule1.done = 0;\nschedule2.leave = function(){\n schedule2[0].forever(function() {\n this.x -= 3;\n if (this.x \u003c -10) this.destroy();\n })\n schedule2.done++;\n}\nschedule2.time = 0;\nschedule2.done = 0;\nschedule3.leave = function(count){\n schedule3[count].forever(function() {\n this.x -= 3;\n if (this.x \u003c -10) this.destroy();\n })\n schedule3.done++;\n for (let i = count; i \u003c schedule3.length; i++) {\n schedule3[i].targetPosition -= 20;\n }\n}\nschedule3.time = 0;\nschedule3.done = 0;\n\nforever(function() {\n if (Math.random()*60 \u003c 1 \u0026\u0026 (schedule1.length + schedule2.length + schedule3.length) \u003c 60) {\n var task = Math.floor(Math.random()*150);\n let human1 = createSprite([\"P-01.png\", \"P-02.png\", \"P-03.png\", \"P-04.png\", \"P-05.png\", \"P-06.png\", \"P-07.png\", \"P-08.png\", \"P-09.png\", \"P-10.png\"]);\n human1.costumeId = Math.floor(Math.random() * 10);\n human1.scale = 0.15;\n human1.x = 640;\n human1.y = 140;\n human1['number'] = task;\n human1['targetPosition'] = 200 + schedule1.length * 20;\n schedule1.push(human1);\n let human2 = createSprite([\"P-01.png\", \"P-02.png\", \"P-03.png\", \"P-04.png\", \"P-05.png\", \"P-06.png\", \"P-07.png\", \"P-08.png\", \"P-09.png\", \"P-10.png\"]);\n human2.costumeId = Math.floor(Math.random() * 10);\n human2.scale = 0.15;\n human2.x = 640;\n human2.y = 270;\n human2['number'] = task;\n human2['targetPosition'] = 200 + schedule2.length * 20;\n schedule2.push(human2);\n let human3 = createSprite([\"P-01.png\", \"P-02.png\", \"P-03.png\", \"P-04.png\", \"P-05.png\", \"P-06.png\", \"P-07.png\", \"P-08.png\", \"P-09.png\", \"P-10.png\"]);\n human3.costumeId = Math.floor(Math.random() * 10);\n human3.scale = 0.15;\n human3.x = 640;\n human3.y = 400;\n human3['number'] = task;\n human3['targetPosition'] = 200 + schedule3.length * 20;\n schedule3.push(human3);\n }\n\n schedule1.time += schedule1.length;\n schedule2.time += schedule2.length;\n schedule3.time += schedule3.length;\n let t1 = [];\n let t2 = [];\n let t3 = [];\n for(let i = 0; i \u003c schedule1.length ; i++){\n t1.push(schedule1[i].number);\n }\n for(let i = 0; i \u003c schedule2.length ; i++){\n t2.push(schedule2[i].number);\n }\n for(let i = 0; i \u003c schedule3.length ; i++){\n t3.push(schedule3[i].number);\n }\n print(t1, 10, 10, 'black');\n print(t2, 10, 30, 'black');\n print(t3, 10, 50, 'black');\n print('平均等待時間:' + Math.floor(schedule1.time/schedule1.done) + 'ms', 30, 180, 'black', 20);\n print('平均等待時間:' + Math.floor(schedule2.time/schedule2.done) + 'ms', 30, 310, 'black', 20);\n print('平均等待時間:' + Math.floor(schedule3.time/schedule3.done) + 'ms', 30, 440, 'black', 20);\n for (let i = 0; i \u003c schedule1.length; i++) {\n if (schedule1[i].x \u003e schedule1[i].targetPosition) {\n schedule1[i].x -= 2;\n }else if(schedule1[i].x \u003c schedule1[i].targetPosition) {\n schedule1[i].x += 2;\n }\n }\n for (let i = 0; i \u003c schedule2.length; i++) {\n if (schedule2[i].x \u003e schedule2[i].targetPosition) {\n schedule2[i].x -= 2;\n }\n }\n for (let i = 0; i \u003c schedule3.length; i++) {\n if (schedule3[i].x \u003e schedule3[i].targetPosition) {\n schedule3[i].x -= 2;\n }\n }\n});\n","description":null,"note":null,"status":"public","like_student_ids":[],"is_featured":false,"views":121,"hashid":"4y3skg9d","is_content_changed":false,"review_status":"unsubmitted","submitted_at":null,"reviewed_at":null,"advise":null,"is_deleted":false}
[{"id":522258,"file_name":"vendor_3.png","project_id":28329,"asset_id":63755,"created_at":"2018-05-11T10:41:24.753+08:00","updated_at":"2018-05-11T10:41:24.753+08:00"},{"id":522259,"file_name":"vendor_2.png","project_id":28329,"asset_id":63754,"created_at":"2018-05-11T10:41:24.757+08:00","updated_at":"2018-05-11T10:41:24.757+08:00"},{"id":522260,"file_name":"vendor_1.png","project_id":28329,"asset_id":63753,"created_at":"2018-05-11T10:41:24.758+08:00","updated_at":"2018-05-11T10:41:24.758+08:00"},{"id":522270,"file_name":"P-01.png","project_id":28329,"asset_id":63967,"created_at":"2018-05-11T11:24:38.026+08:00","updated_at":"2018-05-11T11:24:38.026+08:00"},{"id":522271,"file_name":"P-02.png","project_id":28329,"asset_id":63968,"created_at":"2018-05-11T11:24:38.028+08:00","updated_at":"2018-05-11T11:24:38.028+08:00"},{"id":522272,"file_name":"P-03.png","project_id":28329,"asset_id":63969,"created_at":"2018-05-11T11:24:38.204+08:00","updated_at":"2018-05-11T11:24:38.204+08:00"},{"id":522273,"file_name":"P-04.png","project_id":28329,"asset_id":63970,"created_at":"2018-05-11T11:24:38.206+08:00","updated_at":"2018-05-11T11:24:38.206+08:00"},{"id":522274,"file_name":"P-05.png","project_id":28329,"asset_id":63971,"created_at":"2018-05-11T11:24:38.458+08:00","updated_at":"2018-05-11T11:24:38.458+08:00"},{"id":522275,"file_name":"P-06.png","project_id":28329,"asset_id":63972,"created_at":"2018-05-11T11:24:38.460+08:00","updated_at":"2018-05-11T11:24:38.460+08:00"},{"id":522276,"file_name":"P-07.png","project_id":28329,"asset_id":63973,"created_at":"2018-05-11T11:24:38.604+08:00","updated_at":"2018-05-11T11:24:38.604+08:00"},{"id":522277,"file_name":"P-08.png","project_id":28329,"asset_id":63974,"created_at":"2018-05-11T11:24:38.606+08:00","updated_at":"2018-05-11T11:24:38.606+08:00"},{"id":522278,"file_name":"P-09.png","project_id":28329,"asset_id":63975,"created_at":"2018-05-11T11:24:38.783+08:00","updated_at":"2018-05-11T11:24:38.783+08:00"},{"id":522279,"file_name":"P-10.png","project_id":28329,"asset_id":63976,"created_at":"2018-05-11T11:24:38.785+08:00","updated_at":"2018-05-11T11:24:38.785+08:00"}]
橘蘋學習平台
我的作品
檢視專案頁
匯出
複製
匯入
刪除
下載 Android APP (APK)
截圖
繁中
简中
English
日本語
1:1:1
1:1
全寬
用手機掃描下方 QRCode 進行安裝
或您也可以
下載 APK
到這台電腦
用手機掃描下方 QRCode 進行安裝
或您也可以
下載 APK
到這台電腦