{"id":31550,"student_id":10,"content":"\n\n// 電腦的下棋程式\nfunction AI() {\n\n}\n\n// 計算攻擊得分\nfunction getAttactPoints(x, y) {\n \n}\n\n// 計算防守得分\nfunction getDefendPoints(x, y) {\n \n}\n\n// 不斷地印出得分\nforever(function(){\n \n});\n","created_at":"2018-06-12T15:29:24.857+08:00","updated_at":"2019-11-08T12:55:49.988+08:00","name":"五子棋初階 AI (S)","language":"javascript","screenshot":{"url":"/uploads/project/screenshot/31550/f4f3eb672e4073e34f5c6f4d31698cfa.jpg"},"parent_id":30959,"plugin":"setBackdrop(\"bg.png\");\n\nvar zz = [ 0, 0, 0, 0, 0, 0, 0, 0, 0];\nvar v1 = [ 4, 3, 2, 1, 0, -1, -2, -3, -4];\nvar v2 = [-4, -3, -2, -1, 0, 1, 2, 3, 4];\n\nfunction random(x) {\n return Math.floor(Math.random() * (x+1));\n}\n\nvar game = (function () {\n\n let grid = {};\n\n let instance = {\n place: place,\n placeWhite: placeWhite,\n placeBlack: placeBlack,\n click: click,\n current: 'b',\n grid: grid,\n check: check,\n }\n\n for (let x=-14; x\u003c=29; x++) {\n grid[x] = {};\n for (let y=-4; y\u003c=19; y++) {\n grid[x][y] = 'empty';\n } \n }\n\n function isWin (x, y, vx, vy) {\n var re = grid[x][y] + grid[x + vx][y + vy] + grid[x + vx*2][y + vy*2] + grid[x + vx*3][y + vy*3] + grid[x + vx*4][y + vy*4];\n if (re == 'bbbbb') {\n print(\"黑方獲勝\");\n stop();\n }\n if (re == 'wwwww') {\n print(\"白方獲勝\");\n stop();\n }\n }\n\n when('click', function () {\n var x = Math.floor((cursor.x - 97)/30);\n var y = Math.floor((cursor.y - 17)/30);\n\n if (x \u003c 0 || x \u003e= 15 || y \u003c 0 || y \u003e= 15) return;\n \n funcs.forEach(function (func) {\n func(x, y);\n });\n });\n\n forever(function () {\n for (var x=0; x\u003c15; x++) {\n for (var y=0; y\u003c15; y++) {\n pen.size = 0;\n if (grid[x][y] == 'empty') continue;\n if (grid[x][y] == 'b') pen.fillColor = 'black';\n if (grid[x][y] == 'w') pen.fillColor = 'white';\n pen.drawCircle(x*30 + 110, y*30 + 30, 14);\n }\n }\n for (var x=0; x\u003c15; x++) {\n for (var y=0; y\u003c15; y++) {\n isWin(x, y, 1, 0);\n isWin(x, y, -1, 0);\n isWin(x, y, 0, 1);\n isWin(x, y, 0, -1);\n isWin(x, y, 1, 1);\n isWin(x, y, -1, 1);\n isWin(x, y, 1, -1);\n isWin(x, y, -1, -1);\n }\n }\n });\n\n function place (x, y) {\n // if (grid[x][y] != undefined) return;\n grid[x][y] = instance.current;\n instance.current = instance.current == 'w' ? 'b' : 'w';\n }\n \n function placeWhite (x, y) {\n // if (grid[x][y] != undefined) return;\n grid[x][y] = 'w';\n instance.current = 'b';\n }\n \n function placeBlack (x, y) {\n // if (grid[x][y] != undefined) return;\n grid[x][y] = 'b';\n instance.current = 'w';\n }\n\n let funcs = [];\n function click (func) {\n funcs.push(func);\n }\n\n function check(color, x, y) {\n \n if (color == 'white' || color == 'w') color = 'w';\n if (color == 'black' || color == 'b') color = 'b';\n \n var temp = grid[x][y];\n grid[x][y] = color;\n var result = [0, 1, 0, 0, 0, 0];\n var a, b, c;\n var start, len;\n for (len = 5; len \u003e= 2; len--) {\n for (start = 5 - len; start \u003c= 4; start++) {\n z = zz.slice(start, start + len);\n d = v1.slice(start, start + len);\n i = v2.slice(start, start + len);\n if (checkLine(grid, x, y, d, z, color)) result[len]++;\n if (checkLine(grid, x, y, z, d, color)) result[len]++;\n if (checkLine(grid, x, y, d, d, color)) result[len]++;\n if (checkLine(grid, x, y, d, i, color)) result[len]++;\n }\n }\n\n function checkLine(grid, x, y, vx, vy, who) {\n for (var i=0; i\u003cvx.length; i++) {\n var xx = x + vx[i];\n var yy = y + vy[i];\n if (grid[xx][yy] != who) return false;\n }\n return true;\n }\n\n grid[x][y] = temp;\n return result;\n }\n\n return instance;\n})();\n","description":null,"note":null,"status":"public","like_student_ids":[],"is_featured":false,"views":552,"hashid":"ej9sekrk","is_content_changed":false,"review_status":"unsubmitted","submitted_at":null,"reviewed_at":null,"advise":null,"is_deleted":false}
[{"id":589986,"file_name":"bg.png","project_id":31550,"asset_id":70030,"created_at":"2018-06-12T15:29:24.865+08:00","updated_at":"2018-06-12T15:29:24.865+08:00"}]
Orange Apple Learning Platform
My Projects
View Project Page
Export
Remix
Import
Delete
Download Android APP (APK)
Screenshot
繁中
简中
English
日本語
1:1:1
1:1
Full Width
Scan the QRCode below with your phone to install
Or you can
download APK
to this computer
Scan the QRCode below with your phone to install
Or you can
download APK
to this computer